mcpField
M
MCP Server - Coda.io

MCP Server - Coda.io

ローカル
github.com/elberrd生産性580 週間前に更新

MCP Server - Coda.io について

MCP Server - Coda.ioは、Codaのコンテンツを読み書きするユーザー向けに、Coda APIの文書、テーブル、データ管理機能を提供します。テーブルや列の参照に加え、行の取得、追加、更新、削除に対応します。

主な機能

  1. 01Coda文書の一覧取得
  2. 02文書内テーブルの取得
  3. 03テーブル列情報の取得
  4. 04テーブル行の取得
  5. 05行の追加または更新
  6. 06指定行の削除

活用シーン

  1. 01利用可能なCoda文書の確認
  2. 02テーブル構造と内容の確認
  3. 03テーブル行データの管理

MCP 対応

MCP サーバーとして、Coda API経由で文書、テーブル、列、行を操作するツールをMCPクライアントに提供します。Coda API keyが必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"CodaMcpServer": {
"command": "npx",
"args": [
"-y",
"tsc"
]
}
}
}
起動コマンドnpx -y tsc

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmtsc

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP Server - Coda.io

Coda の API とシームレスに統合し、ドキュメント、テーブル、データを管理するさまざまなツールを提供する Model Context Protocol(MCP)サーバーの実装です。

機能

  • テーブル操作
    • ドキュメントからすべてのテーブルを取得
    • 特定のテーブルデータを取得
    • テーブルの列情報を取得
  • 行の管理
    • テーブルから行を取得
    • 行をアップサート(挿入/更新)
    • 行を削除
  • 列の操作
    • 特定の列の詳細を取得
    • 列のメタデータを取得

前提条件

  • 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 で起動し、次のエンドポイントを利用できます:

  • GET /sse - SSE 接続エンドポイント
  • POST /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、rows
  7. delete-coda-rows

    • テーブルから指定した行を削除します
    • 必須パラメーター:docId、tableId、rowIds

エラー処理

このサーバーでは、包括的なエラー処理を実装しています:

  • 環境変数の検証
  • 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.json で MCP サーバーを設定します: Cursor MCP JSON Configuration

  2. Cursor の設定で利用可能なツールを有効にして使用します: Cursor MCP Tools Configuration

ライセンス

このプロジェクトは ISC License の下でライセンスされています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。