AI数据库操作服务器

一个MCP(模型上下文协议)服务器,提供MCP兼容客户端与Baserow之间的无缝集成,通过自然语言实现AI驱动的数据库操作。

  • by ayyazzafar
  • TypeScript
  • 本地部署
  • 13 星标
  • 更新于
在 GitHub 查看 ayyazzafar/mcp-baserow

使用说明

基线MCP服务器

MCP(模型上下文协议)服务器,提供MCP兼容客户端(Claude Desktop、Cursor、Windsurf等)和Baserow之间的无缝集成,通过自然语言实现AI驱动的数据库操作。

🚀 特性

  • 🔐 智能身份验证:使用凭据或手动JWT/数据库令牌自动刷新令牌
  • 🏢 工作空间管理:列出、创建和管理Baserow工作区
  • 🗄️ 数据库操作:完全控制工作区内的数据库
  • 📊 表格管理:使用字段定义创建、列出和管理表
  • 📝 行CRUD操作:完成创建、读取、更新、删除功能
  • ⚡ 批量操作:创建、更新和删除行的高效批量操作
  • 🔍 高级查询:分页、过滤和排序支持
  • 💡 自然语言:使用简单的英语与数据库交互

📋 先决条件

🛠️ 安装

  1. 克隆存储库:

    git clone https://github.com/ayyazzafar/mcp-baserow.git
    cd mcp-baserow
    
  2. 安装依赖项:

    npm install
    
  3. 配置身份验证:

    cp .env.example .env
    

    编辑 .env 并添加您的凭据:

    # Recommended: Use credentials for automatic token refresh
    BASEROW_USERNAME=your@email.com
    BASEROW_PASSWORD=your_password
    
    # Optional: Override default API URL for self-hosted instances
    # BASEROW_API_URL=https://your-baserow-instance.com
    
  4. 构建项目:

    npm run build
    

🔑 身份验证选项

选项1:用户名/密码(推荐)

提供自动令牌刷新和API完全访问:

BASEROW_USERNAME=your@email.com
BASEROW_PASSWORD=your_password

选项2:JWT代币

对于手动令牌管理(60分钟后过期):

BASEROW_API_TOKEN=JWT_your_jwt_token_here

选项3:数据库令牌

对于特定于数据库的操作(范围有限,永不过期):

BASEROW_API_TOKEN=Token_your_database_token_here

⚙️ 配置

MCP客户端设置

Claude Desktop
  1. 打开配置:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. 添加Baserow服务器:

    {
      "mcpServers": {
        "baserow": {
          "command": "/path/to/mcp-baserow/start.sh"
        }
      }
    }
    
Cursor
  1. 打开光标设置
  2. 导航到MCP服务器部分
  3. 添加:
    {
      "baserow": {
        "command": "/path/to/mcp-baserow/start.sh"
      }
    }
    
Windsurf
  1. 打开Windsurf配置
  2. 添加到MCP服务器:
    {
      "baserow": {
        "command": "/path/to/mcp-baserow/start.sh"
      }
    }
    
  1. 重新启动MCP客户端

📚 使用示例

自然语言命令

配置后,您可以在MCP客户端中使用自然语言:

  • “显示我的所有Baserow工作区”
  • “在我的工作区中创建一个名为“项目跟踪器”的新数据库”
  • “列出项目跟踪器数据库中的所有表”
  • 在“任务”表中添加标题为“审核PR”、状态为“进行中”的新行
  • “更新任务表中的第5行,将其标记为已完成”
  • “删除存档表中超过30天的所有行”

可用的MCP工具

Authentication Tools (3)
  • baserow_auth_status -检查身份验证状态和功能
  • baserow_auth_login -使用凭据登录
  • baserow_auth_set_token -手动设置JWT或数据库令牌
Workspace Tools (4)
  • baserow_list_workspaces -列出所有工作区
  • baserow_get_workspace -获取工作区详细信息
  • baserow_create_workspace -创建新工作区
  • baserow_set_workspace -为操作设置活动工作区
Database Tools (3)
  • baserow_list_databases -列出工作区中的数据库
  • baserow_get_database -获取数据库详细信息
  • baserow_create_database -创建新数据库
Table Tools (3)
  • baserow_list_tables -列出数据库中的表
  • baserow_get_table -获取包含字段定义的表
  • baserow_create_table -创建新表
Row Operations (8)
  • baserow_list_rows -列出具有分页/筛选功能的行
  • baserow_get_row -按ID获取单行
  • baserow_create_row -创建新行
  • baserow_update_row -更新现有行
  • baserow_delete_row -删除行
  • baserow_batch_create_rows -创建多行
  • baserow_batch_update_rows -更新多行
  • baserow_batch_delete_rows -删除多行

🧪 发展

设置开发环境

# Install dependencies
npm install

# Run TypeScript compiler in watch mode
npm run dev

# Run tests (when available)
npm test

项目结构

mcp-baserow/
├── src/
│   ├── index.ts          # MCP server entry point
│   ├── auth-manager.ts   # Authentication handling
│   ├── baserow-client.ts # Baserow API client
│   ├── tools/           # MCP tool implementations
│   │   ├── auth.ts      # Authentication tools
│   │   ├── workspace.ts # Workspace operations
│   │   ├── database.ts  # Database operations
│   │   ├── table.ts     # Table operations
│   │   └── row.ts       # Row CRUD operations
│   └── types/           # TypeScript type definitions
├── dist/                # Compiled JavaScript
├── examples/            # Usage examples
└── tests/              # Test files

🤝 贡献

我们欢迎捐款!请查看我们的 贡献指南 了解详情。

贡献者快速入门

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📝 更新日志

看 更改日志.md 查看每个版本的更改列表。

🐛 故障排除

常见问题

  1. “身份验证失败”

    • 在中验证您的凭据 .env
    • 确保您的Baserow帐户处于活动状态
    • 检查您是否使用了正确的API URL
  2. “未提供workspace_id”

    • 使用 baserow_set_workspace 设置活动工作区
    • 或提供 workspace_id 数据库操作中的参数
  3. “服务器已断开连接”

    • 检查您的MCP客户端的日志:
      • 克劳德桌面: ~/Library/Logs/Claude/mcp-server-baserow.log
      • 其他客户端:检查各自的日志位置
    • 确保已安装Node.js v22+
    • 验证是否已安装所有依赖项

调试模式

通过设置启用调试日志记录:

export DEBUG=baserow:*

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

  • Anthropic 对于MCP规范
  • 基线 优秀的开源数据库平台
  • MCP社区示例和最佳实践

🔗 链接


由以下材料制成❤️ 开源社区