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 的模板化渲染,以及对外部工具执行的更多混合模式。

服务器信息