Kleros Court Mcp

Kleros Court Mcp

🚀 Kleros MCP 服务器

Kleros MCP 服务器是一个模型上下文协议(MCP)服务器,可从多个区块链网络中检索全面的 Kleros 法庭争议数据,包括元证据和证据提交信息。

✨ 主要特性

  • 🔗 多链支持:支持以太坊主网和 Gnosis 链。
  • 📊 全面的数据:提供元证据、证据提交信息和 IPFS 内容。
  • 🌐 支持远程托管:具备可流式传输的 HTTP 传输和会话管理功能。
  • 🔒 安全可靠:具备 DNS 重绑定保护和适当的 CORS 配置。
  • 快速高效:可并行检索 IPFS 内容,并能处理错误。
  • 📱 与 Claude 桌面版兼容:可直接集成 URL。

📦 支持的网络

  • 以太坊主网(链 ID:1)
  • Gnosis 链(链 ID:100)

📦 数据源

  • 元证据 API:提供 Kleros 争议元数据。
  • 以太坊子图:提供以太坊上的证据提交信息。
  • Gnosis 子图:提供 Gnosis 链上的证据提交信息。
  • IPFS 网关:通过 Kleros CDN 获取证据内容。

📚 Claude 桌面版集成

简易设置(推荐)

  1. 打开 Claude 桌面版设置
    • 点击侧边栏中的“设置”。
  2. 进入连接器设置
    • 导航至“设置”→“连接器”。
  3. 添加自定义连接器
    • 点击“添加自定义连接器”。
    • 输入名称:Kleros Court
    • 粘贴 URL:https://kleros-mcp-server-new.fly.dev/mcp
    • 点击“添加”。

  1. 开始使用
    • Kleros Court 工具现在将在 Claude 桌面版中可用。
    • 尝试输入:“Get dispute data for dispute ID 481 on Gnosis Chain”。

替代配置文件方法

claude_desktop_config.json 中添加以下内容:

{
"mcpServers": {
"kleros": {
"url": "https://kleros-mcp-server-new.fly.dev/mcp"
}
}
}

💻 使用示例

基础用法

get_dispute_data

此方法用于从 Kleros 检索全面的争议数据,包括元证据和证据提交信息。

参数

  • disputeId(字符串):要检索数据的争议 ID。
  • chainId(数字):链 ID(以太坊为 1,Gnosis 链为 100)。

示例用法

  • “Get dispute data for dispute ID 123 on Ethereum”
  • “Show me details for dispute 481 on Gnosis Chain”
  • “Retrieve evidence for dispute 50 on chain 100”

示例响应

# Kleros 争议数据

**争议 ID**:481
**链**:Gnosis 链 (100)

## 元证据
**标题**:Web3 安全审计员注册表
**描述**:一个经过筛选的已验证安全审计员注册表...

## 证据提交 (3)

### 证据 1
**标题**:挑战理由
**描述**:Pokémon 不是 Web3 审计员,拒绝该提交。
**类型**:text/plain

🚀 快速开始

前提条件

  • Node.js 18.x 或更高版本
  • npm 或 yarn

本地开发

  1. 克隆项目并安装依赖
git clone 
cd kleros-mcp-server
npm install
  1. 构建项目
npm run build
  1. 启动服务器
npm start
  1. 健康检查
curl http://localhost:8080/health

开发模式

若要在开发过程中实现自动重启,可使用以下命令:

npm run dev

🚀 部署

Fly.io 部署

  1. 安装 Fly CLI
curl -L https://fly.io/install.sh | sh
  1. 登录 Fly
fly auth login
  1. 创建应用(如有需要,可在 fly.toml 中更新应用名称):
fly apps create kleros-mcp-server-new
  1. 构建并部署
npm run build
fly deploy
  1. 检查部署情况
fly status
fly logs

你的 MCP 服务器将可通过以下 URL 访问:https://kleros-mcp-server-new.fly.dev/mcp

环境变量

设置所需的环境变量:

fly secrets set ALLOWED_HOSTS=your-domain.com

📚 详细文档

API 端点

健康检查

GET /health

返回服务器状态和时间戳。

MCP 协议

POST /mcp
GET /mcp(用于 SSE 通知)
DELETE /mcp(用于会话终止)

主要的 MCP 协议端点,具备会话管理功能。

架构

kleros-mcp-server/
├── src/
│   ├── index.ts              # 具备可流式传输 HTTP 传输的 Express 服务器
│   ├── server.ts             # MCP 服务器设置和工具注册
│   ├── services/
│   │   ├── disputeService.ts # 主要的争议数据协调
│   │   ├── metaEvidenceService.ts # 元证据 API 集成
│   │   ├── subgraphService.ts     # 子图查询
│   │   └── ipfsService.ts         # IPFS 内容检索
│   ├── types/
│   │   └── index.ts          # TypeScript 类型定义
│   └── utils/
│       └── constants.ts      # API 端点和配置
├── Dockerfile                # 容器配置
├── fly.toml                  # Fly.io 部署配置
└── package.json

错误处理

服务器具备全面的错误处理功能:

  • 网络超时:外部 API 设置 10 - 15 秒的超时时间。
  • IPFS 故障:可优雅处理无法访问的内容。
  • 子图错误:查询失败时提供详细的错误报告。
  • 输入验证:对争议 ID 和链 ID 进行适当的验证。

开发

添加新链

  1. src/types/index.ts 中的 SUPPORTED_CHAIN_IDS 中添加链 ID。
  2. src/utils/constants.ts 中的 API_ENDPOINTS.SUBGRAPHS 中添加子图 URL。
  3. src/utils/constants.ts 中的 NETWORK_NAMES 中添加网络名称。

测试

测试争议数据检索:

curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_dispute_data",
"arguments": {
"disputeId": "123",
"chainId": 1
}
},
"id": 1
}'

MCP 检查器合规性

此服务器通过了所有 MCP 检查器的检查:

  • ✅ 正确的协议实现
  • ✅ 正确的消息格式
  • ✅ 标准的错误代码
  • ✅ 会话管理
  • ✅ 资源清理

安全

  • 启用 DNS 重绑定保护。
  • 配置适当的 CORS。
  • 使用非根容器用户。
  • 进行输入验证和清理。
  • 优雅处理错误,避免信息泄露。

故障排除

常见问题

  1. 404 子图错误:检查子图 URL 是否为最新版本。
  2. IPFS 超时:证据内容可能暂时不可用。
  3. 无效的争议 ID:确保争议在指定链上存在。

获取帮助

  • 在仓库中创建问题。
  • 查看日志:fly logs(针对已部署版本)。
  • 验证健康状态:curl https://kleros-mcp-server-new.fly.dev/health

📄 许可证

本项目采用 MIT 许可证。

🤝 贡献

  1. 分叉仓库。
  2. 创建功能分支。
  3. 提交更改。
  4. 推送到分支。
  5. 创建拉取请求。

🛠️ 支持

如有问题或疑问:

  • 在仓库中创建问题。
  • 查看日志:fly logs(针对已部署版本)。
  • 验证健康状态:curl https://kleros-mcp-server-new.fly.dev/health
  • 0 关注
  • 0 收藏,28 浏览
  • system 提出于 2025-10-03 23:24

相似服务问题

相关AI产品