使用说明
Modgov MCP服务器
一个全面的模型上下文协议(MCP)服务器,提供对modgov议会API的访问,用于检索英国地方议会的议员信息、委员会详细信息、会议日程、选举结果和教区议会数据。
目录
- 快速开始
- 特性
- 关键服务器错误解决方法
- 测试
- 文档
- 安装
- MCP传输选项
- 用法
- 可用工具
- 工具使用示例
- 响应格式
- 速率限制
- 错误处理
- 发展
- Docker配置
- 建筑
- 支持的议会网站
- API发现
- 例子
- 最佳实践
- 错误处理示例
- 贡献
- 许可证
快速开始
先决条件
- Node.js (18+版本)
- Docker&Docker编写 (用于生产部署)
构建与运行
-
克隆和构建:
git clone <repository-url> cd modgov-mcp-server npm install npm run build -
使用STDIO传输运行:
node dist/index.js -
使用HTTP传输运行:
MCP_TRANSPORT=http node dist/index.js # Server available at: http://localhost:3003/mcp -
MCP检验员测试:
npx @modelcontextprotocol/inspector node dist/index.js
Docker部署
对于生产部署,请使用Docker:
# Build and run
make build && make up
# Server available at: http://localhost:3003/mcp
# Health check: http://localhost:3003/health
特性
- 100%成功率:9/9端点功能齐全,具有自动服务器错误解决方法
- API全面覆盖:所有主要的ModGov端点(议员、委员会、会议、选举等)
- 多站点支持:在3个英国议会网站(利奇菲尔德、柯克利斯、利物浦)进行了测试
- 服务器错误处理:WSDL与实际服务器差异的自动解决方法
- 灵活查询:访问议会数据的多种方式(按选区、委员会、日期等)
- 速率限制:内置速率限制(每个域每秒1个请求)以防止API滥用
- 错误处理:强大的错误处理,带有有意义的错误消息
- 理事会查询:智能模糊匹配,按名称或地区查找议会
🚨 关键服务器错误解决方法
存在重大差异 在官方WSDL文档和实际的ModGov服务器实现之间。此MCP服务器自动处理以下问题:
参数要求不匹配
WSDL中标记为“可选”的许多参数是 实际需要 按服务器:
| 端点 | WSDL显示可选 | 实际必需 |
|---|---|---|
GetMeetings |
sFromDate, sToDate |
✅ 必需 |
GetAllMeetingsByDate |
lCommitteeId, bIsAscendingDateOrder |
✅ 必需 |
GetCalendarEvents |
bGlobalCalendar, lUserId |
✅ 必需 |
GetWebCastMeetings |
lCommitteeId, sFromDate, sToDate |
✅ 必需 |
GetElectionResults |
lElectionId |
✅ 必需 |
GetMpOrMepsAndWards |
bIsMPs |
✅ 必需 |
应用了自动解决方案
MCP服务器透明地应用这些修复程序:
- 缺少日期:默认为当前年份范围(
YYYY-01-01到YYYY-12-31) - 缺少委员会ID:默认内阁(138)
- 缺少布尔标志:提供合理的默认值(
true用于全球日历等) - 缺少用户ID:公共访问默认为0
测试结果
| 理事会 | 工作终点 | 成功率 |
|---|---|---|
| 利奇菲尔德DC | 9/9 | 100% |
| 科克里斯 | 9/9 | 100% |
| 利物浦 | 9/9 | 100% |
所有测试的站点都显示相同的服务器错误,并且都会自动处理。
🧪 测试
测试结构
tests/
├── integration/ # End-to-end integration tests
├── debugging/ # Debug and investigation scripts
├── utils/ # Utility test scripts
└── README.md # Test documentation
运行测试
单元测试(在Docker中)
# Run Jest unit tests in Docker container
make test
# Or use Docker Compose directly
docker-compose run --rm modgov-mcp-server npm test
集成测试(在Docker中)
# Test all 9 endpoints end-to-end in Docker
docker-compose run --rm modgov-mcp-server npm run test:integration
调试测试(在Docker中)
# Investigate endpoint compatibility across sites
docker-compose run --rm modgov-mcp-server npm run test:debug
# Verify parameter handling
docker-compose run --rm modgov-mcp-server npm run test:params
测试结果
- ✅ 100%成功率:9/9个端点正常工作
- ✅ 服务器错误解决方法:自动处理所有WSDL差异
- ✅ 跨站点兼容性:在3个议会网站上进行了测试
📚 文档
OpenAPI/Swagger规范
- 文件:
modgov-openapi-spec.yaml - 状态: ✅ 完整且权威
- 覆盖:所有9个受支持的端点都有真实世界的示例
- 特性:
- 明确记录服务器错误解决方法
- 请求/响应示例
- 参数验证规则
- 跨站点兼容性说明
开发人员资源
- 稳健性报告:
MCP_ROBUSTNESS_REPORT.md-测试和性能细节 - 测试文档:
tests/README.md-完整的测试套件指南 - 实现说明:服务器错误解决方法和最佳实践(见上文部分)
安装
原生Node.js(推荐用于开发)
# Clone and install
git clone <repository-url>
cd modgov-mcp-server
npm install
npm run build
# Run with STDIO transport (default)
node dist/index.js
# Run with HTTP transport
MCP_TRANSPORT=http node dist/index.js
Docker(推荐用于生产环境)
# Using Makefile (recommended)
make build && make up
# Or using Docker Compose directly
docker-compose up --build
可用的生成命令:
make build-塑造生产形象make up-开始生产容器make test-在容器中运行测试make logs-查看容器日志make clean-删除容器和图像make shell-打开容器中的shell进行调试
MCP传输选项
Modgov MCP服务器支持STDIO和HTTP传输:
STDIO传输(默认)
非常适合开发和MCP客户端集成:
# Start with STDIO transport
node dist/index.js
# Test with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js
STDIO传输特性:
- 默认传输模式
- 交互式stdin/stdout通信
- 非常适合MCP客户端(Claude Desktop、Cursor等)
- 客户端断开连接后终止
HTTP传输(流式传输)
非常适合web服务和API集成:
# Start with HTTP transport
MCP_TRANSPORT=http node dist/index.js
# Or with custom port
MCP_TRANSPORT=http MCP_PORT=3005 node dist/index.js
HTTP传输端点:
- MCP协议:
http://localhost:3003/mcp - 健康检查:
http://localhost:3003/health
HTTP传输特性:
- 作为持久web服务器运行
- 基于HTTP的RESTful MCP协议
- 支持流式响应
- 内置健康监测
MCP检查员
使用官方MCP检查器测试您的服务器:
# For STDIO transport (default)
npx @modelcontextprotocol/inspector node dist/index.js
# For HTTP transport
npx @modelcontextprotocol/inspector http://localhost:3003/mcp
检查员提供:
- ✅ 交互式工具测试
- ✅ 协议验证
- ✅ 请求/响应调试
- ✅ 模式验证
用法
Docker(生产)
使用HTTP传输进行生产
# Build and run production container
make build && make up
# Or using Docker Compose directly
docker-compose up --build modgov-mcp-server
当容器启动时,服务器在端口3003上以HTTP模式自动启动。
HTTP API终结点
MCP服务器在Docker中运行,并在端口3003上公开这些端点:
MCP协议端点
POST http://localhost:3003/mcp
Content-Type: application/json
# Example request
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_councillors",
"arguments": {
"site_url": "https://democracy.lichfielddc.gov.uk/mgWebService.asmx?WSDL"
}
}
}
健康检查端点
GET http://localhost:3003/health
# Response
{
"status": "healthy",
"timestamp": "2025-01-11T10:20:30.000Z",
"server": "modgov-mcp-server",
"version": "1.0.0",
"transport": "streamable-http"
}
Docker日志
MCP服务器包括在Docker中运行时所有工具调用的全面日志记录:
# View real-time logs
docker logs modgov-mcp-server --follow
# View recent logs
docker logs modgov-mcp-server --tail 20
日志输出示例:
🛠️ Tool called: get_councillors_by_ward
📍 Parameters: site_url=https://democracy.lichfielddc.gov.uk/mgWebService.asmx
✅ Tool completed: get_councillors_by_ward (1280ms)
🛠️ Tool called: get_committees
📍 Parameters: site_url=https://democracy.lichfielddc.gov.uk/mgWebService.asmx
✅ Tool completed: get_committees (320ms)
每个工具调用日志:
- 🔧 工具启动 带有表情符号和工具名称
- 📍 参数 传递给工具
- ✅ 完成 执行时间(毫秒)
MCP服务器运行在 http://localhost:3003/mcp 并支持用于测试所有注册工具的完整MCP协议。
港口冲突解决方案: 如果遇到端口冲突:
# Stop all containers
make down
# Or manually kill processes on ports 3003, 6274, 6277
lsof -ti:3003,6274,6277 | xargs kill -9 2>/dev/null || true
停止服务器:
# Stop the Docker container
make down
# Or use Docker Compose directly
docker-compose down
故障排除:
- 检查容器日志:
make logs - 验证容器是否正在运行:
docker ps - 测试健康终点:
curl http://localhost:3003/health
可用工具
MCP服务器公开 18工具 查询modgov议会API并查找议会:
✅ 议员信息(无需解决方案)
get_councillors_by_ward-按选区组织所有议员,并附上照片和政治派别get_councillors_by_ward_id-获取议员的特定选区IDget_councillors_by_postcode-获取特定邮政编码的议员get_councillor_details-获取全面的议员资料,包括手术时间和联系方式
✅ 治理和委员会(应用自动解决方案)
get_committees-召集所有委员会(内阁、议会、规划等)get_meetings-获取具有自动日期范围默认值的会议⚙️get_meeting-按ID获取特定会议的详细信息get_all_meetings_by_date-获取具有委员会默认值的特定日期的会议⚙️
✅ 事件和日历(应用自动解决方案)
get_calendar_events-通过自动参数处理获取日历事件⚙️
✅ 地方政府结构(无需解决方案)
get_parish_councils-获取教区议会及其信息
✅ 选举与民主(应用自动解决方案)
get_election_results-使用所需的选举ID获取选举结果⚙️
✅ 数字服务(应用自动解决方案)
get_webcast_meetings-获取带有日期和委员会默认值的网络直播会议⚙️get_mp_or_meps_and_wards-通过布尔标志处理获取MP/MEP信息⚙️get_mp_or_mep_and_wards_by_postcode-获取特定邮政编码的MP/MEP信息⚙️
✅ 理事会发现与管理
find_council-使用模糊匹配按名称查找议会search_councils-搜索具有信任阈值的议会get_council_by_region-获取特定地区的所有议会get_server_diagnostics-获取服务器诊断信息
⚙️ 应用了自动服务器错误解决方法 | ✅ 所有工具均已测试并正常工作
工具使用示例
所有工具都需要 site_url 指向理事会modgov API端点的参数。
议员信息
按选区获取所有议员:
{
"site_url": "https://democracy.lichfielddc.gov.uk/mgWebService.asmx?WSDL"
}
为特定选区寻找议员:
{
"site_url": "https://democracy.lichfielddc.gov.uk/mgWebService.asmx?WSDL",
"ward_id": 1
}
通过邮政编码获取议员信息:
{
"site_url": "https://democracy.lichfielddc.gov.uk/mgWebService.asmx?WSDL",
"postcode": "WS14 9AB"
}
治理与委员会
召集所有委员会:
{
"site_url": "https://democracy.lichfielddc.gov.uk/mgWebService.asmx?WSDL"
}
为特定委员会安排会议:
{
"site_url": "https://democracy.lichfielddc.gov.uk/mgWebService.asmx?WSDL",
"committee_id": 1
}
按ID获取特定会议:
{
"site_url": "https://democracy.lichfielddc.gov.uk/mgWebService.asmx?WSDL",
"meeting_id": 123
}
地方政府结构
联系教区议会:
{
"site_url": "https://democracy.lichfielddc.gov.uk/mgWebService.asmx?WSDL"
}
## Response Format
The tool returns JSON data with the following structure:
```json
{
"site_url": "https://democracy.lichfielddc.gov.uk/mgWebService.asmx?WSDL",
"total_wards": 25,
"total_councillors": 47,
"wards": [
{
"ward_name": "Alrewas and Fradley",
"councillor_count": "3",
"councillors": [
{
"id": "570",
"name": "Councillor Sonia Claverley",
"party": "The Conservative Party",
"group": "Conservative Group",
"district": "Lichfield District Council",
"representing": "Lichfield District Council",
"photos": {
"small": "https://democracy.lichfielddc.gov.uk/UserData/0/7/5/Info00000570/smallpic.jpg",
"large": "https://democracy.lichfielddc.gov.uk/UserData/0/7/5/Info00000570/bigpic.jpg"
},
"additional_info": "...",
"key_posts": "..."
}
]
}
]
}
速率限制
服务器实现每个域每秒1个请求的速率限制,以防止滥用并遵守API限制。
错误处理
服务器提供全面的错误处理:
- 网络错误:连接超时、DNS解析失败
- API错误:响应无效,XML格式错误
- 速率限制:使用指数回退自动重试
- 验证错误:参数无效,缺少必填字段
发展
开发环境
所有开发都在Docker容器中进行:
# Start development environment with live code mounting
make dev
# This mounts your source code and provides hot reloading
运行测试
单元测试(在Docker中)
# Run Jest unit tests in development container
make test
# Or run tests in watch mode for development
docker-compose --profile dev exec modgov-mcp-dev npm run test:watch
集成测试(在Docker中)
使用真实的API调用测试完整的MCP服务器功能:
# Start development environment (Terminal 1)
make dev
# Run integration tests (Terminal 2)
docker-compose --profile dev exec modgov-mcp-dev npm run test:mcp
集成测试包括:
- 健康终点验证
- MCP协议合规性
- 工具发现和执行
- 理事会数据检索和验证
看 TEST_README.md 获取详细的测试文档。
建筑
构建过程在Docker容器中自动发生:
# Manual build in container
docker-compose --profile dev exec modgov-mcp-dev npm run build
停止开发环境
# Stop development containers
make down
这将停止所有开发容器并清理资源。
Docker配置
生产容器
生产容器针对部署进行了优化:
docker build -t modgov-mcp-server .
docker run -p 3003:3003 modgov-mcp-server
特征:
- 多阶段构建,实现最小图像尺寸
- 非root用户安全
- 健康检查
- 仅生产依赖性
- 始终使用HTTP传输在端口3003上运行
测试Docker设置
验证你的Docker容器是否正常工作:
# Build and test
make build
make up
# Check health endpoint
curl http://localhost:3003/health
预期的健康反应:
{
"status": "healthy",
"timestamp": "2025-01-11T10:20:30.000Z",
"server": "modgov-mcp-server",
"version": "1.0.0",
"transport": "streamable-http"
}
MCP服务器行为
重要提示: MCP服务器在Docker容器内以HTTP模式连续运行。这与stdio模式不同,在stdio模式下,服务器在每次请求后都会退出。
- 服务器保持运行并侦听端口3003
- 每个MCP请求都通过HTTP处理
- 容器将显示为
running(未退出) - 使用
make logs监视服务器输出
建筑
服务器由三个主要组件组成:
- ModgovClient:处理对modgov API的HTTP请求、XML解析和速率限制
- 摩登派青年:MCP服务器实现,包括工具注册和请求处理
- 类型定义:API响应和数据结构的TypeScript接口
支持的议会网站
服务器使用 任何支持modgov的议会网站。我们的数据库包括 44个经过验证的委员会 在英国所有地区。
完整的理事会数据库
| 议会 | 地区 | 类型 | URL |
|---|---|---|---|
| 巴斯和东北萨默塞特议会 | 西南部 | 统一管理局 | https://democracy.bathnes.gov.uk/ |
| 布伦特伍德自治市议会 | 英格兰东部 | 自治市议会 | https://brentwood.moderngov.co.uk/ |
| 布莱顿霍夫市议会 | 东南部 | 市议会 | https://democracy.brighton-hove.gov.uk/ |
| 布里斯托尔市议会 | 西南部 | 市议会 | https://democracy.bristol.gov.uk/ |
| 白金汉郡议会 | 英格兰东部 | 统一权威 | https://buckinghamshire.moderngov.co.uk/ |
| 剑桥市议会 | 英格兰东部 | 市议会 | https://democracy.cambridge.gov.uk/ |
| 卡迪夫议会 | 威尔士 | 统一管理局 | https://cardiff.moderngov.co.uk/ |
| 奇切斯特区议会 | 东南 | 区议会 | https://chichester.moderngov.co.uk/ |
| 林肯市议会 | 东米德兰兹 | 市议会 | https://lincoln.moderngov.co.uk/ |
| 伍尔弗汉普顿市议会 | 西米德兰兹郡 | 大都会区 | https://wolverhampton.moderngov.co.uk/ |
| 约克市议会 | 约克郡和亨伯市议会https://democracy.york.gov.uk/ | ||
| 考文垂市议会 | 西米德兰兹郡 | 市议会 | https://edemocracy.coventry.gov.uk/ |
| 东汉普郡区议会 | 东南 | 区议会 | https://easthants.moderngov.co.uk/ |
| 大伦敦管理局(GLA) | 伦敦 | 联合管理局 | https://gla.moderngov.co.uk/ |
| 黑斯廷斯自治市议会 | 东南 | 自治市议会 | https://hastings.moderngov.co.uk/ |
| 利兹市议会 | 约克郡和亨伯市议会https://democracy.leeds.gov.uk/ | ||
| 莱斯特郡议会 | 东米德兰兹郡议会https://democracy.leics.gov.uk/ | ||
| 利奇菲尔德区议会 | 西米德兰兹郡 | 区议会 | https://lichfield.moderngov.co.uk/ |
| 利物浦市议会 | 西北部 | 市议会 | https://councillors.liverpool.gov.uk/ |
| 巴纳区 | 伦敦 | 伦敦自治市 | https://barnet.moderngov.co.uk/ |
| 英国伦敦布伦特区 | 伦敦 | 伦敦自治市 | https://democracy.brent.gov.uk/ |
| 自治市 | 伦敦 | 伦敦自治市 | https://camden.moderngov.co.uk/ |
| 伦敦克罗伊登区 | 伦敦 | 伦敦自治市 | https://croydon.moderngov.co.uk/ |
| 伦敦哈林盖区 | 伦敦 | 伦敦自治市 | https://www.minutes.haringey.gov.uk/ |
| 伦敦哈罗区 | 伦敦 | 伦敦自治市 | https://moderngov.harrow.gov.uk/ |
| 伦敦哈弗林区 | 伦敦 | 伦敦自治市 | https://democracy.havering.gov.uk/ |
| 伦敦Hounslow区 | 伦敦 | 伦敦自治市 | https://democraticservices.hounslow.gov.uk/ |
| 伊斯林顿伦敦自治市 | 伦敦 | 伦敦自治市 | https://islington.moderngov.co.uk/ |
| 伦敦南华克区 | 伦敦 | 伦敦自治市 | https://moderngov.southwark.gov.uk/ |
| 伦敦萨顿区 | 伦敦 | 伦敦自治市 | https://moderngov.sutton.gov.uk/ |
| 陶尔哈姆莱茨区 | 伦敦 | 伦敦自治市 | https://democracy.towerhamlets.gov.uk/ |
| 梅德韦委员会 | 东南部 | 统一管理局 | https://democracy.medway.gov.uk/ |
| 纽卡斯尔市议会 | 东北 | 市议会 | https://democracy.newcastle.gov.uk/ |
| 朴茨茅斯市议会 | 东南部 | 市议会 | https://democracy.portsmouth.gov.uk/ |
| 泰晤士河畔金斯顿皇家自治市 | 伦敦 | 皇家自治市 | https://kingston.moderngov.co.uk/ |
| 谢菲尔德市议会 | 约克郡和亨伯市议会https://democracy.sheffield.gov.uk/ | ||
| 南剑桥郡区议会 | 英格兰东部 | 区议会 | https://scambs.moderngov.co.uk/ |
| 三江区议会 | 英格兰东部 | 区议会 | https://moderngov.threerivers.gov.uk/ |
| 白马谷区议会 | 东南 | 区议会 | https://democratic.whitehorsedc.gov.uk/ |
| 沃里克郡议会 | 西米德兰兹郡议会https://warwickshire.moderngov.co.uk/ | ||
| 沃特福德区议会 | 英格兰东部 | 自治市议会 | https://watford.moderngov.co.uk/ |
| 英格兰西部联合管理局 | 西南部 | 联合管理局 | https://westofengland-ca.moderngov.co.uk/ |
| 威勒尔委员会 | 西北 | 大都会区 | https://wirral.moderngov.co.uk/ |
| 伍斯特郡议会 | 西米德兰兹郡议会https://worcestershire.moderngov.co.uk/ |
覆盖率统计
- 理事会总数: 44
- 覆盖区域:11(英国所有地区)
- 议会类型:10种不同的权限类型
- 测试站点:3(利奇菲尔德、柯克利斯、利物浦-100%成功率)
已验证的工作示例
| 理事会 | URL | 委员会ID | 备注 |
|---|---|---|---|
| 利奇菲尔德区议会 | https://democracy.lichfielddc.gov.uk/mgWebService.asmx?WSDL |
内阁:138,议会:136,规划:135 | 主要试验场 |
| 柯克利斯议会 | http://democracy.kirklees.gov.uk/mgWebService.asmx?WSDL |
相同模式 | 相同行为 |
| 利物浦市议会 | https://democracy.liverpool.gov.uk/mgWebService.asmx?WSDL |
相同模式 | 相同行为 |
| 伦敦萨顿区 | https://moderngov.sutton.gov.uk/mgWebService.asmx |
完整的端点文档 | 全面的API测试 |
特别功能
- 伦敦萨顿区:包括详细的端点文档,包括参数规范、响应格式和工作示例
- 议会发现:内置模糊匹配功能,可按名称查找议会(
find_council) - 区域搜索:查找特定地区的所有议会(
get_council_by_region) - 信心评分:使用可配置的置信阈值进行搜索(
search_councils)
议会发现
使用内置的议会查找工具:
# Find a specific council
curl -X POST http://localhost:3003/mcp \
-H "Content-Type: application/json" \
-d '{"method": "tools/call", "params": {"name": "find_council", "arguments": {"council_name": "Leeds"}}}'
# Search councils by region
curl -X POST http://localhost:3003/mcp \
-H "Content-Type: application/json" \
-d '{"method": "tools/call", "params": {"name": "get_council_by_region", "arguments": {"region": "West Midlands"}}}'
API发现
要发现特定议会网站的可用操作,您可以检查WSDL:
curl "https://democracy.lichfielddc.gov.uk/mgWebService.asmx?WSDL" | grep -i "council"
例子
看 examples/ 完整配置示例的目录:
- 光标:
examples/cursor-mcp.json - 克劳德桌面版:
examples/claude-desktop-config.json - VS Code:
examples/vscode-mcp.json - Docker生产:
examples/docker-compose.production.yml - Nginx配置:
examples/nginx.conf - 测试客户端:
examples/test-mcp-client.js - 邮差收藏:
examples/postman-collection.json - 环境配置:
examples/env-example.txt
快速测试
使用提供的脚本测试您的设置:
./examples/test-setup.sh
配置说明
MCP服务器支持原生Node.js执行和Docker部署。选择与部署方法匹配的配置。
MCP客户端配置
选择与您的传输偏好相匹配的配置:
✅ HTTP传输(建议用于生产环境):
{
"mcpServers": {
"modgov-council": {
"url": "http://localhost:3003/mcp",
"headers": {
"Content-Type": "application/json",
"Accept": "application/json, text/event-stream"
}
}
}
}
✅ STDIO运输(建议开发):
{
"mcpServers": {
"modgov-council": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/path/to/modgov-mcp-server"
}
}
}
服务器要求:
对于HTTP传输:
- 启动服务器:
MCP_TRANSPORT=http node dist/index.js - 或者使用Docker:
make build && make up - 服务器位于:
http://localhost:3003/mcp - 健康检查:
curl http://localhost:3003/health
对于STDIO传输:
- 构建项目:
npm run build - 客户端将生成:
node dist/index.js - 不需要持久服务器
🎯 最佳实践
- 始终使用MCP服务器 -它自动处理所有服务器错误
- 不要只依赖WSDL -测试实际服务器行为
- 优雅地处理500个错误 -可能表示服务器错误,而不是客户端错误
- 使用合理的默认值 -MCP自动提供
- 跨多个站点进行测试 -行为是一致的,但要验证
- 使用议会发现工具 -轻松按名称或地区查找议会
🔧 错误处理示例
// The MCP server handles these automatically, but for direct API usage:
try {
const result = await modgovClient.getMeetings(siteUrl, 138);
} catch (error) {
if (error.message.includes('Missing parameter')) {
// This indicates a server bug, not client error
console.log('Server implementation bug detected - use MCP server instead');
}
}
贡献
- 遵循TDD原则——先编写测试
- 在提交之前,确保所有测试都通过
- 添加具有全面测试覆盖率的新功能
- 针对任何API更改更新文档
许可证
麻省理工学院