Skip to main content
Glama

docs_get_doc_detail

Retrieve detailed documentation content by document ID from McpDocServer, enabling developers to access specific technical information for frameworks and libraries.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes文档ID
sourceNo文档源名称(如不提供,将搜索所有源)

Implementation Reference

  • The handler function for 'docs_get_doc_detail' tool. It retrieves the document details by ID from the global docData, optionally from a specific source, and returns formatted JSON response.
    async ({ id, source }) => { log(`收到文档详情请求: ID="${id}", 源="${source || '所有'}"`); try { // 确保文档已加载 if (Object.keys(docData).length === 0) { log(`文档数据为空,尝试加载...`); const loadResult = await ensureDocsLoaded(); if (!loadResult || Object.keys(docData).length === 0) { return { content: [{ type: "text", text: JSON.stringify({ error: "文档数据不可用", message: "无法加载文档数据" }, null, 2) }] }; } } // 查找指定的文档 let docDetail = null; if (source) { // 在指定源中查找文档 const sourceLower = source.toLowerCase(); if (!docData[sourceLower] || !docData[sourceLower].pages) { return { content: [{ type: "text", text: JSON.stringify({ error: `未找到文档源 "${source}"`, availableSources: Object.keys(docData) }, null, 2) }] }; } if (docData[sourceLower].pages[id]) { const page = docData[sourceLower].pages[id]; docDetail = { id, title: page.title || id, content: page.content || "", source: { name: sourceLower, url: docData[sourceLower].source?.url || "" }, url: id // 使用ID作为URL }; } } else { // 在所有源中查找文档 for (const [sourceName, data] of Object.entries(docData)) { if (data.pages && data.pages[id]) { const page = data.pages[id]; docDetail = { id, title: page.title || id, content: page.content || "", source: { name: sourceName, url: data.source?.url || "" }, url: id // 使用ID作为URL }; break; } } } if (!docDetail) { return { content: [{ type: "text", text: JSON.stringify({ error: `未找到ID为 "${id}" 的文档`, source: source || "all" }, null, 2) }] }; } // 返回文档详情 return { content: [{ type: "text", text: JSON.stringify({ success: true, document: docDetail }, null, 2) }] }; } catch (error) { log(`获取文档详情时发生错误: ${error.message}`); return { content: [{ type: "text", text: JSON.stringify({ error: "获取文档详情时发生错误", details: error.message }, null, 2) }] }; } }
  • Input schema for the 'docs_get_doc_detail' tool using Zod validation: requires 'id' string, optional 'source' string.
    { id: z.string().describe("文档ID"), source: z.string().optional().describe("文档源名称(如不提供,将搜索所有源)") },
  • server.js:561-674 (registration)
    Registration of the 'docs_get_doc_detail' tool on the MCP server using server.tool() with name, schema, and handler.
    server.tool( "docs_get_doc_detail", // 修改工具名称,添加命名空间前缀 { id: z.string().describe("文档ID"), source: z.string().optional().describe("文档源名称(如不提供,将搜索所有源)") }, async ({ id, source }) => { log(`收到文档详情请求: ID="${id}", 源="${source || '所有'}"`); try { // 确保文档已加载 if (Object.keys(docData).length === 0) { log(`文档数据为空,尝试加载...`); const loadResult = await ensureDocsLoaded(); if (!loadResult || Object.keys(docData).length === 0) { return { content: [{ type: "text", text: JSON.stringify({ error: "文档数据不可用", message: "无法加载文档数据" }, null, 2) }] }; } } // 查找指定的文档 let docDetail = null; if (source) { // 在指定源中查找文档 const sourceLower = source.toLowerCase(); if (!docData[sourceLower] || !docData[sourceLower].pages) { return { content: [{ type: "text", text: JSON.stringify({ error: `未找到文档源 "${source}"`, availableSources: Object.keys(docData) }, null, 2) }] }; } if (docData[sourceLower].pages[id]) { const page = docData[sourceLower].pages[id]; docDetail = { id, title: page.title || id, content: page.content || "", source: { name: sourceLower, url: docData[sourceLower].source?.url || "" }, url: id // 使用ID作为URL }; } } else { // 在所有源中查找文档 for (const [sourceName, data] of Object.entries(docData)) { if (data.pages && data.pages[id]) { const page = data.pages[id]; docDetail = { id, title: page.title || id, content: page.content || "", source: { name: sourceName, url: data.source?.url || "" }, url: id // 使用ID作为URL }; break; } } } if (!docDetail) { return { content: [{ type: "text", text: JSON.stringify({ error: `未找到ID为 "${id}" 的文档`, source: source || "all" }, null, 2) }] }; } // 返回文档详情 return { content: [{ type: "text", text: JSON.stringify({ success: true, document: docDetail }, null, 2) }] }; } catch (error) { log(`获取文档详情时发生错误: ${error.message}`); return { content: [{ type: "text", text: JSON.stringify({ error: "获取文档详情时发生错误", details: error.message }, null, 2) }] }; } } );

Latest Blog Posts

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/ruan11223344/McpDocServer'

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