任何类型的MCP服务器
Anytype的全功能模型上下文协议(MCP)服务器,提供对Anytype功能的完全控制。
特性
- 完成Anytype对象的CRUD操作
- 搜索和筛选对象
- 管理空间、类型和关系
- 使用API密钥进行安全身份验证
- 速率限制和请求验证
- 全面的错误处理
- 日志记录与监视
- Docker支持,易于部署
先决条件
- Node.js 18.0.0或更高版本
- 正在运行的任何类型的桌面应用程序
- 任何类型的API密钥
安装
- 克隆存储库:
git clone https://github.com/yourusername/anytype-mcp-full-control.git
cd anytype-mcp-full-control- 安装依赖项:
npm install- 创建一个
.env根目录中的文件:
NODE_ENV=development
PORT=31009
ANYTYPE_API_URL=http://localhost:31009
ANYTYPE_API_KEY=your_anytype_api_key_here
LOG_LEVEL=info
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX=100获取您的Anytype API密钥
- 打开Anytype桌面应用程序
- 前往“设置”>“高级”
- 点击“开发者模式”
- 点击“生成API密钥”
- 复制API密钥并将其粘贴到
.env文件
运行服务器
发展模式
npm run dev生产模式
- 构建应用程序:
npm run build- 启动服务器:
npm startAPI文档
服务器运行后,您可以访问API文档,网址为:
http://localhost:31009/api/docs环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
| NODE_ENV | 环境(开发/生产) | 开发 |
| PORT | 运行服务器的端口 | 31009 |
| ANYTYPE_API_URL | 任何类型API的基本URL | http://localhost:31009 |
| ANYTYPE_API_KEY | 您的任意类型API密钥 | - |
| LOGLEVEL | 日志记录级别(错误、警告、信息、调试) | 信息 |
| RATE_LIMIT_WINDOW_MS | 速率限制窗口(毫秒) | 900000(15分钟) |
| RATE_LIMIT_MAX | 每个窗口的最大请求数 | 100 |
API终点
对象
GET /api/objects-获取所有对象GET /api/objects/:id-按ID获取对象POST /api/objects-创建新对象PATCH /api/objects/:id-更新对象DELETE /api/objects/:id-删除对象POST /api/objects/search-搜索对象GET /api/objects/:id/relations-获取对象关系
空间
GET /api/spaces-获取所有空间GET /api/spaces/:id-按ID获取空间POST /api/spaces-创建新空间PATCH /api/spaces/:id-更新空间DELETE /api/spaces/:id-删除空格
类型
GET /api/types-获取所有类型GET /api/types/:id-按ID获取类型POST /api/types-创建新类型PATCH /api/types/:id-更新类型DELETE /api/types/:id-删除类型
关系
GET /api/relations-获取所有关系GET /api/relations/:id-通过ID获取关系POST /api/relations-创建新关系PATCH /api/relations/:id-更新关系DELETE /api/relations/:id-删除关系
认证
所有API端点都需要使用API密钥进行身份验证。在中包含API密钥 Authorization 头球
Authorization: Bearer YOUR_API_KEY或在 X-API-Key 头球
X-API-Key: YOUR_API_KEY错误处理
API返回标准HTTP状态代码:
200 OK-请求成功201 Created-已成功创建资源400 Bad Request-无效请求401 Unauthorized-身份验证失败403 Forbidden-权限不足404 Not Found-未找到资源429 Too Many Requests-超出费率限制500 Internal Server Error-服务器错误
日志记录
日志以不同的日志级别输出到控制台,具体取决于 LOG_LEVEL 环境变量。
测试
要运行测试,请执行以下操作:
npm test代码检查
要检查代码样式,请执行以下操作:
npm run lint格式化
要格式化代码,请执行以下操作:
npm run format部署
码头工人
- 构建Docker镜像:
docker build -t anytype-mcp .- 运行容器:
docker run -d \
--name anytype-mcp \
-p 31009:31009 \
-e NODE_ENV=production \
-e ANYTYPE_API_KEY=your_api_key_here \
anytype-mcpDocker Compose
docker-compose up -d --buildPM2(生产)
- 全局安装PM2:
npm install -g pm2- 启动应用程序:
pm2 start dist/index.js --name "anytype-mcp"- 将PM2设置为启动时启动:
pm2 startup
pm2 save监控
PM2
# List all processes
pm2 list
# View logs
pm2 logs anytype-mcp
# Monitor resources
pm2 monit
# Restart the application
pm2 restart anytype-mcp
# Stop the application
pm2 stop anytype-mcp
# Delete the application
pm2 delete anytype-mcp贡献
- 复刻仓库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m "Add some amazing feature") - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
支持
如需支持,请在GitHub存储库上打开一个问题。
