Skip to main content
Glama

MCP Document Server

index.js1.84 kB
import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js"; import { readMarkdownFile, listMarkdownFiles, findMarkdownFile, DOCUMENTS_DIR } from '../utils/fileUtils.js'; import { join } from 'path'; export function registerResources(mcpServer) { // Add docs resource that can handle multiple markdown files const docsTemplate = new ResourceTemplate("docs://{path}", { list: async () => { try { const files = await listMarkdownFiles(DOCUMENTS_DIR); const resources = files.map(file => ({ name: file.replace('.md', ''), uri: `docs://${file}`, type: "text/markdown" })); return { resources }; } catch (error) { console.error('Error listing documents:', error); return { resources: [] }; } } }); mcpServer.resource("docs", docsTemplate, async (uri, { path }) => { try { // Validate path parameter if (path.includes('/') || path.includes('\\') || path.includes('..')) { return { contents: [{ uri: uri.href, text: 'Invalid document path' }] }; } const actualFile = await findMarkdownFile(DOCUMENTS_DIR, path); if (!actualFile) { return { contents: [{ uri: uri.href, text: 'Document not found' }] }; } const filePath = join(DOCUMENTS_DIR, actualFile); const content = await readMarkdownFile(filePath); return { contents: [{ uri: uri.href, text: content }] }; } catch (error) { console.error('Error reading document:', error); return { contents: [{ uri: uri.href, text: 'Unable to load document' }] }; } }); }

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/motiondesignlv/MCP_server'

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