文档检索工具

一个用于高效发现和检索Cumulocity文档的LLM桥接工具,提供MCP工具和缓存机制。

  • by schplitt
  • HTML
  • 本地部署
  • 更新于
在 GitHub 查看 schplitt/c8y-codex-mcp

使用说明

c8y codex mcp

用于积云食典文件的非官方MCP服务器。

一个LLM桥,用于获取Cumulocity文档并公开MCP工具,以实现高效的文档发现和检索。

发展

安装依赖项并在本地运行:

pnpm install
pnpm dev

构建生产输出:

pnpm build
pnpm preview

运行测试:

pnpm vitest run

默认情况下,MCP端点在以下位置可用 http://localhost:3000/mcp.

运作原理

Fetch llms.txt live → Parse structure → Resolve requested docs lazily → Cache raw/enriched content per URL with different TTLs → Expose MCP tools

该服务器按需镜像Codex结构,并通过浏览器渲染为具有缓存的原始和丰富文档内容的MCP检索工具提供服务。

用法

将您的MCP客户端指向您部署的URL(或本地URL)并使用 /mcp 作为终点。

Visual Studio Code

创建或更新 .vscode/mcp.json:

{
    "servers": {
        "c8y-docs": {
            "type": "http",
            "url": "https://<your-host>/mcp"
        }
    }
}

克劳德代码

claude mcp add --transport http c8y-docs https://<your-host>/mcp

光标

创建或更新 .cursor/mcp.json:

{
    "mcpServers": {
        "c8y-docs": {
            "type": "http",
            "url": "https://<your-host>/mcp"
        }
    }
}

帆板运动

创建或更新 .codeium/windsurf/mcp_config.json:

{
    "mcpServers": {
        "c8y-docs": {
            "type": "http",
            "url": "https://<your-host>/mcp"
        }
    }
}

泽德

增添 .config/zed/settings.json:

{
    "context_servers": {
        "c8y-docs": {
            "source": "custom",
            "command": "npx",
            "args": ["mcp-remote", "https://<your-host>/mcp"],
            "env": {}
        }
    }
}

MCP工具和提示

工具

  • 获取codex结构:返回完整的食品法典结构(带链接的章节/小节/子小节)。
  • 查询代码:对结构元数据和链接的原始降价内容进行基于关键字的发现。
  • 获取codex文档:按URL获取完整的原始降价内容。
  • 丰富codex文档:昂贵的回退,返回浏览器渲染的丰富标记,具有可选的块搜索和基于行的分页。

提示

  • codex查询工作流:用于确定性工具流的可重用提示模板(query-codex → get-codex-documents,具有可选的丰富回退)。

工作原理(详细)

Fetch llms.txt live → Parse structure → Resolve requested docs lazily → Cache raw/enriched content per URL with different TTLs → Expose MCP tools
  1. 获取并解析Codex结构(llms.txt)根据需求。
  2. 延迟解析请求URL的原始降价内容。
  3. 可选择在浏览器渲染中渲染文档,以进行丰富的标记提取。
  4. 使用单独的TTL/命名空间缓存结构和文档内容。
  5. 为发现和检索工作流提供MCP工具/提示。

运行时详细信息:

  • 这 /mcp 端点使用Cloudflare agents/mcp (McpAgent)具有持久对象支持的运行时。
  • 传输/会话生命周期由代理运行时管理。
  • 工具和提示在代理类中初始化。

浏览器渲染丰富:

  • 浏览器绑定名称必须为 BROWSER.
  • 请求 .md URL呈现为非-.md 页面,然后 main#main-content 被提取并转换为markdown。
  • 每次渲染请求都会启动一个新的浏览器,然后关闭。
  • 如果渲染或提取失败,分辨率将回落到直接分辨率 .md 取回。

缓存模型:

  • 已解析的Codex结构(llms.txt)被缓存10分钟。
  • 原始markdown文档内容按URL缓存2小时。
  • 丰富的浏览器渲染的markdown内容将按每个URL缓存12小时。
  • 内容缓存条目通过TTL过期,并在下次请求时重新计算。

查询和输出行为:

  • query-codex 需要一个空格分隔的关键字查询(例如: services app-state permissions).
  • 原始文档输出使内部Codex哈希链接标准化(#/...)转换为绝对人类可读的Codex URL(无 .md).
  • 渲染/丰富的缓存键使用专用命名空间(c8y:rendered-*)并且永远不会覆盖原始缓存条目(c8y:raw:*).

丰富的基于行的检索:

  • get-codex-document-enriched 包括 startLine, endLine, returnedLines,以及 nextStartLine 元数据。
  • 分块和行分页仅在丰富的工具中使用。

许可证

麻省理工学院