LlamaCloud MCP 服务端

使用说明

项目简介

该仓库实现了一个完整的 MCP 服务端,用于向 LLM 客户端提供统一的上下文信息和功能能力。核心能力包括:

  • 管理资源和数据访问(Resources)
  • 注册和执行 Tools,以便 LLM 能调用外部功能
  • 定义和渲染 Prompt 模板,支持可定制的交互模式
  • 通过 JSON-RPC 与客户端通信
  • 支持 STDIO 与 HTTP 两种传输协议,并具备日志级别控制

主要功能点

  • MCP 核心接口实现:ListTools、CallTool、SetLevel 的请求处理与响应返回
  • 内置工具集合:包含 codeTool、docsSearchTool 等可选工具,支持按需开启/关闭
  • 跨传输能力:默认 STDIO,亦可通过 HTTP Transport 进行远程交互
  • 日志与权限:支持日志级别配置、请求日志、以及对授权头的解析与校验
  • 服务可扩展性:通过服务器端点和工具映射,方便添加自定义工具

安装步骤

  • 安装依赖:在仓库根或对应子包目录执行安装命令(如 yarn install 或 npm install)
  • 构建(MCP 服务端):进入 packages/mcp-server,执行构建命令,将 TypeScript 代码编译为可执行的 JavaScript
  • 启动方式(两种可选路径之一):
    • 使用 HTTP 传输启动(推荐用于生产化部署):启动命令将绑定一个端口,例如 8080
    • 使用标准输入/输出(stdio)启动:
      • 不带额外参数时将自动以 stdio 方式启动
  • 启动后,服务端会输出可用于连接的工具信息,并对外提供 JSON-RPC 风格的调用入口

运行示例(不以代码块给出,便于直接阅读):使用 HTTP 传输时,指定命令为 node dist/index.js,参数包含传输类型、端口以及开启的工具集。

服务器配置(供 MCP 客户端使用的 JSON 配置)

注:以下配置是为 MCP 客户端准备的连接信息描述,不需要在 MCP 客户端代码中实现,而是由设备/环境提供给客户端使用。

{ "server_name": "llamaindex_llama_cloud_api", "command": "node", "args": [ "dist/index.js", "--transport=http", "--port=8080", "--tools=code", "--tools=docs" ], "notes": "该配置对应 MCP 服务端在发布版本中提供的名称、启动命令和可选工具列表。客户端通过这些信息建立 JSON-RPC 连接。若使用 STDIO 传输,将不需要该 JSON 配置中的端口与参数。" }

参数说明

  • server_name: 内部使用的 MCP 服务名,与代码中的名称一致(llamaindex_llama_cloud_api)
  • command: 启动服务的执行命令(如 node)
  • args: 启动参数,其中包括传输类型、端口、以及要启用的工具集合(如 code、docs),具体可根据需要调整
  • notes: 说明性注释,帮助 MCP 客户端理解该配置的用途

基本使用方法

  • 启动服务端后,MCP 客户端通过配置连接到服务器,发送 MCP 的 JSON-RPC 请求,服务器解析请求并调用相应工具或资源。
  • 客户端可通过 ListTools 查看可用工具、通过 CallTool 调用具体工具、通过 SetLevel 调整日志级别。

提示:在生产环境中,请确保网络访问策略和鉴权机制符合安全要求,必要时在服务端实现额外的鉴权中间件。

服务器信息