资产协议服务器

MWID MCP Server是一个用于资产管理的协议服务器,支持AI助手如ChatGPT和Claude通过REST API与MWID Dashboard交互,提供实时数据访问、任务跟踪和团队协作功能。

  • by ServiceWare20
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ServiceWare20/mwid-mcp-server

使用说明

MWID MCP服务器

MetaWealth资产启动仪表板的模型上下文协议(MCP)服务器。该服务器使ChatGPT和Claude等人工智能助手能够与MWID Dashboard API交互,用于资产管理、任务跟踪和团队协作。

特性

  • 🔧 综合工具套件:40多种用于资产、任务、用户、部门和团队的工具
  • 🔐 多种身份验证方法:JWT、Supabase和Google OAuth支持
  • 📊 实时数据:通过REST API访问实时仪表板数据
  • 🌐 苏格兰和南方能源公司运输:服务器发送事件以实现可靠的AI助手连接
  • 🚀 生产就绪:针对云部署进行了Docker化和优化

部署到铁路

逐步部署

  1. 推送到GitHub:

    git add .
    git commit -m "Add Railway configuration"
    git push origin main
    
  2. 在铁路上创建新项目:

    • 首选 railway应用程序
    • 点击“新建项目”
    • 选择“从GitHub仓库部署”
    • 选择您的存储库: mwid-mcp-server
  3. 配置环境变量:

    在铁路仪表板中→ 变量,添加这些必需的变量:

    MWID_API_URL=https://your-backend-api.com/api/v1
    MWID_AUTH_METHOD=jwt
    MWID_JWT_TOKEN=your-jwt-token-here
    

    可选变量:

    MWID_REQUEST_TIMEOUT=30
    MWID_DEBUG=false
    
  4. 铁路自动检测:

    铁路将自动检测:

    • ✅ Dockerfile 用于集装箱化部署
    • ✅ railway.json 用于构建/部署配置
    • ✅ Procfile 用于过程管理
    • ✅ 端口配置(铁路组 PORT 自动)
  5. 部署:

    铁路将自动建造和部署。监控铁路仪表板日志中的部署。

  6. 获取您的MCP服务器URL:

    Railway提供了一个公共URL,例如: https://mwid-mcp-server-production-xxxx.up.railway.app

    您还可以在铁路设置中设置自定义域。

  7. 配置您的AI助手:

    • ChatGPT:在以下位置添加MCP服务器 https://your-railway-url.railway.app/sse
    • 克劳德桌面版:添加到 claude_desktop_config.json (见下面的配置)

手动部署

先决条件

  • Python 3.13+
  • 点
  • Docker(可选)

本地开发

# Clone the repository
git clone https://github.com/MetaWealth/mwid-mcp-server.git
cd mwid-mcp-server

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Create .env file
cat > .env << EOF
MWID_API_URL=http://localhost:8080/api/v1
MWID_AUTH_METHOD=jwt
MWID_JWT_TOKEN=your-token-here
EOF

# Run the server
python serve.py

服务器将于启动 http://localhost:8000

Docker部署

# Build image
docker build -t mwid-mcp-server .

# Run container
docker run -p 8000:8000 \
  -e MWID_API_URL=https://your-api.com/api/v1 \
  -e MWID_AUTH_METHOD=jwt \
  -e MWID_JWT_TOKEN=your-token \
  mwid-mcp-server

配置

环境变量

变量 必填 默认 描述
MWID_API_URL 是的 http://localhost:8080/api/v1 后端API终结点
MWID_AUTH_METHOD 是的 jwt 身份验证方法: jwt, supabase,或 google
MWID_JWT_TOKEN 用于JWT - JWT身份验证令牌
MWID_SUPABASE_URL 用于Supabase - Supabase项目URL
MWID_SUPABASE_KEY 用于Supabase - Supabase匿名密钥
MWID_GOOGLE_ACCESS_TOKEN 适用于谷歌 - 谷歌OAuth访问令牌
PORT 没有 8000 服务器端口(铁路自动设置)

ChatGPT配置

在ChatGPT设置中添加MCP服务器:

Server URL: https://your-app.railway.app/sse

Claude桌面配置

添加 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "mwid-dashboard": {
      "url": "https://your-app.railway.app/sse"
    }
  }
}

可用工具

服务器提供40多种工具,分为以下几类:

✅ 工作特性(外部API-不需要JWT)

这些工具只需 MWID_EXTERNAL_API_KEY:

销售和投资者数据

  • list_manual_sales -列出具有过滤/分页功能的销售记录(3692+条记录)
    • 过滤器: userId, assetId, adjustmentType
    • 分页: page, pageSize (最多500)
  • get_manual_sale -按ID获取具体销售详情
  • list_manual_investors -列出投资者记录,并进行过滤/分页(1064+条记录)
    • 过滤器: email, userId, country
    • 分页: page, pageSize (最多500)
  • get_manual_investor -通过ID获取特定投资者详细信息

⚠️ 未来功能(内部API-需要JWT代币)

这些工具需要 MWID_JWT_TOKEN 待配置。在设置JWT身份验证之前,它们将返回403个错误。

资产管理

  • get_current_user -获取经过身份验证的用户信息
  • list_assets -列出所有资产
  • get_asset -获取资产详细信息
  • create_asset -创建新资产
  • update_asset -更新资产
  • delete_asset -删除资产(仅限管理员)
  • get_asset_phases -获取资产阶段
  • get_asset_tasks -获取资产任务
  • calculate_minimum_time -计算任务完成时间

任务管理

  • get_task -获取任务详细信息
  • update_task -更新任务
  • assign_task -将任务分配给用户
  • unassign_task -删除任务分配
  • get_assigned_tasks -获取用户分配的任务
  • get_unassigned_tasks -获取未分配的任务
  • get_my_department_tasks -获取部门任务
  • get_task_comments -获取任务注释
  • create_task_comment -向任务添加评论
  • get_task_progress -获取任务进度
  • update_task_progress -更新任务进度

阶段管理

  • update_phase -更新阶段详细信息
  • get_phase_tasks -获取某个阶段的任务

用户与部门管理

  • list_users -列出所有用户(仅限管理员)
  • get_user -获取用户详细信息
  • get_users_for_assignment -获取可分配的用户
  • get_my_team -获取团队成员
  • get_department_members -获取部门成员
  • list_departments -列出部门
  • get_department -获取部门详细信息
  • get_department_stats -获取部门统计数据

通知

  • get_notifications -获取用户通知
  • get_unread_notification_count -获取未读计数
  • mark_notification_read -将通知标记为已读
  • mark_all_notifications_read -将所有内容标记为已读

工作流模板

  • list_workflow_templates -列出可用模板
  • get_workflow_template -获取模板详细信息
  • apply_workflow_template -将模板应用于资产

传统内部API

  • list_investor_records -列出内部投资者记录
  • get_investor_record -获取内部投资者记录详细信息

建筑

┌─────────────┐         ┌──────────────┐         ┌─────────────┐
│  ChatGPT/   │  SSE    │  MCP Server  │  HTTP   │   MWID      │
│   Claude    │◄────────┤  (Railway)   │────────►│  Backend    │
└─────────────┘         └──────────────┘         └─────────────┘
                         /sse endpoint             REST API
                         /messages endpoint        (8080)

故障排除

连接超时

问题:ChatGPT连接到服务器超时

解决方案:

  • 确保铁路部署正在运行(检查铁路仪表板)
  • 验证环境变量是否设置正确
  • 检查铁路日志是否有错误: railway logs

403禁止

问题:收到403个错误

解决方案:

  • 检查 MWID_JWT_TOKEN 有效且未过期
  • 验证后端API是否可以从铁路访问
  • 确保后端CORS设置允许铁路域

空响应

问题:工具返回空数据

解决方案:

  • 验证 MWID_API_URL 指向正确的后端
  • 检查JWT令牌是否具有必要的权限
  • 使用curl/Postman直接测试后端API

发展

运行测试

python test_server.py

调试日志记录

启用调试日志记录:

export MWID_DEBUG=true
python serve.py

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件

支持

对于问题或疑问:

  • GitHub问题:https://github.com/MetaWealth/mwid-mcp-server/issues
  • 文档:https://your-docs-site.com
  • 电子邮件:support@metawealth.co