๐ LODA MCP Server
A Model Context Protocol (MCP) server for the LODA Language API, offering seamless access to the LODA language and integer sequences from the On-Line Encyclopedia of Integer Sequencesยฎ (OEISยฎ).
๐ Quick Start
Prerequisites
- Node.js 18.0.0 or higher
- npm 8.0.0 or higher
Installation
- Install dependencies:
npm install
- Build the server:
npm run build
- Test the installation:
npm run test-connection
npm start
Development Workflow
npm run dev
npm run type-check
npm run clean && npm run build
โจ Features
Core Capabilities
- OEIS-style Sequence Integration: Access any sequence with A-number formatting.
- Program Discovery: Find and search LODA programs for sequences.
- Real-time Execution: Run LODA programs and see results instantly.
- Robust Error Handling: Comprehensive validation and error messages.
Available Tools
| Tool |
Description |
Primary Use Case |
get_program |
Get details about a LODA program by ID |
Analyze program implementations |
search_programs |
Search for LODA programs |
Find programs by keyword or ID |
eval_program |
Evaluate a LODA program |
Test and validate program correctness |
submit_program |
Submit a new LODA program |
Contribute new implementations |
get_sequence |
Get details about an integer sequence by ID |
Research mathematical sequences |
search_sequences |
Search for integer sequences |
Find sequences by keyword or ID |
get_stats |
View LODA project summary statistics |
Understand project scope and growth |
get_keywords |
List all keywords and their descriptions |
Explore available keywords |
get_submitters |
List all submitters and their number of programs |
See top contributors |
๐ Overview
LODA (Lexicographical Order Descent Assembly) is an assembly language and computational model for integer sequences. This MCP server enables you to:
- ๐ Explore integer sequences with rich metadata and formatting.
- ๐ง Discover LODA programs that compute specific sequences.
- โก Execute programs in real - time and compute sequence terms.
- ๐ Monitor project statistics.
๐ป Usage Examples
Basic Usage
"Show me details about OEIS sequence 45"
โ Gets Fibonacci sequence (A000045) with full metadata
"What is OEIS sequence 1?"
โ Gets A000001 (groups of order n) with terms and description
Advanced Usage
"Find all LODA programs for sequence 45"
โ Shows all programs that compute Fibonacci numbers, sorted by length
"Get LODA program 12345"
โ Retrieves specific program with code and metadata
"Run this LODA program and compute 10 terms:
mov $0,1
lpb $1
add $0,$1
sub $1,1
lpe"
โ Executes program and shows computed sequence values
"Start mining programs for OEIS sequence 142857 with max length 50"
โ Begins mining operation and returns operation ID
"Check status of mining operation 987"
โ Shows current status and any discovered programs
"What are the current LODA project statistics?"
โ Shows number of sequences, programs, and contributors
๐ง API Reference
Tool Schemas
All tools use strict JSON schemas with proper validation. Example schemas:
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
{}
Response Format
All responses include:
- Rich formatting with emojis and visual structure.
- Clear status indicators.
- Contextual information and helpful tips.
- Proper error messages with actionable guidance.
๐๏ธ Architecture
Core Components
LODAMCPServer
โโโ LODAApiClient # HTTP client for LODA API
โโโ Tool Handlers # Individual tool implementations
โโโ Validation Layer # Input validation and sanitization
โโโ Error Management # Comprehensive error handling
Error Handling Strategy
- Input Validation: Strict parameter checking with clear error messages.
- Network Resilience: Retry logic and connection error handling.
- API Error Translation: Convert HTTP errors to meaningful user messages.
- Graceful Degradation: Partial results when possible.
๐ Troubleshooting
Common Issues
| Issue |
Solution |
| Server won't start |
Check Node.js version (18+), verify build completed |
| API connection failed |
Test with npm run test-connection, check firewall |
| Tool not found |
Verify tool name spelling, check MCP client connection |
| Invalid parameters |
Check parameter types match schema exactly |
| Mining timeout |
Use shorter max_runtime, check sequence exists |
Debug Mode
DEBUG=* npm start
echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_stats_summary","arguments":{}},"id":1}' | npm start
Health Checks
npm run test-connection
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | npm start
๐ค Contributing
Development Setup
- Fork the repository.
- Create a feature branch:
git checkout -b feature/amazing-feature.
- Make changes with proper TypeScript types.
- Test thoroughly:
npm run type-check.
- Submit a pull request.
Code Standards
- TypeScript: Strict mode with full type coverage.
- Error Handling: Always use McpError for user-facing errors.
- Validation: Validate all inputs before API calls.
- Documentation: Clear JSDoc comments for public methods.
- Formatting: Consistent emoji usage and output structure.
๐ Resources
๐ API Endpoints
Based on the official OpenAPI v2 specification:
| Endpoint |
Method |
Description |
/sequences/{id} |
GET |
Get integer sequence details |
/sequences/search |
GET |
Search integer sequences |
/programs/{id} |
GET |
Get LODA program details |
/programs/search |
GET |
Search LODA programs |
/programs/eval |
POST |
Evaluate a LODA program |
/programs/{id}/submit |
POST |
Submit a new LODA program |
/stats/summary |
GET |
Get statistics summary |
/stats/submitters |
GET |
List all submitters |
๐ License
Apache 2.0
๐ Acknowledgments
- LODA Project Team - For creating this amazing mathematical tool.
- OEIS Contributors - For maintaining the world's most important sequence database.
- MCP Community - For the excellent protocol and SDK.
- Mathematical Community - For continuous sequence discoveries and research.
Made with โค๏ธ for mathematical discovery and algorithmic research