Loda Mcp

Loda Mcp

🚀 LODA MCP 服务器

LODA MCP 服务器是 LODA 语言 API 的模型上下文协议(MCP)服务器,它提供了对 LODA 语言和来自在线整数序列百科全书®(OEIS®)的整数序列的无缝访问。

🚀 快速开始

前提条件

  • Node.js 版本需 18.0.0 或更高
  • npm 版本需 8.0.0 或更高

安装

  1. 安装依赖项
npm install
  1. 构建服务器
npm run build
  1. 测试安装
npm run test-connection  # 测试 API 连接
npm start                # 启动服务器

开发工作流

# 自动重建开发
npm run dev

# 类型检查
npm run type-check

# 清理构建
npm run clean && npm run build

✨ 主要特性

核心功能

  • OEIS 风格的序列集成:以 A 编号格式访问任何序列
  • 程序发现:查找和搜索用于序列的 LODA 程序
  • 实时执行:运行 LODA 程序并立即查看结果
  • 强大的错误处理:全面的验证和错误消息

可用工具

工具 描述 主要用例
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 列出所有提交者及其提交的程序数量 查看主要贡献者

💻 使用示例

🔢 探索 OEIS 序列

"Show me details about OEIS sequence 45"
→ 获取斐波那契数列(A000045)的完整元数据

"What is OEIS sequence 1?"
→ 获取 A000001(阶为 n 的群)的项和描述

🔧 使用 LODA 程序

"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    # 全面的错误处理

错误处理策略

  • 输入验证:严格的参数检查和清晰的错误消息
  • 网络弹性:重试逻辑和连接错误处理
  • API 错误转换:将 HTTP 错误转换为有意义的用户消息
  • 优雅降级:尽可能提供部分结果

🔍 故障排除

常见问题

问题 解决方案
服务器无法启动 检查 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

🤝 贡献代码

开发设置

  1. 分叉仓库
  2. 创建功能分支:git checkout -b feature/amazing-feature
  3. 使用适当的 TypeScript 类型进行更改
  4. 彻底测试:npm run type-check
  5. 提交拉取请求

代码标准

  • TypeScript:使用严格模式并实现完整的类型覆盖
  • 错误处理:始终使用 McpError 处理面向用户的错误
  • 验证:在进行 API 调用之前验证所有输入
  • 文档:为公共方法提供清晰的 JSDoc 注释
  • 格式化:保持一致的表情符号使用和输出结构

🔗 资源

📄 API 端点

基于官方 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 许可证。

🙏 致谢

  • LODA 项目团队 - 创造了这个出色的数学工具
  • OEIS 贡献者 - 维护了世界上最重要的序列数据库
  • MCP 社区 - 提供了优秀的协议和 SDK
  • 数学社区 - 持续进行序列发现和研究

为数学发现和算法研究用心打造 ❤️

  • 0 关注
  • 0 收藏,40 浏览
  • system 提出于 2025-10-03 04:18

相似服务问题

相关AI产品