py-exec-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PY_EXEC_CWD | No | Directory code runs in, and the root added to PYTHONPATH. Default is the process working directory. | |
| PY_EXEC_PYTHON | No | Interpreter to run code with. Default is the project's virtualenv Python if present, otherwise the interpreter running the server. | |
| PY_EXEC_MAX_OUTPUT | No | Per-stream character cap before truncation. Default is 30000. | 30000 |
| PY_EXEC_MAX_TIMEOUT | No | Upper clamp on the timeout_s parameter. Default is 600. | 600 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| run_pythonA | Execute Python code and return its stdout, stderr and exit code. The code is fed to the interpreter over STDIN, so it is never parsed by a shell or split into argv. Write it exactly as it would appear in a .py file: f-strings, nested quotes and backslashes all survive verbatim. Runs in the working directory (PY_EXEC_CWD or cwd), which is also prepended to PYTHONPATH so the project's own packages import. timeout_s is clamped to [1, PY_EXEC_MAX_TIMEOUT]; on timeout, whatever was produced is still returned. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 1 tool
Only one tool exists, so there is no possibility of confusing it with another tool. Its purpose is explicit and unique.
The single tool name follows a clear verb_noun snake_case convention. There are no other tool names to create inconsistency.
One tool exactly matches the server's narrow purpose of executing Python code. The count is well-scoped without unnecessary breadth.
The tool fully covers the execution domain: it handles stdin, working directory, PYTHONPATH, timeouts, and returns stdout, stderr, and exit code. No obvious gaps exist.