Skip to main content
Glama

MCP Documentation Service

--- title: MCP Tools Reference description: Complete reference of all tools available in the MCP Docs Manager author: Claude date: 2023-03-12 tags: - api - reference - tools status: published order: 2 --- # MCP Tools Reference This document provides a complete reference of all tools available in the MCP Docs Manager service. ## Documentation Tools These tools are specifically designed for working with documentation files (markdown with frontmatter). ### read_document Reads a markdown document and extracts its content and metadata. **Parameters:** - `path` (required): Path to the document to read **Example:** ```typescript const result = await mcp.callTool("docs-manager", "read_document", { path: "docs/guides/getting-started.md", }); ``` **Response:** ```typescript { content: [ { type: "text", text: "Document read successfully" } ], metadata: { path: string, content: string, // Document content without frontmatter metadata: { title?: string, description?: string, author?: string, date?: Date, tags?: string[], status?: string, // Other metadata fields } } } ``` ### list_documents Lists all markdown documents in a directory. **Parameters:** - `basePath` (optional): Base path to search from **Example:** ```typescript const result = await mcp.callTool("docs-manager", "list_documents", { basePath: "docs", }); ``` **Response:** ```typescript { content: [ { type: "text", text: "Found X documents" } ], metadata: { documents: Array<{ path: string, name: string, metadata: { // Document metadata } }> } } ``` ### get_structure Gets the structure of the documentation directory. **Parameters:** - `basePath` (optional): Base path to get structure from **Example:** ```typescript const result = await mcp.callTool("docs-manager", "get_structure", { basePath: "docs", }); ``` **Response:** ```typescript { content: [ { type: "text", text: "Documentation structure retrieved successfully" } ], metadata: { structure: { name: string, path: string, type: "directory" | "file", metadata?: object, children: Array<TreeEntry>, error?: string } } } ``` ### get_navigation Gets the navigation structure for the documentation. **Parameters:** - `basePath` (optional): Base path to generate navigation from **Example:** ```typescript const result = await mcp.callTool("docs-manager", "get_navigation", { basePath: "docs", }); ``` **Response:** ```typescript { content: [ { type: "text", text: "Navigation structure retrieved successfully" } ], metadata: { navigation: Array<{ title: string, path: string | null, items: Array<{ title: string, path: string, order: number }>, order: number }> } } ``` ### get_docs_knowledge_base Creates a comprehensive knowledge base of documentation for LLM context. This tool is particularly useful for providing the LLM with a complete overview of your documentation without requiring multiple file searches. **Parameters:** - `basePath` (optional): Base path to generate knowledge base from - `includeSummaries` (optional): Whether to include content summaries (default: true) - `maxSummaryLength` (optional): Maximum length of summaries (default: 500) **Example:** ```typescript const result = await mcp.callTool("docs-manager", "get_docs_knowledge_base", { basePath: "docs", includeSummaries: true, maxSummaryLength: 300, }); ``` **Response:** ```typescript { content: [ { type: "text", text: "Generated knowledge base with X documents" } ], metadata: { knowledgeBase: { navigation: Array<NavigationSection>, documents: Array<{ path: string, name: string, metadata: DocumentMetadata, summary?: string }>, categories: { [directoryPath: string]: Array<DocumentEntry> }, tags: { [tag: string]: Array<DocumentEntry> } } } } ``` The knowledge base includes: - **navigation**: The navigation structure of the documentation - **documents**: All documents with their metadata and optional summaries - **categories**: Documents organized by directory - **tags**: Documents organized by tags ### write_document Writes content to a markdown document with frontmatter metadata. **Parameters:** - `path` (required): Path to the document to write - `content` (required): Document content (without frontmatter) - `metadata` (optional): Document metadata as an object **Example:** ```typescript const result = await mcp.callTool("docs-manager", "write_document", { path: "docs/examples/example.md", content: "# Example Document\n\nThis is an example document.", metadata: { title: "Example Document", description: "An example document", author: "MCP Docs Manager", date: new Date().toISOString(), tags: ["example", "documentation"], status: "draft", }, }); ``` **Response:** ```typescript { content: [ { type: "text", text: "Document written successfully" } ], metadata: { path: string } } ``` ### edit_document Applies edits to a markdown document while preserving frontmatter. **Parameters:** - `path` (required): Path to the document to edit - `edits` (required): Array of edits to apply - `oldText` (required): Text to replace - `newText` (required): Text to replace with **Example:** ```typescript const result = await mcp.callTool("docs-manager", "edit_document", { path: "docs/examples/example.md", edits: [ { oldText: "This is an example document.", newText: "This is an updated example document.", }, ], }); ``` **Response:** ```typescript { content: [ { type: "text", text: "Document edited successfully" } ], metadata: { path: string, appliedEdits: number } } ``` ### delete_document Deletes a markdown document. **Parameters:** - `path` (required): Path to the document to delete **Example:** ```typescript const result = await mcp.callTool("docs-manager", "delete_document", { path: "docs/examples/example.md", }); ``` **Response:** ```typescript { content: [ { type: "text", text: "Document deleted successfully" } ], metadata: { path: string } } ``` ### search_documents Searches for markdown documents matching criteria. **Parameters:** - `basePath` (optional): Base path to search from - `query` (optional): Search query to match against document content and metadata - `excludePatterns` (optional): Array of glob patterns to exclude - `tags` (optional): Array of tags to filter by - `status` (optional): Status to filter by **Example:** ```typescript const result = await mcp.callTool("docs-manager", "search_documents", { basePath: "docs", query: "getting started", tags: ["guide"], status: "published", }); ``` **Response:** ```typescript { content: [ { type: "text", text: "Found X matching documents" } ], metadata: { documents: Array<{ path: string, name: string, metadata: { // Document metadata } }> } } ``` ### check_documentation_health Checks the health of documentation and identifies issues. **Parameters:** - `basePath` (optional): Base path to check documentation in - `checkLinks` (optional): Whether to check for broken internal links (default: true) - `checkMetadata` (optional): Whether to check for missing metadata fields (default: true) - `checkOrphans` (optional): Whether to check for orphaned documents (default: true) - `requiredMetadataFields` (optional): List of metadata fields that should be present (default: ["title", "description", "status"]) **Example:** ```typescript const result = await mcp.callTool( "docs-manager", "check_documentation_health", { basePath: "docs", checkLinks: true, checkMetadata: true, checkOrphans: true, requiredMetadataFields: ["title", "description", "status"], } ); ``` **Response:** ```typescript { content: [ { type: "text", text: "Documentation health check completed. Overall health score: X%" } ], metadata: { score: number, // Overall health score (0-100) totalDocuments: number, // Total number of documents checked issues: Array<{ path: string, type: 'missing_metadata' | 'broken_link' | 'orphaned' | 'missing_reference', severity: 'error' | 'warning' | 'info', message: string, details?: any }>, metadataCompleteness: number, // Percentage of required metadata fields present brokenLinks: number, // Number of broken internal links orphanedDocuments: number, // Number of documents not in navigation missingReferences: number, // Number of missing references documentsByStatus: Record<string, number>, // Count of documents by status documentsByTag: Record<string, number> // Count of documents by tag } } ``` For more details, see the [Check Documentation Health](tools/check-documentation-health.md) reference. ## When to Use Each Tool ### Documentation Tools - **read_document**: Use when you need to read a specific markdown document and access both its content and metadata (frontmatter). - **list_documents**: Use when you need to get a list of all markdown documents in a directory, including their metadata. - **get_structure**: Use when you need to understand the hierarchical structure of your documentation, including directories and files. - **get_navigation**: Use when you need to generate a navigation structure for your documentation based on the file structure and metadata. - **get_docs_knowledge_base**: Use when you need to provide an LLM with comprehensive context about your documentation. This tool is ideal for creating a knowledge base that can be used to answer questions without requiring multiple file searches. - **write_document**: Use when you need to create or update a markdown document with frontmatter metadata. - **edit_document**: Use when you need to make specific edits to a markdown document while preserving its frontmatter. - **delete_document**: Use when you need to delete a markdown document. - **search_documents**: Use when you need to search for markdown documents based on content or metadata. ## Best Practices 1. **Error Handling**: Always check for the `isError` flag in the response to handle errors appropriately. 2. **Path Handling**: Paths can be relative to the allowed directories or absolute. If using absolute paths, ensure they are within the allowed directories. 3. **Performance Considerations**: For large documentation repositories, consider using more specific tools (like `read_document` for a specific file) rather than broader tools (like `get_structure` for the entire repository). 4. **Metadata Usage**: Take advantage of the metadata extracted from markdown frontmatter to organize and structure your documentation.

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/alekspetrov/mcp-docs-service'

If you have feedback or need assistance with the MCP directory API, please join our Discord server