LODA MCP 服务器是 LODA 语言 API 的模型上下文协议(MCP)服务器,它提供了对 LODA 语言和来自在线整数序列百科全书®(OEIS®)的整数序列的无缝访问。
npm install
npm run build
npm run test-connection # 测试 API 连接
npm start # 启动服务器
# 自动重建开发
npm run dev
# 类型检查
npm run type-check
# 清理构建
npm run clean && npm run build
| 工具 | 描述 | 主要用例 |
|---|---|---|
get_program |
按 ID 获取 LODA 程序的详细信息 | 分析程序实现 |
search_programs |
搜索 LODA 程序 | 按关键字或 ID 查找程序 |
eval_program |
评估 LODA 程序 | 测试和验证程序的正确性 |
submit_program |
提交新的 LODA 程序 | 贡献新的实现 |
get_sequence |
按 ID 获取整数序列的详细信息 | 研究数学序列 |
search_sequences |
搜索整数序列 | 按关键字或 ID 查找序列 |
get_stats |
查看 LODA 项目的汇总统计信息 | 了解项目范围和增长情况 |
get_keywords |
列出所有关键字及其描述 | 探索可用的关键字 |
get_submitters |
列出所有提交者及其提交的程序数量 | 查看主要贡献者 |
"Show me details about OEIS sequence 45"
→ 获取斐波那契数列(A000045)的完整元数据
"What is OEIS sequence 1?"
→ 获取 A000001(阶为 n 的群)的项和描述
"Find all LODA programs for sequence 45"
→ 显示所有计算斐波那契数的程序,并按长度排序
"Get LODA program 12345"
→ 检索具有代码和元数据的特定程序
"Run this LODA program and compute 10 terms:
mov $0,1
lpb $1
add $0,$1
sub $1,1
lpe"
→ 执行程序并显示计算出的序列值
"Start mining programs for OEIS sequence 142857 with max length 50"
→ 开始挖掘操作并返回操作 ID
"Check status of mining operation 987"
→ 显示当前状态和任何已发现的程序
"What are the current LODA project statistics?"
→ 显示序列、程序和贡献者的数量
所有工具都使用严格的 JSON 架构进行适当的验证。示例架构如下:
get_sequence{
"id": "A000045"
}
search_sequences{
"q": "Fibonacci",
"limit": 5
}
get_program{
"id": "A000045"
}
search_programs{
"q": "Fibonacci",
"limit": 5
}
eval_program{
"code": "mov $1,10\npow $1,$0\nmov $0,$1\ndiv $0,9",
"t": 10
}
submit_program{
"id": "A000045",
"code": "mov $2,1\nlpb $0\n sub $0,2\n add $2,$1\n add $1,$2\nlpe\nmul $0,$2\nadd $0,$1"
}
get_stats{}
get_keywords{}
get_submitters{}
所有响应包括:
LODAMCPServer
├── LODAApiClient # LODA API 的 HTTP 客户端
├── Tool Handlers # 各个工具的实现
├── Validation Layer # 输入验证和清理
└── Error Management # 全面的错误处理
| 问题 | 解决方案 |
|---|---|
| 服务器无法启动 | 检查 Node.js 版本(18+),验证构建是否完成 |
| API 连接失败 | 使用 npm run test-connection 进行测试,检查防火墙 |
| 未找到工具 | 验证工具名称的拼写,检查 MCP 客户端连接 |
| 参数无效 | 检查参数类型是否与架构完全匹配 |
| 挖掘超时 | 使用更短的最大运行时间,检查序列是否存在 |
# 启用详细日志记录
DEBUG=* npm start
# 测试特定工具
echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_stats_summary","arguments":{}},"id":1}' | npm start
# 测试 API 连接
npm run test-connection
# 验证工具列表
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | npm start
git checkout -b feature/amazing-featurenpm run type-check基于官方 OpenAPI v2 规范:
| 端点 | 方法 | 描述 |
|---|---|---|
/sequences/{id} |
GET | 获取整数序列的详细信息 |
/sequences/search |
GET | 搜索整数序列 |
/programs/{id} |
GET | 获取 LODA 程序的详细信息 |
/programs/search |
GET | 搜索 LODA 程序 |
/programs/eval |
POST | 评估 LODA 程序 |
/programs/{id}/submit |
POST | 提交新的 LODA 程序 |
/stats/summary |
GET | 获取统计摘要 |
/stats/submitters |
GET | 列出所有提交者 |
本项目采用 Apache 2.0 许可证。
为数学发现和算法研究用心打造 ❤️