Jaz AI MCP 服务端
使用说明
项目简介
Jaz AI MCP 服务端是一个符合 MCP(Model Context Protocol)标准的本地服务器实现。它在用户机器上运行,通过标准的输入输出(stdio)通道与 MCP 客户端进行通信。服务器核心职责包括:
- 托管和管理资源(Resources),为 LLM 客户端提供数据获取能力
- 注册并执行工具(Tools),允许客户端调用外部功能
- 定义并渲染 Prompt 模板(Prompts),支持多种交互模式
- 以 JSON-RPC 的形式处理请求与返回响应
- 支持自定义的传输协议(此实现使用 STDIO 传输,如需扩展可改为其他传输)
主要功能点
- MCP 请求处理:实现 ListTools 与 CallTool 的请求处理,符合 MCP 的请求/响应格式。
- 工具注册与执行:从本地工具注册表中加载工具,校验输入并执行 tool 的逻辑,返回统一的 JSON-RPC 响应。
- JSON Schema 透传:将工具输入约束以 JSON Schema 的形式暴露给客户端,确保输入结构清晰、可验证。
- 安全与容错:对工具输入进行校验,错误会以结构化的错误信息返回,并在服务器端捕获异常进行友好处理。
- 断点与关闭:支持向量化的关闭逻辑,优雅地关闭 MCP 服务器实例。
安装步骤
- 确保本地具备 Node.js 运行环境。
- 获取代码后在仓库根目录执行安装与构建(若有必要,按项目自带的构建脚本执行)。
- MCP 服务端入口在命令行通过执行 clio mcp 启动(前提是你已经安装并配置好 Jaz CLI,且依赖已安装完毕)。
服务器配置(给 MCP 客户端的连接信息)
说明:MCP 客户端需要提供一个 JSON 配置,描述服务器的名称、启动命令及参数等,以便建立连接。本 MCP 服务器使用标准输入输出(stdio)作为通信信道,因此配置集中在客户端如何启动服务器进程并将输出连接到客户端(客户端本身不需要实现服务器逻辑,只需要知道启动信息)。
服务器配置示例(JSON 结构,非代码块文本展示,含注释说明): { "serverName": "jaz", "command": "npx", "args": ["jaz-clio", "mcp"], "env": { // 可选:如果需要认证,请提供 API Key 等环境变量 "JAZ_API_KEY": "<your-api-key>" } // 说明:上述配置代表通过 npm 脚本直接启动 MCP 服务器进程 // 具体实现中,MCP 客户端会启动该命令并将标准输入/输出连通,进行 JSON-RPC 交互 }
注意:
- 实际使用时,请根据你们的部署环境和安全策略调整 env、路径与启动参数。
- 客户端并不需要解析服务器内部实现的细节,只需要知道如何启动并与之进行通信即可。
基本使用方法
- 启动方式
- 在本地命令行执行指定的启动命令,确保服务器进程成功创建并与客户端建立对话通道(STDIN/STDOUT)。服务器启动后会在标准错误输出(stderr)打出启动信息,便于调试。
- 客户端通信
- 客户端通过 MCP 规范的 JSON-RPC 与服务器通信,请求类型包括“ListTools”和“CallTool”等,服务器返回结构化的 JSON-RPC 响应或错误信息。
- 安全性
- 服务器端通过配置传入的 API Key 等认证信息来进行授权,所有调用都通过安全的键值对传递。
- 运行环境
- 服务器运行在本机,避免对外暴露端口,通信通过标准输入输出进行。
使用注意
- 本 MCP 服务器实现紧密依赖仓库中的工具注册表与工具执行逻辑。确保工具注册表在运行时可用且工具实现可调用。
- 如果要扩展更多传输协议,可以在未来将 StdioServerTransport 替换或扩展为 SSE/WebSocket 等传输实现。
4个要点总结
- MCP 请求/响应完整实现
- 通过 STDIO 与客户端通信
- 工具注册与执行能力完备
- JSON-Schema 驱动的输入验证与安全性