Skip to main content
Glama

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.11

  • Disambiguation5/5

    Each tool targets a distinct action: running code, interrupting, checking overall status, checking specific execution status, reading output, searching output, waiting, and resetting. No tool overlaps in purpose; an agent can clearly differentiate them.

    Naming Consistency4/5

    Most tools follow a verb_noun pattern (run_python, interrupt_python, read_python_output, etc.), but python_status and python_execution_status start with nouns, breaking the pattern slightly. Still, all are snake_case and readable.

    Tool Count5/5

    With 8 tools covering execution, status, output retrieval, searching, waiting, interrupting, and resetting, the count feels well-scoped for a Python kernel interaction server. Not too many or too few.

    Completeness4/5

    The tool surface covers essential operations for persistent Python execution: submission, status checks, output reading (including streams), search, interrupt, wait, and reset. A minor gap is the lack of a tool to list all historical executions, but the server's design allows referencing them by number.

  • Average 4.2/5 across 8 of 8 tools scored. Lowest: 3.6/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 61 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under Apache 2.0.

  • 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.json to 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?

    No annotations are provided, so the description carries the full burden. It explains the line_range format and complete reading behavior, and notes that max_chars only truncates output without altering saved text. However, it does not mention safety, idempotency, or side effects, leaving some gaps.

    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 well-structured with sections for stream selection, line coordinates, and complete reading. It is front-loaded with the purpose. While slightly lengthy, it remains efficient and avoids unnecessary details.

    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 no output schema and no annotations, the description covers stream selection and line ranges adequately but does not specify the return format or any error conditions. It is sufficient for basic usage but lacks some contextual details.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the baseline is 3. The description adds some value with examples for line_range and clarifies allowed values for stream, but the schema already details each parameter. The added information is helpful but not critical.

    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 reads a specified output stream from an execution. It distinguishes itself from sibling tools like search_python_output by focusing on reading rather than searching, and mentions the selection rules are shared with python_execution_status.

    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 referencing the selection rules of python_execution_status and describing complete reading scenarios, but it does not explicitly state when to use this tool versus alternatives like search_python_output. Guidance is implicit rather than explicit.

    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?

    With no annotations, the description carries full burden. It explains that running executions are killed, old kernel stops, new kernel created, and outputs remain accessible, but fails to mention that in-memory variables are lost upon restart, which is a critical behavioral trait for a reset operation.

    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 concise, with a clear first sentence stating purpose, followed by a structured section on boundaries and returns. No unnecessary information, though it could be slightly more compact.

    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?

    Covers key behaviors (killing running, preserving outputs, new kernel) and return values, but misses mentioning variable loss and does not explain internal terms like 'loommux'. Given moderate complexity, additional context would improve completeness.

    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?

    No parameters exist (empty schema), and the description adds value by explaining what the reset entails and the return values (status, PID, error). Baseline for zero parameters is 4, and the description meets that expectation.

    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?

    Clearly states 'restart IPython kernel' with a specific verb and resource, and distinguishes from siblings by noting preservation of execution history. The description explicitly contrasts with other tools like run_python or interrupt_python.

    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 use when a kernel reset is needed, and explains the behavior, but lacks explicit guidance on when to use this tool versus alternatives (e.g., interrupt_python) or prerequisites. No 'do not use if' statements are provided.

    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?

    With no annotations, the description carries full burden and discloses important behavioral details: workspace_resolution limits, non-exposure of private runtime, diagnostic-only execution counts, and IPython ZMQ capabilities.

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

    Conciseness3/5

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

    The description is structured but somewhat verbose, including an ASCII art code block that may not be essential. The key information is front-loaded.

    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 no output schema and 0 parameters, the description is comprehensive, covering all returned fields, limitations, and the IPython connection. It is complete for a status tool.

    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 tool has zero parameters, so baseline is 4. The description does not need to add meaning beyond the schema, which is empty.

    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 explicitly states it returns the observation status of workspace, kernel, and recent execution. It lists specific fields and distinguishes itself from other tools by its broad scope (workspace + kernel + execution).

    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 does not explicitly state when to use this tool versus alternatives like `python_execution_status`. Usage is implied by its purpose, but no explicit guidance or conditions are provided.

    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?

    With no annotations, the description bears full burden. It details query modes (literal, regex, auto with fallback), hit context marking (M/C tags), and selection behavior. This goes beyond the schema but lacks mention of performance, permissions, or side effects.

    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?

    Description is structured with headers and bullet points, using concise language. Each section serves a purpose. Slightly verbose due to technical details, but overall efficient.

    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?

    Covers all 8 parameters, execution selection, stream options, and result markings. Lacks explicit return structure details, but the context markers imply response format. Adequate for a search tool without output schema.

    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 coverage is 100%, so baseline is 3. The description adds significant value by explaining how query_mode auto works (regex first, fallback to literal), the meaning of context markers, and the default stream behavior.

    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 searches text or regex in a specified output stream of an execution, with detailed selection rules. It is distinct from siblings like read_python_output (which reads full output) and python_execution_status (which checks status).

    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 mentions that execution selection rules are the same as python_execution_status and stream values match read_python_output, providing implicit context. However, it does not explicitly state when to prefer this tool over alternatives or include when-not-to-use guidance.

    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?

    Without annotations, the description fully discloses key behavioral traits: it only works on running records, signal sent does not mean final state, and kernel idle leads to idle return. This provides important context beyond the basic action.

    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 concise, well-structured with sections, and front-loaded. Every sentence adds value with no wasted words.

    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?

    The description covers the tool's action, scope, and return behavior. It could mention potential errors or preconditions, but for a simple interrupt signal with no parameters, it is fairly complete.

    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?

    No parameters exist, so baseline 4 applies. The description adds no param details (none needed).

    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 'Send kernel interrupt signal to currently running execution', specifying the verb and resource. It distinguishes the tool's action from siblings (run, status, read, etc.) by focusing on interruption.

    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 explains the tool's behavior but does not explicitly guide when to use it over alternatives like wait_python or reset_python. The semantic distinction is implied but not 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?

    With no annotations, the description carries full burden. It discloses that the tool does not return full output, describes default selection logic, and mentions the `execution_not_found` error. It does not cover side effects or authentication, but for a read-only status check this is acceptable.

    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 efficient: a one-sentence purpose followed by a clear bullet list of selection rules. Every sentence adds value, no wasted text.

    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 no output schema, the description explains the return type (status & metadata, not full output) and selection logic. It could list specific status fields or clarify differences from `python_status`, but for a focused tool it is largely complete.

    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 coverage is 100%, so baseline is 3. The description adds value by explaining the default selection rules (running, then recently accepted) and the error case, going beyond the schema's simple description.

    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 that the tool returns execution status and metadata, not the full output. This distinguishes it from output reading tools like `read_python_output`. The verb '返回' and resource 'execution 的状态与元数据' are precise.

    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 explicit selection rules for the `execution` parameter, detailing when to provide it and the default behavior (running, then recently accepted). However, it does not contrast with the similar sibling `python_status`, so tool-level guidance is slightly lacking.

    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?

    No annotations provided, but description fully discloses behavioral traits: waiting does not interrupt execution, full output delivery for # loommux: --full-output, returns 'running' for incomplete full-output runs. Contradictions: none.

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

    Conciseness3/5

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

    Description is well-structured with sections but verbose (repeats schema defaults). Could be more concise by avoiding redundant parameter details. Every sentence adds value but length is suboptimal.

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

    Completeness5/5

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

    Despite no output schema, description explains return behavior: on timeout returns running status, on completion returns status or full output. Covers edge cases like --full-output in running state. Complete for a wait tool.

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

    Parameters3/5

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

    Schema covers both parameters with full descriptions (default, type, behavior). Description mainly reiterates schema info without adding new meaning. Baseline 3 with 100% schema coverage is appropriate.

    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 it waits for an execution to end or returns its current status on timeout, with specific verb '等待' and resource 'execution'. It distinguishes from siblings like interrupt_python and read_python_output by focusing on waiting behavior.

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

    Usage Guidelines5/5

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

    Explicitly explains when to use this tool (wait for execution), mentions timeout only ends tool call not execution, and suggests alternatives like read_python_output or re-calling the tool. Selection rules reference sibling python_execution_status.

    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?

    No annotations are provided, so the description fully carries the behavioral disclosure burden. It reveals key behaviors: default 10-second wait timeout, the use of # loommux: directives, handling of full output and truncation, image display, execution ID assignment, and error responses for invalid directives. It is comprehensive and transparent.

    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 well-structured with clearly labeled sections (输入, 等待上限, 完整输出, etc.), front-loaded with the purpose, and every sentence contributes necessary information. It is appropriately sized for the complexity of the tool, with no wasted text.

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

    Completeness5/5

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

    Given the moderate complexity (1 parameter, no output schema), the description covers input format, directives, default behaviors, error handling, follow-up tools, and output truncation. It provides a complete understanding of how the tool functions and what to expect, making it self-sufficient for an AI agent.

    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?

    There is only one parameter 'freeform' with 100% schema description coverage, establishing a baseline of 3. The tool description adds significant value beyond the schema by explaining how to embed # loommux: directives for controlling wait and output behavior, thus enriching the meaning of the parameter.

    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 starts with a clear statement: '向持久 IPython kernel 提交一个原始 Python cell.' It specifies the verb (submit) and resource (raw Python cell to persistent IPython kernel), distinguishing it from siblings like wait_python or read_python_output which handle follow-up actions.

    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 explicitly tells when to use sibling tools: '使用 wait_python 等待,使用 python_execution_status 查看状态,使用 read_python_output 或 search_python_output 读取或搜索保留的输出.' It does not mention interrupt_python as an alternative, which is a minor gap, but overall provides clear context on when to use this tool vs others.

    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

loommux MCP server

Copy to your README.md:

Score Badge

loommux MCP server

Copy to your README.md:

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/MichengLiang/loommux'

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