Xano MCP サーバー
Xano APIと連携するためのモデルコンテキストプロトコル(MCP)サーバー実装。このサーバーは、MCPインターフェースを介してXanoデータベース操作を管理するためのツールとリソースを提供します。
特徴
- Xano APIによる安全な認証
- TypeScript を使用した型安全な API のやり取り
- 環境ベースの構成
- MCP準拠インターフェース
- ワークスペース管理ツール
- テーブルコンテンツの操作(作成、読み取り、更新)
- 詳細なメッセージによるエラー処理の改善
インストール
# Clone the repository
git clone [your-repo-url]
cd xano_mcp
# Install dependencies
npm install
構成
- サンプル環境ファイルをコピーします。
- Xano 資格情報を使用して
.env
ファイルを更新します。
XANO_API_KEY=your_api_key_here
XANO_API_URL=your_xano_api_url
NODE_ENV=development
API_TIMEOUT=10000
発達
# Build the project
npm run build
# Run in development mode
npm run dev
# Start the server
npm start
プロジェクト構造
xano_mcp/
├── src/
│ ├── api/
│ │ └── xano/
│ │ ├── client/ # API client implementation
│ │ ├── models/ # Data models and types
│ │ ├── services/ # API service implementations
│ │ └── utils/ # Utility functions
│ ├── mcp/
│ │ ├── server/ # MCP server implementation
│ │ ├── tools/ # MCP tool implementations
│ │ └── types/ # Tool-specific types
│ ├── config.ts # Configuration management
│ └── index.ts # Main entry point
├── .env # Environment variables (not in git)
├── .env.example # Example environment variables
└── tsconfig.json # TypeScript configuration
利用可能なMCPツール
ワークスペースツール
get_workspaces
: 利用可能なワークスペースをすべて一覧表示する
テーブルツール
create_table
: ワークスペースに新しいテーブルを作成するget_table_content
: ページ区切りをサポートするテーブルからコンテンツを取得するadd_table_content
: テーブルに新しいコンテンツを追加するupdate_table_content
: テーブル内の既存のコンテンツを更新するget_all_tables
: ワークスペース内のすべてのテーブルを詳細情報とともに一覧表示します
使用例
ワークスペースの操作
// List available workspaces
const result = await mcp.use_tool("get_workspaces", {});
console.log('Workspaces:', result);
テーブルの管理
// Create a new table
const createResult = await mcp.use_tool("create_table", {
workspaceId: 123,
name: "MyTable"
});
// Add content to a table
const addResult = await mcp.use_tool("add_table_content", {
workspaceId: 123,
tableId: 456,
content: {
created_at: "2024-01-22T17:07:00.000Z"
}
});
// Get table content with pagination
const getResult = await mcp.use_tool("get_table_content", {
workspaceId: 123,
tableId: 456,
pagination: {
page: 1,
items: 50
}
});
// Update table content
const updateResult = await mcp.use_tool("update_table_content", {
workspaceId: 123,
tableId: 456,
contentId: "789",
content: {
created_at: "2024-01-22T17:07:00.000Z"
}
});
// List all tables in a workspace
const tables = await mcp.use_tool("get_all_tables", {
workspaceId: 123
});
console.log('Tables:', tables);
// Returns an array of tables with their details:
// [
// {
// id: number,
// name: string,
// description: string,
// created_at: string,
// updated_at: string,
// guid: string,
// auth: boolean,
// tag: string[],
// workspaceId: number
// },
// ...
// ]
環境変数
変数 | 説明 | 必須 | デフォルト |
---|
XANO_API_KEY | Xano API認証キー | はい | - |
XANO_API_URL | Xano APIエンドポイントURL | はい | - |
ノード環境 | 環境(開発・生産) | いいえ | 発達 |
API_タイムアウト | APIリクエストのタイムアウト(ミリ秒) | いいえ | 10000 |
エラー処理
サーバーは、次の詳細なエラー メッセージを提供します。
- 無効なパラメータ
- 認証失敗
- APIリクエストの失敗
- コンテンツ検証エラー
- 不明なツールのリクエスト
安全
- 環境変数は機密性の高い設定に使用されます
- 秘密の漏洩を防ぐためにTruffleHogの設定が含まれています
- APIキーと機密データはリポジトリにコミットされません
貢献
- 機能ブランチを作成する
- 変更を加える
- プルリクエストを送信する
ライセンス
ISC