Python REPL MCP Server
파이썬 REPL MCP 서버
이 MCP 서버는 Python REPL(Read-Eval-Print Loop)을 도구로 제공합니다. 이를 통해 MCP 프로토콜을 통해 Python 코드를 영구 세션으로 실행할 수 있습니다.
설정
설정이 필요 없습니다! 이 프로젝트는 종속성 관리를 위해 uv 사용합니다.
Related MCP server: Python REPL MCP Server
서버 실행
간단히 실행하세요:
지엑스피1
Claude Desktop과 함께 사용
Claude Desktop 구성 파일에 다음 구성을 추가하세요.
{
"mcpServers": {
"python-repl": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/python-repl-server",
"run",
"mcp_python"
]
}
}
}서버는 세 가지 도구를 제공합니다.
execute_python: 영구 변수로 Python 코드 실행code: 실행할 Python 코드reset: 세션을 재설정하는 선택적 부울 값
list_variables: 현재 세션의 모든 변수를 표시합니다.install_package: pypi에서 패키지를 설치합니다.
예시
변수를 설정하세요:
a = 42다음 변수를 사용하세요:
print(f"The value is {a}")모든 변수를 나열하세요:
# Use the list_variables tool세션 재설정:
# Use execute_python with reset=true기여하다
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요. 다음과 같은 방법으로 기여하실 수 있습니다.
버그 신고
새로운 기능 제안
문서 개선
테스트 케이스 추가
코드 개선 사항 제출
PR을 제출하기 전에 다음 사항을 확인하세요.
귀하의 코드는 기존 스타일을 따릅니다.
필요에 따라 문서를 업데이트했습니다.
테스트를 몇 개 써보는 건 어떨까요?
중요한 변경 사항이 있는 경우, 먼저 이슈를 열어서 변경하고 싶은 사항을 논의하세요.
Available Tools
3 toolsexecute_pythonB
Execute Python code and return the output. Variables persist between executions.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Python code to execute | |
| reset | No | Reset the Python session (clear all variables) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits on its own. It does state that variables persist between executions, which is a key stateful behavior. However, it omits other critical aspects such as error handling, output format, sandboxing, timeouts, or potential side effects, making the behavior of arbitrary code execution largely opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the main action 'Execute Python code' front-loaded. Every word serves a purpose, and there is no redundant or tangential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that executes arbitrary code, this description is underspecified. It does not explain what 'output' includes (stdout, stderr, exceptions), nor does it address side effects, resource limits, or session behavior beyond persistence. Since there is no output schema, the description should have elaborated further, but it leaves major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (code and reset) are fully described in the schema. The description adds no additional parameter semantics, but per the rubric, the high schema coverage warrants a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: executing Python code and returning output. This specific verb+resource combination distinguishes it from sibling tools like list_variables and install_package, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one needs to run Python code, but it provides no explicit guidance on when to use this tool vs. alternatives. It does not mention list_variables or install_package or any exclusion conditions, leaving the usage context somewhat implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
install_packageB
Install a Python package using uv
| Name | Required | Description | Default |
|---|---|---|---|
| package | Yes | Package name to install (e.g., 'pandas') |
TDQS
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, but it only says 'Install a Python package using uv'. It does not mention side effects such as modifying the environment, requiring network access, or how conflicts are resolved. The mention of 'uv' adds a detail about the package manager but lacks consequential behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately communicates the tool's purpose. It contains no unnecessary words or fluff, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description provides the core action and method, but it lacks usage guidelines and behavioral transparency. Given the absence of annotations, the description is not fully complete, though it covers the basics for a basic install operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the single parameter with 100% coverage, including an example ('pandas'). The description adds no additional semantic value beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Install') the resource ('a Python package') and the method ('using uv'). It distinguishes itself from sibling tools like execute_python and list_variables by indicating a package installation operation rather than code execution or variable inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 does not mention situations such as needing to add a dependency, nor does it exclude using execute_python or list_variables for other tasks. The absence of any usage context or alternative comparisons leaves the agent without clear decision-making support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_variablesB
List all variables in the current session
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It implies a read-only listing but does not state whether values are included, how the result is returned, or if there are side effects. 'Current session' is ambiguous and not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words. It is front-loaded and appropriately sized for a zero-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should explain what the output looks like. It only says 'list all variables', leaving unclear whether the output is names only or names with values, and what format is used. For a simple tool this might be sufficient, but it lacks completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is trivially complete. The description does not need to explain parameter details; the baseline of 4 applies because there is nothing to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and a clear resource 'variables', scoped to 'current session'. It obviously differs from sibling tools like execute_python and install_package, so purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or comparison with execute_python or install_package. The description only states the action, not the context of use.
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.
3 tool updates
- First observed
execute_python - First observed
install_package - First observed
list_variables
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose with no overlap: execute_python runs code, install_package manages dependencies, and list_variables inspects the session state. An agent can easily tell them apart as they target different aspects of the Python REPL workflow.
All tools follow a consistent verb_noun pattern (execute_python, install_package, list_variables) with clear, descriptive names. The naming convention is uniform throughout the set, making it predictable and easy to understand.
With only 3 tools, the set feels thin for a Python REPL server, as it lacks operations like uninstalling packages, clearing variables, or handling errors. While the core functions are covered, the count is borderline low for the domain's typical scope.
The tools cover basic execution, package installation, and variable listing, but there are notable gaps: no way to update or remove packages, delete variables, or manage session state beyond listing. This could cause agent failures in more complex workflows.
Maintenance
Related MCP Connectors
A simple MCP server built with FastMCP and python
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- FlicenseBqualityDmaintenanceA Python-based MCP server implementation that can be easily installed via pip or directly from GitHub, providing a simple way to deploy and run MCP server functionality.1-
- AlicenseNot gradedqualityDmaintenanceProvides a persistent Python REPL session as a tool for executing code, managing files, installing packages, and initializing projects via the MCP protocol.1MIT
- AlicenseAqualityDmaintenanceA production-grade MCP server providing a persistent Python REPL with multi-session support, sandboxing, and timeout protection, enabling LLM agents to execute Python code across multiple turns with variables that persist between calls.1221 PyPI1MIT
- AlicenseNot gradedqualityDmaintenanceAsync Python REPL + Shell execution for MCP. Provides persistent state, background jobs, interactive input() bridging, and crash isolation in a single server.1Apache 2.0