Coda文档管理服务器

一个与Coda API无缝集成的MCP服务器实现,提供文档、表格和数据管理的各种工具。

  • by elberrd
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 elberrd/CodaMcpServer

使用说明

MCP服务器-Coda.io

模型上下文协议(MCP)服务器实现与Coda的API无缝集成,为文档、表格和数据管理提供各种工具。

特性

  • 表操作
    • 从文档中获取所有表
    • 检索特定表数据
    • 获取表列信息
  • 行管理
    • 从表中提取行
    • 插入/更新行
    • 删除行
  • 列操作
    • 获取特定列详细信息
    • 获取列元数据

先决条件

  • Node.js(v20或更高版本)
  • 一个Coda API密钥
  • TypeScript知识(用于开发)

环境设置

  1. 在Replit中克隆或分叉此存储库
  2. 创建一个 .env 根目录中的文件:
    PORT=8000
    CODA_API_KEY=your_coda_api_key_here
    
  3. 替换 your_coda_api_key_here 使用您的实际Coda API密钥

安装

该项目使用npm进行依赖管理。要安装依赖项,请执行以下操作:

npm install

建设项目

将TypeScript文件编译为JavaScript:

npx tsc

运行服务器

构建后,启动服务器:

node dist/index.js

或者使用组合命令:

npm install && npx tsc && node dist/index.js

默认情况下,服务器将在端口8000上启动,以下端点可用:

  • 获取 /sse -SSE连接端点
  • 发布 /messages -消息处理端点

可用工具

  1. fetch-coda-docs

    • 获取所有可用的Coda文档
    • 可选参数:isOwner,limit
  2. fetch-coda-tables

    • 从指定文档中获取所有表
    • 必需参数:docId
  3. fetch-coda-table

    • 从文档中获取特定表
    • 必需参数:docId、tableId
  4. fetch-coda-table-columns

    • 检索特定表的列信息
    • 必需参数:docId、tableId
  5. fetch-coda-rows

    • 从指定表中获取行
    • 必需参数:docId、tableId
  6. upsert-coda-rows

    • 在表中插入或更新行
    • 必需参数:docId、tableId、行
  7. delete-coda-rows

    • 从表中删除指定行
    • 必需参数:docId、tableId、rowId

错误处理

服务器实现了全面的错误处理:

  • 环境变量验证
  • API响应验证
  • 请求参数验证
  • 正确的错误消息和日志记录

发展

该项目的结构如下:

src/
├── tools/           # Individual tool implementations
│   ├── fetch-coda-docs.tool.ts
│   ├── fetch-coda-tables.tool.ts
│   └── ...
└── index.ts        # Main server implementation

构建于

  • Express.js-Web框架
  • @modelcontextprotocol/sdk-MCP实现
  • Zod-运行时类型检查
  • dotenv-环境配置

已知的局限性和未来的改进

目前工具的实施需要几项改进:

  • 增强的JSON响应处理和格式化
  • 大型数据集分页的实现
  • 更好的错误处理和重试机制
  • 限速实施
  • 大型操作的批处理
  • 频繁访问数据的缓存机制
  • 在文档的基础上,还有更多的API工具需要实现

MCP客户端实现示例

以下是如何在Cursor中实现此MCP服务器的示例:

  1. 在Cursor中配置MCP服务器 mcp.json:

  2. 启用并使用Cursor设置中的可用工具:

许可证

该项目根据ISC许可证获得许可。