Skip to main content
Glama
PortPro-Technologies-Inc

MCP Python Interpreter

MCP Python Interpreter

A Model Context Protocol (MCP) server that allows LLMs to interact with Python environments, read and write files, execute Python code, and manage development workflows.

Features

  • Environment Management: List and use different Python environments (system and conda)

  • Code Execution: Run Python code or scripts in any available environment

  • Package Management: List installed packages and install new ones

  • File Operations:

    • Read files of any type (text, source code, binary)

    • Write text and binary files

  • Python Prompts: Templates for common Python tasks like function creation and debugging

Related MCP server: MCP Web Tools Server

Installation

You can install the MCP Python Interpreter using pip:

pip install mcp-python-interpreter

Or with uv:

uv install mcp-python-interpreter

Usage with Claude Desktop

  1. Install Claude Desktop

  2. Open Claude Desktop, click on menu, then Settings

  3. Go to Developer tab and click "Edit Config"

  4. Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-python-interpreter": {
        "command": "uvx",
        "args": [
            "mcp-python-interpreter",
            "--dir",
            "/path/to/your/work/dir",
            "--python-path",
            "/path/to/your/python"
        ],
        "env": {
            "MCP_ALLOW_SYSTEM_ACCESS": 0
        },
    }
  }
}

For Windows:

{
  "mcpServers": {
    "python-interpreter": {
      "command": "uvx",
      "args": [
        "mcp-python-interpreter",
        "--dir",
        "C:\\path\\to\\your\\working\\directory",
        "--python-path",
        "/path/to/your/python"
      ],
        "env": {
            "MCP_ALLOW_SYSTEM_ACCESS": 0
        }
    }
  }
}
  1. Restart Claude Desktop

  2. You should now see the MCP tools icon in the chat interface

The --dir parameter is required and specifies where all files will be saved and executed. This helps maintain security by isolating the MCP server to a specific directory.

Prerequisites

  • Make sure you have uv installed. If not, install it using:

    curl -LsSf https://astral.sh/uv/install.sh | sh
  • For Windows:

    powershell -ExecutionPolicy Bypass -Command "iwr -useb https://astral.sh/uv/install.ps1 | iex"

Available Tools

The Python Interpreter provides the following tools:

Environment and Package Management

  • list_python_environments: List all available Python environments (system and conda)

  • list_installed_packages: List packages installed in a specific environment

  • install_package: Install a Python package in a specific environment

Code Execution

  • run_python_code: Execute Python code in a specific environment

  • run_python_file: Execute a Python file in a specific environment

File Operations

  • read_file: Read contents of any file type, with size and safety limits

    • Supports text files with syntax highlighting

    • Displays hex representation for binary files

  • write_file: Create or overwrite files with text or binary content

  • write_python_file: Create or overwrite a Python file specifically

  • list_directory: List Python files in a directory

Available Resources

  • python://environments: List all available Python environments

  • python://packages/{env_name}: List installed packages for a specific environment

  • python://file/{file_path}: Get the content of a Python file

  • python://directory/{directory_path}: List all Python files in a directory

Prompts

  • python_function_template: Generate a template for a Python function

  • refactor_python_code: Help refactor Python code

  • debug_python_error: Help debug a Python error

Example Usage

Here are some examples of what you can ask Claude to do with this MCP server:

  • "Show me all available Python environments on my system"

  • "Run this Python code in my conda-base environment: print('Hello, world!')"

  • "Create a new Python file called 'hello.py' with a function that says hello"

  • "Read the contents of my 'data.json' file"

  • "Write a new configuration file with these settings..."

  • "List all packages installed in my system Python environment"

  • "Install the requests package in my system Python environment"

  • "Run data_analysis.py with these arguments: --input=data.csv --output=results.csv"

File Handling Capabilities

The MCP Python Interpreter now supports comprehensive file operations:

  • Read text and binary files up to 1MB

  • Write text and binary files

  • Syntax highlighting for source code files

  • Hex representation for binary files

  • Strict file path security (only within the working directory)

Security Considerations

This MCP server has access to your Python environments and file system. Key security features include:

  • Isolated working directory

  • File size limits

  • Prevented writes outside the working directory

  • Explicit overwrite protection

Always be cautious about running code or file operations that you don't fully understand.

License

MIT

Available Tools

9 tools
install_packageB
Install a Python package in the specified environment.

Args:
    package_name: Name of the package to install
    environment: Name of the Python environment (default if custom path provided, otherwise system)
    upgrade: Whether to upgrade the package if already installed (default: False)
ParametersJSON Schema
NameRequiredDescriptionDefault
environmentNodefault
package_nameYes
upgradeNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but lacks critical behavioral details. It states what the tool does but doesn't disclose permissions needed, whether it modifies system state irreversibly, potential side effects (e.g., dependency conflicts), or error handling. For a mutation tool with zero annotation coverage, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with a clear purpose statement followed by parameter explanations. Every sentence adds value: the first sets context, and the Args section clarifies parameters without redundancy. It's front-loaded and wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, no annotations, and no output schema, the description is minimally adequate. It covers the basic action and parameters but lacks details on behavioral traits, error cases, or return values. For a package installation tool that modifies environments, more context on safety and outcomes would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context beyond the schema's 0% coverage. It explains that 'environment' defaults to system if no custom path, clarifies 'upgrade' applies if already installed, and provides default values not in the schema. This compensates well for the low schema coverage, though it doesn't detail parameter formats or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Install') and resource ('Python package in the specified environment'), making the purpose immediately understandable. It distinguishes from siblings like list_installed_packages (listing vs installing) but doesn't explicitly contrast with all alternatives like run_python_code for package usage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., environment must exist), when not to use it (e.g., for system packages vs pip), or compare with siblings like write_file for manual installation. Usage is implied but not explicitly defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_directoryA
List all Python files in a directory or subdirectory.

Args:
    directory_path: Path to directory (relative to working directory or absolute, empty for working directory)
ParametersJSON Schema
NameRequiredDescriptionDefault
directory_pathNo

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the action (listing files) and parameter usage, but does not address important behaviors such as error handling (e.g., what happens if the path is invalid), output format (e.g., list structure), or permissions needed. This leaves significant gaps for an agent to understand how the tool behaves beyond basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with the main purpose stated first and parameter details following in a clear, bullet-like format. Every sentence adds value, though it could be slightly more structured (e.g., separating usage notes).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description covers the core purpose and parameters well. However, it lacks details on behavioral aspects like error handling or output format, which are important for completeness even in simple tools. It is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains the parameter 'directory_path' in detail, including its purpose, how to specify paths (relative or absolute), and default behavior (empty for working directory). This fully compensates for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('List') and resource ('Python files in a directory or subdirectory'), distinguishing it from siblings like list_installed_packages or read_file. It precisely defines what is being listed and where.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying 'Python files' and directory paths, but does not explicitly state when to use this tool versus alternatives like list_installed_packages or run_python_file. It provides basic context but lacks explicit guidance on exclusions or comparisons with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_installed_packagesB
List installed packages for a specific Python environment.

Args:
    environment: Name of the Python environment (default: default if custom path provided, otherwise system)
ParametersJSON Schema
NameRequiredDescriptionDefault
environmentNodefault

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes a read-only listing operation, which is straightforward, but lacks details on output format (e.g., list structure, package details), potential errors (e.g., if environment doesn't exist), or performance considerations. For a tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves beyond its basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and well-structured: the first sentence states the purpose clearly, and the 'Args' section efficiently explains the parameter without redundancy. Every sentence adds value, and there's no unnecessary information, making it easy for an agent to parse and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one optional parameter, no annotations, no output schema), the description is minimally adequate. It covers the purpose and parameter semantics well, but lacks details on output (what the list includes, format) and error handling. For a listing tool, this might suffice, but without annotations or output schema, it leaves the agent guessing about the return values, resulting in a baseline score of 3.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context for the single parameter 'environment' by explaining its semantics: it specifies the Python environment name, clarifies the default behavior ('default if custom path provided, otherwise system'), and implies it's optional. With schema description coverage at 0% (the schema only provides a title and type), the description fully compensates by detailing the parameter's role and default logic, earning a high score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('List') and resource ('installed packages') along with the target context ('for a specific Python environment'). It distinguishes from siblings like 'install_package' (which installs rather than lists) and 'list_python_environments' (which lists environments rather than packages). However, it doesn't explicitly differentiate from 'list_directory' or other listing tools, keeping it at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by specifying 'for a specific Python environment,' suggesting this tool should be used when targeting packages within an environment rather than system-wide. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'list_directory' (which might list files) or 'list_python_environments' (which lists environments themselves), nor does it mention prerequisites or exclusions, resulting in a score of 3.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_python_environmentsB

List all available Python environments (system Python and conda environments).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on traits like output format (e.g., list of strings, JSON), whether it includes virtual environments, error handling, or performance implications. For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary details. Every word earns its place by clarifying the resource scope. It's appropriately sized for a simple tool with no parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is minimally adequate. It covers the purpose but lacks behavioral context and usage guidelines. Without annotations or output schema, the agent might struggle with how to interpret results or handle edge cases, making it incomplete for optimal use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by specifying the scope ('system Python and conda environments'), which isn't captured in the schema. This compensates well, but since there are no parameters, the baseline is high, and it doesn't fully address potential implicit parameters like filtering options.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'all available Python environments', specifying both system Python and conda environments. It distinguishes from siblings like list_directory or list_installed_packages by focusing on environments rather than files or packages. However, it doesn't explicitly differentiate from run_python_code or run_python_file in terms of when to use each, keeping it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing conda installed for conda environments, or compare it to siblings like list_installed_packages for package listings. Without explicit when/when-not instructions, the agent must infer usage from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_fileA
Read the content of any file, with size limits for safety.

Args:
    file_path: Path to the file (relative to working directory or absolute)
    max_size_kb: Maximum file size to read in KB (default: 1024)

Returns:
    str: File content or an error message
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
max_size_kbNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it reads file content, has size limits for safety, and returns either content or an error message. It doesn't mention permissions, rate limits, or specific error types, but covers the core behavior adequately.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Perfectly structured with a clear purpose statement followed by Args and Returns sections. Every sentence earns its place - the safety note is valuable, and the parameter explanations are essential given the 0% schema coverage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter tool with no annotations and no output schema, the description provides good coverage: purpose, parameters, return behavior, and safety considerations. It doesn't explain the exact format of error messages or provide examples, but is largely complete for this complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining both parameters: file_path ('Path to the file (relative to working directory or absolute)') and max_size_kb ('Maximum file size to read in KB (default: 1024)'). This adds essential meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Read the content of any file') and resource ('file'), distinguishing it from sibling tools like write_file or list_directory. It provides a complete verb+resource+scope statement with the size limit qualification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context through the size limit safety note, but doesn't explicitly state when to use this tool versus alternatives like write_file or list_directory. No explicit when-not or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_python_codeB
Execute Python code and return the result. Code runs in the working directory.

Args:
    code: Python code to execute
    environment: Name of the Python environment to use (default if custom path provided, otherwise system)
    save_as: Optional filename to save the code before execution (useful for future reference)
ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
environmentNodefault
save_asNo

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but offers minimal behavioral details. It mentions code runs in the working directory and environment selection, but lacks critical information like security implications, timeout limits, error handling, or output format. This is inadequate for a code execution tool with mutation potential.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose. The Args section is structured but slightly verbose; every sentence adds value, though it could be more streamlined (e.g., merging the working directory note).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (code execution with potential side-effects), no annotations, no output schema, and 0% schema coverage, the description is incomplete. It misses critical details like return value structure, error cases, safety warnings, or execution constraints, making it insufficient for safe agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaningful context for all three parameters: 'code' as Python code to execute, 'environment' with default behavior explained, and 'save_as' with its utility. This goes beyond the bare schema, though it could detail environment options or save_as format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as 'Execute Python code and return the result', which is specific (verb+resource) and distinguishes it from siblings like run_python_file. However, it doesn't explicitly differentiate from all siblings (e.g., install_package might also execute code indirectly).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like run_python_file or other siblings. It mentions the working directory and environment but doesn't explain scenarios where direct code execution is preferred over file-based execution or other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_python_fileB
Execute a Python file and return the result.

Args:
    file_path: Path to the Python file to execute (relative to working directory or absolute if system access is enabled)
    environment: Name of the Python environment to use (default if custom path provided, otherwise system)
    arguments: List of command-line arguments to pass to the script
ParametersJSON Schema
NameRequiredDescriptionDefault
argumentsNo
environmentNodefault
file_pathYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool executes a file and returns the result, but doesn't cover critical aspects like security implications (e.g., system access), error handling, execution timeouts, or output format. This leaves significant gaps for a tool that runs arbitrary code.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by a structured parameter list. It's appropriately sized with no redundant information, though the parameter explanations could be slightly more concise (e.g., by combining details).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of executing Python files (involving security, dependencies, and output handling), no annotations, and no output schema, the description is incomplete. It lacks details on return values, error cases, execution limits, and how it differs from siblings like 'run_python_code', making it inadequate for safe and effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates well by explaining all three parameters: 'file_path' (path to the Python file), 'environment' (Python environment to use), and 'arguments' (command-line arguments). It adds meaningful context beyond the bare schema, such as relative vs. absolute paths and default behaviors.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Execute') and resource ('a Python file'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'run_python_code' (which might execute code directly rather than from a file), leaving room for improvement in sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying what the tool does, but doesn't provide explicit guidance on when to use this tool versus alternatives like 'run_python_code' or other siblings. It mentions parameters like 'environment' and 'arguments' which hint at context, but lacks clear when/when-not statements or named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_fileA
Write content to a file in the working directory or system-wide if allowed.

Args:
    file_path: Path to the file to write (relative to working directory or absolute if system access is enabled)
    content: Content to write to the file
    overwrite: Whether to overwrite the file if it exists (default: False)
    encoding: File encoding (default: utf-8)

Returns:
    str: Status message about the file writing operation
ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
encodingNoutf-8
file_pathYes
overwriteNo

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: the tool writes content to files, supports relative/absolute paths depending on system access, and has an overwrite option. However, it doesn't mention permissions needed, error conditions, or rate limits, leaving some gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by a structured Args/Returns section. Every sentence earns its place by providing essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a mutation tool with 4 parameters, no annotations, and no output schema), the description is mostly complete. It covers purpose, parameters, and return type, but lacks details on error handling or security implications, which would be beneficial for a file-writing operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate fully. It adds substantial meaning beyond the schema by explaining each parameter's purpose, defaults, and constraints (e.g., file_path can be relative or absolute, overwrite defaults to False, encoding defaults to utf-8). This provides complete parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Write content to a file') and resource ('a file in the working directory or system-wide'), distinguishing it from sibling tools like read_file (which reads) and write_python_file (which is Python-specific). The verb+resource combination is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when to use this tool (writing files in the working directory or system-wide), but it doesn't explicitly mention when NOT to use it or name alternatives like write_python_file for Python-specific files. The guidance is helpful but not fully comparative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_python_fileB
Write content to a Python file in the working directory or system-wide if allowed.

Args:
    file_path: Path to the file to write (relative to working directory or absolute if system access is enabled)
    content: Content to write to the file
    overwrite: Whether to overwrite the file if it exists (default: False)
ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
file_pathYes
overwriteNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions that overwriting is optional (default: False) and system access may be required, but doesn't disclose critical behaviors like error handling (e.g., if file doesn't exist or path is invalid), permissions needed, or side effects. For a mutation tool with zero annotation coverage, this leaves significant gaps in behavioral understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with a clear opening sentence and a structured Args section. Every sentence adds value, and it's front-loaded with the main purpose. Minor improvements could include removing redundancy in the Args (e.g., 'default: False' is already in schema) or tightening phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a mutation tool with 3 parameters, the description is incomplete. It covers basic parameter semantics but lacks details on behavioral traits (e.g., errors, permissions), return values, or interactions with siblings. For a file-writing operation, more context on safety and outcomes is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics for all three parameters: 'file_path' is explained as relative or absolute, 'content' as what to write, and 'overwrite' with its default and purpose. This goes beyond the bare schema, though it could detail format constraints (e.g., Python syntax).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Write') and resource ('Python file'), specifying it writes content to a file. It distinguishes from siblings like 'write_file' by specifying Python files, but doesn't explicitly contrast with other file operations. The purpose is specific but could better differentiate from similar tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for writing Python files in the working directory or system-wide, with a note about system access. However, it doesn't explicitly state when to use this vs. alternatives like 'write_file' or 'run_python_code', nor does it mention prerequisites or exclusions. Usage is contextually implied but lacks clear guidance on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updatesv1.0.0
    • First observedinstall_package
    • First observedlist_directory
    • First observedlist_installed_packages
    • First observedlist_python_environments
    • First observedread_file
    • First observedrun_python_code
    • First observedrun_python_file
    • First observedwrite_file
    • First observedwrite_python_file

TDQS

A3.7/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between write_file and write_python_file, as both handle file writing with similar arguments, which could cause confusion. However, descriptions clarify that write_python_file is specifically for Python files, reducing ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., install_package, list_directory, run_python_code), with clear and predictable naming throughout the set. No deviations or mixed conventions are present.

Tool Count5/5

With 9 tools, the count is well-scoped for a Python interpreter server, covering package management, file operations, code execution, and environment handling. Each tool serves a clear purpose without being excessive or insufficient.

Completeness4/5

The toolset provides comprehensive coverage for core Python interpreter tasks, including installation, execution, and file management. Minor gaps exist, such as no tool for deleting files or packages, but agents can work around this using existing tools like write_file with overwrite or system commands.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that allows LLMs to execute shell commands and receive their output in a controlled manner.
    7
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that extracts and analyzes Python code structures, focusing on import/export relationships between files to help LLMs understand code context.
    7
    MIT
  • A
    license
    D
    quality
    D
    maintenance
    A Model Context Protocol server that enables LLMs to interact with databases (currently MongoDB) through natural language, supporting operations like querying, inserting, deleting documents, and running aggregation pipelines.
    5
    14
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/PortPro-Technologies-Inc/mcp-python-interpreter'

If you have feedback or need assistance with the MCP directory API, please join our Discord server