mcp-python-repl
Server Quality Checklist
Latest release: v0.1.1
- Disambiguation5/5
Each tool targets a distinct operation: running code vs. running files, managing variables (list/get/set/delete/clear), managing sessions (list/delete), plus package installation, history, and server status. There is no overlap between tools; even run_code vs. run_file is clearly separated by input type.
Naming Consistency4/5All tools follow a 'repl_' prefix and mostly use verb_noun naming (run_code, list_namespace, get_variable, delete_session). The only deviation is 'repl_server_status', which uses noun_noun instead of verb_noun, but this is a minor inconsistency in an otherwise uniform pattern.
Tool Count5/5With 12 tools, the server is well-scoped for a Python REPL session manager. Each tool addresses a distinct need—execution, package management, namespace introspection, session lifecycle, history, and status—without redundancy or bloat, fitting comfortably in the ideal 3-15 range.
Completeness4/5The tool surface covers core REPL workflows: running code, running files, installing packages, managing namespace variables, listing/deleting sessions, retrieving history, and server status. Minor gaps exist, such as no explicit 'create session' tool (though sessions appear to be implicit) and no batch execution or session renaming, but these are not critical for typical usage.
Average 4/5 across 12 of 12 tools scored. Lowest: 3.4/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description adds value by specifying 'all its data' as the deletion scope. However, it does not disclose other behavioral traits like irreversibility or any prerequisites, which would be useful for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, comprising just two short sentences with no redundant information. It is front-loaded with the core action and includes a brief return-value note, every word earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive tool with one parameter, the description adequately states what it does and the return type, while annotations cover the safety profile. However, it lacks usage guidance and any warning about consequences, making it minimally sufficient but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% per the context signal, and the tool description does not mention the session_id parameter at all. Although the param name is self-explanatory given the tool name, the description fails to compensate for the low coverage, so the agent must rely on the schema's minimal 'Target session ID' description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'delete' with a clear resource 'session' and scope 'all its data', effectively distinguishing it from sibling tools like repl_delete_variable and repl_clear_namespace. The purpose is unambiguous and directly actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 such as repl_clear_namespace or repl_delete_variable. There are no exclusions, prerequisites, or contextual recommendations, leaving the agent to infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read. The description adds the return format ('JSON with variable names, types, and preview values'), which is helpful but partially redundant given the output schema. No additional context about session-not-found behavior, pagination, or preview truncation is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and includes a clear return summary. There is no fluff, and every word adds value. It is appropriately concise for a simple listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and the description covers the core operation and return format. However, it leaves out the session_id parameter explanation and any caveats about empty namespaces or invalid sessions. Given that schema coverage is 0% and output schema exists, the description should have at least mentioned the input requirement. 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.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention the required session_id parameter at all. Schema description coverage is 0%, so the tool description was expected to compensate, but it completely omits parameter semantics. The agent receives no guidance on how to specify the target session, which is critical for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List all variables stored in a session's namespace.' This specific verb+resource combination distinguishes it from siblings like repl_get_variable (singular) and repl_clear_namespace (delete). It is unambiguous and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for enumerating namespace variables but does not explicitly say when to use it versus alternatives. It does not mention that repl_get_variable should be used for a single variable or provide exclusions. The context of 'all variables' gives some guidance, but it stops short of explicit comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true. The description adds that it returns confirmation with remaining variables, which is useful context beyond annotations. However, it does not disclose other behaviors such as error handling or side effects beyond the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences long, front-loads the action, and includes the return value. Every sentence adds value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and the annotations (destructiveHint, idempotentHint) plus the output schema cover much of the behavioral context. The description adequately states the result (confirmation with remaining variables). It lacks only parameter details, but the schema provides the required arguments. The description is complete enough for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention the parameters session_id or var_name, and the schema description coverage is 0%. The schema provides minimal descriptions ('Variable name.' and 'Session ID.'), but the tool description adds no additional semantic meaning. Since coverage is low, the description was expected to compensate but did not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Delete' with a clear resource ('a specific variable from a session's namespace'). This clearly distinguishes it from sibling tools like repl_get_variable, repl_set_variable, and repl_clear_namespace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. It does not mention, for example, that repl_clear_namespace should be used to delete all variables, or any other usage context. The purpose is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds useful behavior beyond annotations: the package is importable in all sessions immediately and uses pip or uv if available. That is meaningful behavioral context for a simple install 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences plus a minimal Args/Returns structure, all front-loaded and free of filler. Every sentence adds value, and the structure is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but the parameter mismatch is a critical gap. The description does not explain the actual input wrapper, and while an output schema exists, the description's wrong parameter documentation makes the tool incomplete and error-prone to invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description says 'Args: params: Package specifier', but the input schema requires 'params' to be an object containing a nested 'package' field. This is misleading and would cause an agent to pass the package string directly as {'params': 'pandas'} instead of {'params': {'package': 'pandas'}}, leading to validation failures.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Install a Python package using pip (or uv if available)', which is a specific verb+resource. It distinguishes this tool from sibling tools that manage code execution, files, and namespace variables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context: 'The package becomes importable in all sessions immediately', which conveys when to use it. It does not explicitly mention alternatives or exclusions, but the purpose is unambiguous, earning a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context by stating the return format: 'JSON with the variable name, type, and serialized value.' This goes beyond the annotations (readOnlyHint, idempotentHint, destructiveHint) and helps the agent understand what to expect. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: one sentence stating the action and a brief 'Returns:' line. It is front-loaded with the purpose, contains no fluff, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool, the description is sufficiently complete. It states the purpose, return format, and the annotations cover safety (read-only, idempotent, non-destructive). It does not mention error cases or session validity, but these are not critical for a basic get by ID operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the top-level parameter, but the nested schema provides descriptions for var_name and session_id. The description mentions 'variable' and 'session' which adds some semantic context, but it does not explicitly explain the params object or the relationship between the two fields. Description partially compensates for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Retrieve the full value of a variable from a session.' It uses a specific verb ('retrieve') and resource ('variable from a session'), which distinguishes it from related tools like repl_set_variable or repl_delete_variable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. While the verb 'retrieve' implies reading, there is no mention of use cases, exclusions, or comparisons to sibling tools like repl_list_namespace. The description lacks context for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly warns 'Cannot be undone,' which reinforces the destructiveHint annotation and discloses irreversibility. It also states the return value (confirmation with list of cleared variables), adding useful behavioral context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and a critical warning. There is no filler, and the return value is clearly stated in a structured format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive tool, the description covers what is cleared, irreversibility, and the return format. It lacks an explicit mention that the operation targets the specified session_id, but this is inferable from the schema and tool name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention session_id or provide any additional parameter-level semantics. The input schema's 'Target session ID' is the only guidance, and with schema description coverage reported as 0%, the description fails to compensate for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Clear' with the resource 'ALL variables from a session,' clearly distinguishing it from sibling tools like repl_delete_variable (single variable) and repl_list_namespace (listing). This is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case—clearing the entire session namespace—but does not explicitly state when to prefer this tool over alternatives such as repl_delete_variable for individual variables. It also does not mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly=false and openWorld=true, but the description adds meaningful context beyond that: execution occurs in a persistent session, variables persist for later use, and the return payload includes execution result, file metadata, and namespace summary. These are behavioral details not captured by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured. It opens with a clear purpose sentence, followed by a note on side effects, then concise Args and Returns summaries. Every sentence adds value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and annotations provide safety hints, the description covers essential behavioral aspects: persistent session, variable persistence, and return structure. It does not mention error handling or edge cases, but those are not required given the richness of schema and annotations. The description is sufficiently complete for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides detailed descriptions for file_path, session_id, and args (path type, session ID to resume, space-separated CLI args). The tool description's 'Args' line only restates the parameter names without adding new semantics. Since schema coverage is effectively complete, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description uses the specific verb 'Execute' with the resource 'Python file', and clarifies the context 'persistent session'. It also notes a key side effect ('Variables defined in the file become available for later use'), which distinguishes it from sibling repl_run_code that likely runs inline code. This is a clear, specific statement of purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for running files rather than ad-hoc code, but it does not explicitly name alternatives or state when to use this tool over repl_run_code. There is no exclusion or comparison, so usage guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds behavioral context by stating the return format ('JSON array of execution records') and session scoping. This goes beyond the annotation hints and clarifies what the agent can expect, though it could mention limits like last_n maximum.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: three brief sections that state what it does, when to use it, and what it returns. Every sentence adds value and the structure is front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only retrieval tool, the description provides sufficient context: it names the action, the use case, and the return format. The annotations cover safety, and the schema covers parameters. It could mention that session_id is required or that last_n has a maximum, but these are not essential given the schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description conceptually refers to 'last N' and 'session', aligning with the parameters last_n and session_id. However, it does not specify required vs optional, defaults, or minimum/maximum values. With schema description coverage at 0%, the description only partially compensates for the lack of parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the last N execution records for a session', which specifies the action (get), resource (execution records), and scope (session). This distinguishes it from sibling tools like repl_run_code or repl_get_variable, making the tool's purpose 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/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'Useful for debugging what happened in previous calls', giving a clear context for when to use the tool. It does not explicitly mention when not to use it or alternative tools, but the intended scenario is well conveyed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as idempotent and non-destructive. The description adds the return behavior ('Confirmation with variable type and preview') and emphasizes JSON parsing, which goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-sentence purpose, a brief usage note, and a clear Returns section. No filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter setter with idempotent and non-destructive annotations, the description plus schema adequately covers input, purpose, and return behavior. It could mention session existence prerequisites, but that is not essential for correct tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the context signal reports 0% schema coverage, the actual input schema contains short descriptions for session_id, var_name, and json_value. The tool description reinforces that json_value must be a JSON string but does not add substantially new semantic meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action ('Set a variable in a session from a JSON string') that clearly identifies the tool's resource and input format. This distinguishes it from sibling tools like repl_get_variable and repl_delete_variable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Useful for injecting data from external sources' provides a clear use case. It does not explicitly list exclusions or alternatives, but the context is sufficient to guide tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds context beyond those by specifying the return format (JSON array) and contents (IDs, timestamps, variable counts) and that only active sessions are listed. This provides useful behavioral detail not present in the schema or annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences pack the purpose and the return structure. It is front-loaded with the core action and immediately provides the expected output. No filler or repetition of schema/annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless list operation with a rich annotation set and an output schema, the description fully conveys what the tool does and what it returns. It is complete enough for an agent to select and invoke it without missing critical details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty. A baseline of 4 is appropriate for no-parameter tools because there is nothing to document. The description does not attempt to add parameter semantics, correctly avoiding redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and clearly identifies the resource as 'all active REPL sessions.' This distinguishes it from sibling tools like repl_delete_session (which removes sessions) and repl_get_variable (which retrieves specific variables within a session).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: to see all active sessions. However, it provides no explicit guidance on when NOT to use it or which alternative to choose for related tasks (e.g., repl_list_namespace for namespaces). The usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds valuable details about the response payload, specifying exactly what fields the JSON will contain (Python version, session count, configuration, limits), which helps the agent set expectations beyond the safety hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant wording. The first sentence states the action and target; the second lists expected return contents, making every sentence informative and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, a rich output schema, and annotations covering safety, the description sufficiently covers the tool's behavior. It explicitly lists the response fields, so the agent knows what to expect without needing further elaboration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema provides no burden. The description appropriately omits parameter details, as there are none to explain, matching the baseline for no-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get current server status and configuration,' specifying the verb and resource. It also enumerates the return fields (Python version, session count, configuration, limits), distinguishing it from sibling tools that focus on code execution or session management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this tool is for retrieving server-level status and configuration, which implies the appropriate use case. While it doesn't explicitly name alternatives or exclusions, the tool's purpose is sufficiently distinct from siblings like list_sessions or run_code, so an agent can readily determine when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations to disclose essential stateful behavior: variables persist across calls, the 'result' variable does not persist, and the tool returns a JSON summary. This is critical context that annotations (readOnlyHint=false, idempotentHint=false) do not provide, and it is explained with a concrete example to prevent misuse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: it states the core purpose first, then explains the persistence model, illustrates a correct workflow, and ends with return value info. Every sentence contributes to understanding the tool's behavior without unnecessary fluff or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stateful code-execution tool, the description covers the essential mechanics: persistence, result variable semantics, and return format. It omits session_id handling (covered by schema) and does not discuss error scenarios, but with the provided output schema and workflow example, the overall picture is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description adds significant meaning to the 'code' parameter by explaining the persistent namespace and result-variable contract, complementing the schema's brief descriptions. However, it does not mention 'session_id' at all, leaving that parameter's semantics entirely to the schema. The description enriches the main parameter but not the secondary one.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool executes Python code with a persistent namespace, immediately distinguishing it from siblings like repl_run_file (runs files) and repl_install_package (installs packages). The verb 'Execute' plus the resource 'Python code' and the key behavior 'persistent namespace' make the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on how to use the persistent namespace: assign variables to persist them, use named variables, and reserve 'result' for returning output. It even includes a correct workflow example. However, it does not explicitly mention when to use this tool over alternatives (e.g., repl_run_file) or state exclusions, though sibling names make the distinction obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/aazizisoufiane/mcp-python-repl'
If you have feedback or need assistance with the MCP directory API, please join our Discord server