Xano MCP连接器
通过模型上下文协议(MCP)接口启用与Xano API的交互,提供对Xano数据库操作的安全且类型安全的管理。
服务介绍
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
配置
- 复制示例环境文件:
cp .env.example .env
- 使用您的 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 | 是 | - |
| NODE_ENV | 环境(开发/生产) | 否 | development |
| API_TIMEOUT | API 请求超时时间(毫秒) | 否 | 10000 |
错误处理
服务器为以下情况提供详细的错误信息:
- 无效参数
- 认证失败
- API 请求失败
- 内容验证错误
- 未知工具请求
安全性
- 敏感配置使用环境变量
- 包含 TruffleHog 配置以防止机密泄露
- API 密钥和敏感数据永远不会提交到仓库
贡献
- 创建功能分支
- 进行更改
- 提交拉取请求
许可证
ISC