Tabularis MCP 服务器
使用说明(简要,便于快速理解与接入)
-
项目简介
- Tabularis 的 MCP 服务器实现承担“模型上下文提供者”的职责,向 LLM 客户端按标准化方式提供上下文资源、可调用的工具、以及可渲染的 Prompt 模板。当前实现通过 JSON-RPC 在标准输入输出(Stdio)通道工作,便于与 Claude Desktop、Cursor 等外部代理进行对接。
-
主要功能点
- 资源托管与读取
- 能列出并读取资源,如连接列表、各连接的 Schema 信息等,便于 LLM 获取上下文数据。
- 工具注册与调用
- 提供工具清单与对外调用能力,LLM 客户端可通过 MCP 请求执行外部功能。
- Prompts 定义与渲染
- 定义并渲染提示模板,支持将模板中的占位符替换为具体的 Schema/上下文信息,以驱动 LLM 进行上下文对话。
- 会话与能力声明
- 服务器对会话进行管理,并在初始化阶段声明能力(资源、工具、Prompts 等)。
- 多传输协议与扩展(当前实现说明)
- 当前实现通过 Stdio(标准输入输出)进行 JSON-RPC 通信;MCP 规范提出支持 SSE、WebSocket 等传输层,后续可拓展。
- 资源托管与读取
-
安装步骤
- 编译并运行包含 MCP 模块的可执行产物。
- 常见方式:使用仓库的构建产物加载命令,或通过源码构建运行。仓库中提供了 MCP 模块入口,通常在开发环境中通过命令行参数触发:
- 启动方式示例(无代码块):在命令行执行程序并传入 --mcp 参数,即以 MCP 模式启动。具体命令取决于构建产物名称,通常是类似 tabularis --mcp 的形式。
- 注意:本实现的 MCP 服务会在标准输入读取 JSON-RPC 请求,并向标准输出输出响应,因此确保客户端按行读取与写入。
-
服务器配置(MCP 客户端需要的配置信息) 配置示例(以 JSON 形式描述,便于 MCP 客户端解析): { "serverName": "Tabularis MCP Server", "command": "tabularis", "args": ["--mcp"] } 说明:
- serverName:MCP 服务器的名称,客户端用于展示或管理。
- command:启动 MCP 服务器的命令/可执行文件名。
- args:启动参数数组,在本实现中需包含开启 MCP 模式的参数(如 --mcp),以使服务进入 MCP 运行模式。
-
基本使用方法
- 连接建立与请求流程
- 客户端通过 JSON-RPC 将请求发送到 MCP 服务器(本实现通过标准输入读取)。
- MCP 服务器解析请求,执行以下方法之一:initialize、resources/list、resources/read、tools/list、tools/call 等,并返回对应的 JSON-RPC 响应。
- 常用接口与用途
- initialize:声明协议版本、能力和服务器信息。
- resources/list:列出服务器可用的资源(如连接列表、每个连接的 schema)。
- resources/read:读取指定资源的内容(通过 uri 等参数定位资源)。
- tools/list:列出可用工具。
- tools/call:调用指定工具并返回结果。
- 安全与扩展
- 当前实现对外暴露的资源均来自本地配置(connections.json 等),任何需要认证/鉴权的场景可在此基础上扩展。
- MCP 客户端如需接入,请按照上文的配置格式启动并使用 JSON-RPC 与服务器交互。
- 连接建立与请求流程
-
运行环境与依赖
- 代码基于 Rust 实现,集成在 Tabularis 的 tarai/tauri 项目中。MCP 服务入口通过命令行参数触发,协议按 MCP 的 JSON-RPC 规范进行请求/响应处理。
- 服务器实现具备持续会话管理与能力声明能力,能够在初始化后接收资源、工具的请求并返回结果或通知。
-
额外说明
- MCP 服务将资源信息(如连接列表与每个连接的 schema)从应用配置(connections.json 等)读取,提供给外部代理进行进一步处理与对话上下文构造。
- 未来可扩展性:支持 SSE、WebSocket 传输、Prompts 的模板化渲染,以及对外部工具执行的更多混合模式。