Frontmatter MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FRONTMATTER_BASE_DIR | Yes | Base directory for files | |
| FRONTMATTER_CACHE_DIR | No | Cache directory for embeddings | FRONTMATTER_BASE_DIR/.frontmatter-mcp |
| FRONTMATTER_EMBEDDING_MODEL | No | Embedding model name | cl-nagoya/ruri-v3-30m |
| FRONTMATTER_ENABLE_SEMANTIC | No | Enable semantic search | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {
"tasks": {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
}
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| query_inspectA | Get frontmatter schema from files matching glob pattern. Args: glob: Glob pattern relative to base directory (e.g. "atoms/**/*.md"). Returns: Dict with file_count, schema (type, nullable, examples). |
| queryA | Query frontmatter with DuckDB SQL. Args: glob: Glob pattern relative to base directory (e.g. "atoms/**/*.md"). sql: SQL query string. Reference 'files' table. Columns are frontmatter properties plus 'path'. Semantic search (when enabled and indexing is complete): - embedding: document embedding vector (NULL if not indexed) - embed('text'): converts text to embedding vector - array_cosine_similarity(a, b): similarity score (0-1) Returns: Dict with results array, row_count, and columns. |
| updateA | Update frontmatter properties in a single file. Args: path: File path relative to base directory. set: Properties to add or overwrite. Values are applied as-is (null becomes YAML null, empty string becomes empty value). unset: Property names to remove completely. Returns: Dict with path and updated frontmatter. Notes: - If same key appears in both set and unset, unset takes priority. - If file has no frontmatter, it will be created. |
| batch_updateA | Update frontmatter properties in multiple files matching glob pattern. Args: glob: Glob pattern relative to base directory (e.g. "atoms/**/*.md"). set: Properties to add or overwrite in all matched files. unset: Property names to remove from all matched files. Returns: Dict with updated_count, updated_files, and warnings. Notes: - If same key appears in both set and unset, unset takes priority. - If a file has no frontmatter, it will be created. - Errors in individual files are recorded in warnings, not raised. |
| batch_array_addA | Add a value to an array property in multiple files. Args: glob: Glob pattern relative to base directory (e.g. "atoms/**/*.md"). property: Name of the array property. value: Value to add. If value is an array, it's added as a single element. allow_duplicates: If False (default), skip files where value already exists. Returns: Dict with updated_count, updated_files, and warnings. Notes: - If property doesn't exist, it will be created with [value]. - If property is not an array, file is skipped with a warning. - Files are only included in updated_files if actually modified. |
| batch_array_removeA | Remove a value from an array property in multiple files. Args: glob: Glob pattern relative to base directory (e.g. "atoms/**/*.md"). property: Name of the array property. value: Value to remove. Returns: Dict with updated_count, updated_files, and warnings. Notes: - If property doesn't exist, file is skipped. - If value doesn't exist in array, file is skipped. - If property is not an array, file is skipped with a warning. - Files are only included in updated_files if actually modified. |
| batch_array_replaceA | Replace a value in an array property in multiple files. Args: glob: Glob pattern relative to base directory (e.g. "atoms/**/*.md"). property: Name of the array property. old_value: Value to replace. new_value: New value. Returns: Dict with updated_count, updated_files, and warnings. Notes: - If property doesn't exist, file is skipped. - If old_value doesn't exist in array, file is skipped. - If property is not an array, file is skipped with a warning. - Files are only included in updated_files if actually modified. |
| batch_array_sortA | Sort an array property in multiple files. Args: glob: Glob pattern relative to base directory (e.g. "atoms/**/*.md"). property: Name of the array property. reverse: If True, sort in descending order. Default is ascending. Returns: Dict with updated_count, updated_files, and warnings. Notes: - If property doesn't exist, file is skipped. - If array is empty, file is skipped. - If array is already sorted, file is skipped. - If property is not an array, file is skipped with a warning. - Files are only included in updated_files if actually modified. |
| batch_array_uniqueA | Remove duplicate values from an array property in multiple files. Args: glob: Glob pattern relative to base directory (e.g. "atoms/**/*.md"). property: Name of the array property. Returns: Dict with updated_count, updated_files, and warnings. Notes: - Preserves the order of first occurrence. - If property doesn't exist, file is skipped. - If array is empty or has single element, file is skipped. - If array has no duplicates, file is skipped. - If property is not an array, file is skipped with a warning. - Files are only included in updated_files if actually modified. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kzmshx/frontmatter-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server