In-depth architectural comparison of the MCP Run Python and Prolog Reasoner MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
MCP Run Python
Code Execution · Local stdio
Quality: 48/100 (Fair) | Auth: No auth required
Prolog Reasoner
Code Execution · Local stdio
Quality: 57/100 (Good) | Auth: No auth required
Verdict Summary: Choose MCP Run Python if you need specialized Code Execution tools running via a local process. Choose Prolog Reasoner if your workspace requires Code Execution integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose MCP Run Python when:
You need dedicated capabilities in the Code Execution domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
Execute Prolog code and return reasoning results.
Write Prolog facts and rules, then run a query against them.
Supports CLP(FD) constraints, negation-as-failure, and all
standard SWI-Prolog features.
list_rule_bases
List all saved rule bases with description and tags.
Returns ``{"rule_bases": [{"name": str, "description": str,
"tags": list[str]}, ...]}`` sorted by name. Metadata is extracted
from the leading ``% description:`` / ``% tags:`` comments of each
rule base file (see §4.10).
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
MCP Run Python is categorized under Code Execution and uses a local stdio subprocess. In contrast, Prolog Reasoner belongs to Code Execution using local stdio subprocess. Select MCP Run Python when you need capabilities focused on code execution and Prolog Reasoner when you require tools for code execution.
Save a named rule base containing Prolog rules that can be reused
across ``execute_prolog`` calls.
Use this for stable, reusable knowledge (e.g. ``piece_moves`` for
chess piece movement rules). For one-time facts, include them
directly in ``prolog_code`` instead.