obsidian-mcp-server
Version:
MCP server for Obsidian vaults — read, write, search, and surgically edit notes, tags, and frontmatter via the Local REST API plugin. STDIO or Streamable HTTP.
45 lines • 1.69 kB
TypeScript
/**
* @fileoverview Reusable Zod shapes for Obsidian tool definitions.
* Target/Section/PatchOptions/ContentType are referenced across multiple tools;
* keeping them here prevents drift in the discriminator and field descriptions.
* @module mcp-server/tools/definitions/_shared/schemas
*/
import { z } from '@cyanheads/mcp-ts-core';
/** Where a note lives — vault path, the active file, or a periodic note. */
export declare const TargetSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
type: z.ZodLiteral<"path">;
path: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
type: z.ZodLiteral<"active">;
}, z.core.$strip>, z.ZodObject<{
type: z.ZodLiteral<"periodic">;
period: z.ZodEnum<{
daily: "daily";
weekly: "weekly";
monthly: "monthly";
quarterly: "quarterly";
yearly: "yearly";
}>;
date: z.ZodOptional<z.ZodString>;
}, z.core.$strip>], "type">;
/** Sub-document target inside a note. */
export declare const SectionSchema: z.ZodObject<{
type: z.ZodEnum<{
heading: "heading";
block: "block";
frontmatter: "frontmatter";
}>;
target: z.ZodString;
}, z.core.$strip>;
export declare const PatchOptionsSchema: z.ZodOptional<z.ZodObject<{
createTargetIfMissing: z.ZodDefault<z.ZodBoolean>;
applyIfContentPreexists: z.ZodDefault<z.ZodBoolean>;
trimTargetWhitespace: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>>;
export declare const ContentTypeSchema: z.ZodDefault<z.ZodEnum<{
markdown: "markdown";
json: "json";
}>>;
export type ToolTarget = z.infer<typeof TargetSchema>;
export type ToolSection = z.infer<typeof SectionSchema>;
//# sourceMappingURL=schemas.d.ts.map