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 调整日志级别。
提示:在生产环境中,请确保网络访问策略和鉴权机制符合安全要求,必要时在服务端实现额外的鉴权中间件。