UNPKG

obsidian-mcp-server

Version:

Model Context Protocol (MCP) server designed for LLMs to interact with Obsidian vaults. Provides secure, token-aware tools for seamless knowledge base management through a standardized interface.

69 lines 2.11 kB
/** * Property types and schemas for Obsidian notes */ import { z } from "zod"; /** * Define validation schemas * Allow any string for type to be more flexible */ export const PropertyType = z.string(); /** * Valid status values for notes */ export const StatusEnum = z.enum([ "draft", "in-progress", "review", "complete" ]); /** * Schema for reading properties (includes timestamps) */ export const ObsidianPropertiesSchema = z.object({ // Basic Metadata // Note: Timestamps are managed automatically title: z.string().optional(), modified: z.string().datetime().optional(), // Read-only, managed by MCP server author: z.string().optional(), // Classification type: z.array(PropertyType).optional(), // Organization tags: z.array(z.string()).optional(), // Technical Metadata status: z.array(StatusEnum).optional(), version: z.string().optional(), platform: z.string().optional(), repository: z.string().url().optional(), dependencies: z.array(z.string()).optional(), // References sources: z.array(z.string()).optional(), urls: z.array(z.string().url()).optional(), papers: z.array(z.string()).optional(), // Custom Fields custom: z.record(z.unknown()).optional() }); /** * Schema for validating property updates (excludes timestamps) */ export const PropertyUpdateSchema = z.object({ // Basic Metadata title: z.string().optional(), author: z.string().optional(), // Classification type: z.array(PropertyType).optional(), // Organization tags: z.array(z.string()).optional(), // Technical Metadata status: z.array(StatusEnum).optional(), version: z.string().optional(), platform: z.string().optional(), repository: z.string().url().optional(), dependencies: z.array(z.string()).optional(), // References sources: z.array(z.string()).optional(), urls: z.array(z.string().url()).optional(), papers: z.array(z.string()).optional(), // Custom Fields custom: z.record(z.unknown()).optional() }); //# sourceMappingURL=types.js.map