结构化数据管理服务器

基于REST API和MCP协议的AI代理结构化数据管理服务器,支持管理员定义表结构和状态机,提供完整的审计追踪和CRUD操作。

  • by genail
  • Ruby
  • 本地部署
  • 更新于
在 GitHub 查看 genail/sot-mcp-server

使用说明

SOT服务器

真相之源服务器-通过REST API和 主控程序 对于AI代理。使用Sinatra、Sequel和SQLite构建。

管理员定义的模式描述了具有类型化字段和可选状态机的表。记录是CRUD的,带有比较和交换前提条件以及完整的审计跟踪。

快速启动

Docker(推荐)

docker compose up -d
docker compose run --rm sot-server bundle exec rake db:seed   # creates admin user, prints token

本地

bundle install
rake server            # starts on port 39482
curl -X POST http://localhost:39482/install   # creates admin user, returns token

保存令牌,它将不再显示。将其用作所有后续请求的承载令牌。

API

所有端点(除 /install)要求 Authorization: Bearer <token>.

路径 描述
POST /install Bootstrap管理员用户(一次)
/api/schemas 列出架构
/api/records/:table 查询记录
/api/records 创建/更新/删除记录
/api/admin/schemas 管理架构(管理员)
/api/activity_log 审计追踪
/mcp 人工智能代理的MCP端点
/mcp/admin MCP管理端点

以MCP身份连接

服务器在上公开了可流式HTTP MCP传输 /mcp (用户工具)和 /mcp/admin (管理工具)。需要承载令牌身份验证。

克劳德代码(CLI)

claude mcp add sot-user -t http http://localhost:39482/mcp \
  -H "Authorization: Bearer <token>"

claude mcp add sot-admin -t http http://localhost:39482/mcp/admin \
  -H "Authorization: Bearer <token>"

JSON配置(.mcp.json 或 claude mcp add-json)

{
  "mcpServers": {
    "sot-user": {
      "type": "http",
      "url": "http://localhost:39482/mcp",
      "headers": {
        "Authorization": "Bearer <token>"
      }
    },
    "sot-admin": {
      "type": "http",
      "url": "http://localhost:39482/mcp/admin",
      "headers": {
        "Authorization": "Bearer <token>"
      }
    }
  }
}

码头工人

该应用程序在多阶段Docker构建中运行 ruby:3.3-slim.SQLite数据库存储在绑定挂载的主机目录上(./data/).

每次启动容器时,迁移都会自动运行。要手动运行它们,请执行以下操作:

docker compose run --rm sot-server bundle exec rake db:migrate

通过环境变量进行配置 docker-compose.yml:

变量 默认值 描述
RACK_ENV production 机架/辛纳屈环境
SOT_DB_PATH /data/sot.sqlite3 SQLite数据库文件路径
PORT 39482 服务器侦听端口

发展

rake spec              # run tests
rake db:create_migration[name]   # generate migration