Are you the author? Sign in to claim
Logic-LM MCP Server: Symbolic reasoning for Claude Code using Answer Set Programming and the Clingo solver.
A Model Context Protocol (MCP) server that provides symbolic reasoning capabilities using Logic-LM framework and Answer Set Programming (ASP).
This implementation is inspired by and builds upon the Logic-LLM framework:
Original Research:
This MCP server adapts the Logic-LLM approach for integration with Claude Code and other MCP clients, providing LLM-collaborative symbolic reasoning through Answer Set Programming.
Choose your preferred installation method:
# Install with pip
pip install logic-lm-mcp-server
# Or install with uv (10-100x faster)
uv pip install logic-lm-mcp-server
📦 Package URL: https://pypi.org/project/logic-lm-mcp-server/
# Install with optional solver
pip install logic-lm-mcp-server[solver]
# Or with uv
uv pip install logic-lm-mcp-server[solver]
git clone https://github.com/stevenwangbe/logic-lm-mcp-server.git
cd logic-lm-mcp-server
pip install -e .
logic-lm-mcp --help
After installing the package, add it to your Claude Code configuration:
Method 1: Using the console command (after PyPI installation)
claude mcp add logic-lm-mcp logic-lm-mcp
Method 2: Manual configuration
Edit ~/.config/claude/claude_desktop_config.json (create if it doesn't exist):
{
"mcpServers": {
"logic-lm": {
"command": "logic-lm-mcp"
}
}
}
Restart Claude Code to load the new MCP server.
Try these commands in Claude Code:
Check Logic-LM server health
Translate this logic problem to ASP: "All birds can fly. Penguins are birds. Can penguins fly?"
For other MCP-compatible tools, start the server manually:
python start_server.py
The server will run on stdio and provide these tools:
get_asp_guidelines - Get ASP translation guidelinestranslate_to_asp_instructions - Get problem-specific ASP guidanceverify_asp_program - Execute ASP programs with Clingocheck_solver_health - Verify system healthLogic-LM MCP Server converts natural language logical problems into Answer Set Programming (ASP) format, solves them using the Clingo solver, and returns human-readable results. It provides a three-stage reasoning pipeline: Problem Formulation → Symbolic Reasoning → Result Interpretation.
get_asp_guidelinesGet comprehensive ASP translation guidelines (cached for efficiency).
Parameters: None
Returns: Complete ASP Logic Translation Guidelines document with comprehensive instructions for translating natural language into Answer Set Programming format.
translate_to_asp_instructionsGet lightweight instructions for translating a specific natural language problem to ASP.
Parameters:
problem (string, required): Natural language logical problem to translateExample:
{
"problem": "All cats are mammals. Fluffy is a cat. Is Fluffy a mammal?"
}
Response:
{
"success": true,
"solution": "TRANSLATE TO ASP: All cats are mammals...\n\nINSTRUCTIONS:\n1. Call get_asp_guidelines() for complete patterns\n2. Analyze logical structure...",
"confidence": 1.0,
"method": "lightweight_translation_instructions",
"metadata": {
"problem_length": 58,
"guidelines_cached": false,
"next_steps": ["Call get_asp_guidelines() if needed", "Generate ASP code", "Call verify_asp_program()"]
}
}
verify_asp_programDirectly verify and solve an ASP program using the Clingo solver.
Parameters:
program (string, required): ASP program code to verify and solvemax_models (integer, 1-100, default: 10): Maximum number of models to findExample:
{
"program": "% Facts\ncat(fluffy).\n\n% Rule: All cats are mammals\nmammal(X) :- cat(X).\n\n% Query\n#show mammal/1.",
"max_models": 10
}
check_solver_healthCheck Logic-LM server and Clingo solver health status.
Returns:
Natural Language Input
↓
LLM Translation Instructions (Problem-specific guidance)
↓
ASP Program Generation (LLM-driven with guidelines)
↓
Clingo Solver Execution
↓
Model Interpretation (Symbolic results)
↓
Human-Readable Output
pip install -r requirements.txt
pip install fastmcp>=2.0.0 pydantic>=2.0.0 clingo>=5.8.0
git clone <repository-url>
cd logic-lm-mcp-server
pip install -e .
The server automatically handles:
Input: "If it's raining, then the ground is wet. It's raining. Is the ground wet?"
Output: "Yes, the ground is wet. This conclusion follows from modus ponens..."
Input: "All birds can fly. Penguins are birds. Can penguins fly?"
Output: "Based on the given premises, yes. However, this conflicts with real-world knowledge..."
Input: "All members of set A are in set B. X is in set A. Is X in set B?"
Output: "Yes, X is in set B. This follows from set inclusion transitivity..."
logic-lm-mcp --help
# Test with Claude Code
claude mcp get logic-lm
"No module named 'pydantic'" or similar
pip install -r requirements.txt"Clingo not available"
pip install clingoServer fails to start
python --version (requires 3.8+)logic-lm-mcp --helpMCP connection issues
claude mcp get logic-lmlogic-lm-mcp --helplogic-lm-mcp --helpcheck_solver_health toolinclude_trace=true in requestsError:
❌ Missing required dependencies:
- fastmcp>=2.0.0
- pydantic>=2.0.0
Cause: Dependencies not properly installed or virtual environment not activated.
Solution:
# Option 1: Use virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
# Option 2: Install globally
pip install -r requirements.txt
# Option 3: Use venv python directly
venv/bin/python start_server.py
Error:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'fastmcp'
Cause: Virtual environment not properly activated or dependencies not installed.
Solution:
# Clean installation
rm -rf venv/
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Error:
ModuleNotFoundError: No module named 'pydantic'
Cause: Missing core dependency, often from incomplete installation.
Solution:
pip install pydantic>=2.0.0
# Or reinstall all dependencies
pip install -r requirements.txt
Error: Virtual environment is using the system Python instead of the isolated venv Python.
Symptoms:
which python shows system path after activationCauses:
Solutions:
Option 1: Verify and fix activation
# Check if activation worked properly
source venv/bin/activate
which python # Should show venv/bin/python, not /usr/bin/python
# If still showing system python, check for aliases
alias python
alias python3
# Remove problematic aliases
unalias python
unalias python3
Option 2: Use explicit venv path (most reliable)
# Instead of relying on activation, use direct paths
venv/bin/python -c "import sys; print(sys.executable)"
venv/bin/pip install package-name
# For our package specifically
venv/bin/python -c "from logic_lm_mcp import LogicFramework; print('✅ Works!')"
Option 3: Recreate virtual environment
# Clean recreation if venv is corrupted
rm -rf venv/
python3 -m venv venv
source venv/bin/activate
which python # Verify it shows venv/bin/python
pip install logic-lm-mcp-server
Option 4: Use absolute paths in shell
# For Linux/Mac
/full/path/to/venv/bin/python script.py
# For Windows
C:\full\path\to\venv\Scripts\python.exe script.py
Error:
"clingo_available": false
Cause: Clingo ASP solver not installed.
Solution:
# Option 1: Via pip
pip install clingo>=5.8.0
# Option 2: Via conda
conda install -c conda-forge clingo
# Option 3: Check installation
python -c "import clingo; print('Clingo available')"
Error: MCP connection fails or tools not found.
Cause: Server not properly configured in Claude Code.
Solution:
python start_server.pyError:
SyntaxError: invalid syntax
Cause: Python version < 3.8.
Solution:
# Check Python version
python --version # Must be 3.8+
# Use specific Python version
python3.8 -m venv venv
# or
python3.9 -m venv venv
Error: Server won't start, port already in use.
Cause: Previous server instance still running.
Solution:
# Kill existing processes
pkill -f start_server.py
pkill -f logic-lm
# Or find and kill specific process
ps aux | grep start_server
kill <process_id>
Error:
PermissionError: [Errno 13] Permission denied
Cause: Insufficient file permissions.
Solution:
# Fix permissions
chmod +x start_server.py
chmod -R 755 src/
# Or run with appropriate permissions
sudo python start_server.py # Not recommended
Error:
ModuleNotFoundError: No module named 'src'
Cause: Python can't find local modules.
Solution:
# Run from project root directory
cd /path/to/logic-lm-mcp-server
python start_server.py
# Or use absolute imports
export PYTHONPATH="${PYTHONPATH}:$(pwd)"
Error: Server uses old logic after code changes.
Cause: Python bytecode cache or old dependencies.
Solution:
# Clear Python cache
find . -type d -name "__pycache__" -exec rm -rf {} +
find . -name "*.pyc" -delete
# Reinstall dependencies cleanly
rm -rf venv/
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Restart Claude Code
Error: Server crashes or becomes unresponsive.
Cause: Insufficient system resources.
Solution:
max_models parameter in requestslogic-lm-mcp-server/
├── src/
│ ├── __init__.py # Package initialization
│ ├── logic_lm_mcp/
│ │ ├── __init__.py # Package initialization
│ │ ├── main.py # FastMCP server implementation
│ │ ├── logic_framework.py # Core Logic-LM framework
│ │ └── asp_templates.py # ASP template library
├── pyproject.toml # Modern Python packaging
├── requirements.txt # Python dependencies
├── start_server.py # Development server startup
└── README.md # This documentation
src/logic_lm_mcp/asp_templates.py_initialize_templates() methodlogic-lm-mcp --help and MCP toolssrc/logic_lm_mcp/logic_framework.pyLogicFramework classsrc/logic_lm_mcp/main.pyThe server provides access to ASP templates via MCP resources:
asp-templates://list - List all available templatesasp-templates://info/{template_name} - Get template informationasp-templates://template/{template_name} - Get template codeMIT License - See LICENSE file for details.
For issues, feature requests, or questions about Logic-LM reasoning capabilities, please:
logic-lm-mcp --helpRun analytics queries on ClickHouse — explore schemas, execute SQL, fetch results
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases