portal
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool has a clearly distinct purpose: listing vs inspecting, killing one vs all, clearing data vs removing process, and reading vs writing vs signaling. The process_* and program_* prefixes further separate management from registry operations, leaving no ambiguity.
Naming Consistency5/5All tools follow a consistent noun_verb snake_case pattern, with process_ for process operations and program_ for registry operations. Verbs are descriptive and uniform (list, inspect, kill, read, write, etc.), making the pattern predictable.
Tool Count5/5With 13 tools, the set is well-scoped for a process management server, covering start, interaction, monitoring, control, and cleanup. Each tool earns its place and the count is appropriate for the domain.
Completeness5/5The tool surface covers the full lifecycle of managed processes: start, read, write, signal, kill, clear, cleanup, list, inspect, and screen snapshot. The program registry adds query/record for PTY decisions, completing the workflow without evident gaps.
Average 4.2/5 across 13 of 13 tools scored. Lowest: 3.2/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 49 commits in the last 12 weeks
- Last stable release on
- 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
- Behavior1/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 merely restates the tool name with 'managed' added, and gives no warning about irreversibility, side effects, or that this terminates all processes. For a destructive operation, this is a significant omission.
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 a single concise sentence that front-loads the verb and object. It is appropriately sized for a zero-parameter tool, with no wasted words.
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?
While the tool is simple, the description omits critical context for a kill-all operation: whether it is destructive, what 'managed processes' means, and what happens afterward. With no output schema or annotations, the description is insufficient for safe invocation.
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?
There are zero parameters, so the baseline is 4. The description does not need to explain parameter meanings, and none are present. It does not add any parameter semantics, but none are needed.
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 'Kill all managed processes' clearly states the action (kill) and the scope (all managed processes), and distinguishes from the sibling tool process_kill (which presumably targets a single process).
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?
There is no guidance on when to use this tool versus alternatives, no exclusions, and no mention of prerequisites or consequences. The description only states what it does, not when it should be selected.
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 the full burden. It discloses destructive behavior ('Remove... all its data') and the status constraint, but does not mention error handling, reversibility, or consequences of calling on non-eligible processes, leaving some ambiguity.
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 a single sentence, efficient and free of redundancy. It conveys purpose and eligibility without unnecessary 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 simple tool with one parameter and no output schema, the description covers the core purpose and usage constraint. It could be more complete by specifying outcomes for invalid calls, but overall it is adequate and not misleading.
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 fully describes the 'id' parameter (100% coverage), and the description adds no additional meaning beyond the schema. The baseline of 3 applies as the schema does the heavy lifting.
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 action ('Remove a terminated process and all its data'), with a specific resource and scope. It distinguishes from siblings like process_kill and process_clear by focusing on terminated processes and their data cleanup.
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 an explicit eligibility condition ('Only allowed for processes with status 'exited' or 'killed''), giving clear when-to-use context. It does not explicitly name alternatives or discuss when not to use, but the constraint implicitly guides usage among sibling tools.
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?
Without annotations, the description must disclose behavioral traits. It does state two important behaviors: the process is killed and its output data is retained. It also implies that process_cleanup is needed to remove the data. However, it does not clarify whether the kill uses a specific signal, whether it is reversible, or what happens to the process's resources beyond output retention. This is adequate but leaves gaps.
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 short sentences that each earn their place. The first states the core action, the second adds critical behavioral context and points to the cleanup tool. No waste, front-loaded with the primary verb.
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 tool's simplicity (one parameter, no output schema, no annotations), the description covers the essential information: what it does, what happens to output, and how to fully clean up. It is slightly incomplete in not specifying return behavior or whether the kill is graceful, but for a simple kill operation this is sufficient.
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 fully documents the single parameter 'id' as an internal process ID (100% coverage). The description adds no additional meaning about the parameter, but since the schema already covers it, a 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 states the exact action ('Kill a single process') with a specific verb and resource. It distinguishes from siblings by explicitly saying 'single process' (contrasting with process_kill_all) and by indicating 'output data is retained' (contrasting with process_cleanup).
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 for when to use this tool: when you need to kill a process but retain its output. It explicitly names process_cleanup as the alternative for removing the output, and 'single process' differentiates from kill_all. It does not mention when to use process_signal or other alternatives, so it misses explicit exclusion guidance, but the core guidance is strong.
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 provided, the description carries the burden of disclosing behavior. It clearly states that records are deleted and the process table is preserved, which conveys the destructive nature and the scope of the operation. However, it does not mention reversibility, permissions, or other 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.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the main action, and contains no filler or redundancy. Every word earns its place.
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 tool with one parameter and no output schema, the description fully explains the tool's effect (clears I/O records, keeps process table) and is complete. No additional context is needed.
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 has 100% coverage with the parameter 'id' described as 'Internal process ID.' The description adds no additional meaning beyond the schema, so 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?
The description clearly states a specific verb ('clear') and resource ('all I/O records for a process'), and distinguishes itself from siblings like process_kill by noting the process table remains. This makes 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 Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by explaining that I/O records are deleted while the process table remains, but it does not explicitly state when to use this tool versus alternatives like process_cleanup or process_kill. No exclusions or alternative tool references 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 provided, the description carries the full burden of behavioral disclosure. It does an excellent job by revealing important platform-specific behaviors (PTY stderr_count always 0, chunk-based counts, exit_code null on Windows ConPTY). These details are not evident from the schema and are valuable for interpreting results. It could be more exhaustive about error cases or required privileges, but it goes beyond a simple statement of intent.
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: two sentences. The first sentence front-loads the core purpose, and the second adds essential caveats. No wasted words or redundant details. Every sentence earns its place, making it easy to quickly comprehend the tool's function and nuances.
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?
With no output schema, the description must give the agent a sense of what to expect. It mentions 'all metadata and per-stream I/O counts' and provides specific examples (stderr_count, exit_code) with caveats. This is moderately complete, though it could detail the full return structure or mention failure scenarios. Overall, it is sufficient for a single-process inspection tool.
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 has 100% coverage for the single parameter 'id' with the description 'Internal process ID.' The tool description does not add further semantics to the parameter, such as how to obtain the ID or any format constraints. Since the schema fully documents the parameter, the baseline 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?
The description clearly states a specific verb and resource: 'Get detailed information about a single process' including metadata and per-stream I/O counts. This distinguishes it from sibling tools like process_list (which lists processes), process_kill, and process_start, making its 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 usage context is clear: use this tool when you need detailed information about one process, identified by its id. It does not explicitly mention alternatives or exclusions, but the 'single process' phrasing combined with sibling names like process_list implies the appropriate selection. A direct pointer to process_list for listing would have earned a 5, but the context is otherwise unambiguous.
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 provided, the description carries the full transparency burden. It discloses important behavioral details: PTY processes only support SIGTERM, SIGKILL, and CTRL_C_EVENT, and other signals are 'rejected with an error.' It also gives a workaround for graceful interrupts. However, it does not mention what happens on a successful signal send (e.g., return value) or state that sending a signal like SIGKILL is destructive, though that is inherent to the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose, but the long list of signal names makes it somewhat bulky. However, every element serves a purpose: the signal list is a valuable reference not fully covered by the schema. The additional sentences about PTY limitations and process_write are concise and actionable. It could be improved by shortening the signal list (e.g., referencing a standard set) but remains appropriately sized for the tool's complexity.
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 tool's complexity (signal handling, PTY-specific behavior) and absence of an output schema, the description addresses the key contextual points: supported signals, error behavior for unsupported signals, and an alternative for graceful interrupts. It does not explain the return format on success, but that is less critical for this type of tool. Overall, it provides sufficient context for an agent to invoke the tool correctly.
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?
Schema coverage is 100%, so the baseline is 3. The description adds value by enumerating all acceptable signal names in its 'Available signals' list, which the schema only exemplifies ('e.g., SIGTERM, SIGKILL, SIGINT'). It also clarifies PTY-specific signal restrictions, complementing the schema's note about signal numbers. This goes beyond the schema's provided details, justifying a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Send a signal to a process by name or number.' It lists available signals, which distinguishes it from the more specific process_kill sibling, though it doesn't explicitly name alternative tools. The phrase 'by name or number' is slightly ambiguous—it could refer to the process or the signal—but the context and following signal list resolve it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it specifies which signals are supported for PTY processes and that others are rejected, and it explicitly recommends process_write as an alternative for graceful interrupts ('For a graceful interrupt use process_write: send and a carriage return as two separate writes'). This clearly tells the agent when to use this tool and when to use a sibling.
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 the full burden of behavioral disclosure. It explains that a miss is a normal result and provides thresholds for confirmed_count (>=2 settled, 1 is a hint). This is valuable context, though it does not describe the exact return structure or side effects (though none are expected for a query).
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 tightly structured in three sentences: purpose, usage timing, and result interpretation. Each sentence provides distinct and necessary information without redundancy or fluff.
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 one-parameter lookup with no output schema, the description covers the essential aspects: what it does, when to call it, and how to interpret results. It omits detailed return formatting, but the provided semantics are sufficient for correct usage in the intended workflow.
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 single parameter 'program' is fully described in the schema with an example ('ssh'). The tool description does not add parameter-specific semantics or format details, so the baseline score of 3 for high schema coverage 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 states a specific action ('look up') on a specific resource ('persistent program registry') and clarifies the goal ('whether a program needs a PTY'). It clearly distinguishes itself from sibling process-management tools by focusing on registry querying rather than process operations.
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 gives explicit temporal guidance: 'Call BEFORE process_start.' It also explains how to interpret a miss and apply decision rules. However, it does not mention when not to use the tool or direct users to alternative tools, which prevents a perfect score.
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 the full burden of behavioral disclosure. It does this well by detailing what needs_pty means (TTY error, hang in pipe mode, TUI rendering) and setting the policy to record every first-encounter conclusion, including negatives. It also specifies notes content with an example. Missing details about behavior for existing records or persistence semantics, but it covers the essential behavioral traits.
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 front-loaded, with no unnecessary words. The first sentence establishes the primary purpose and the key parameter semantics; the second sentence adds an important usage directive and notes guidance. 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?
Considering the tool's simplicity (3 parameters, no output schema, no annotations), the description is quite thorough. It explains the purpose, the meaning of the boolean, the recording policy, and what to include in notes. It doesn't address what happens if a record already exists (whether it updates or errors), which is a minor gap for a registry tool, but overall it is adequate for the intended use.
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?
Schema coverage is 100%, providing baseline descriptions for all parameters. The description adds extra meaning beyond the schema: it clarifies the semantic meaning of needs_pty with concrete detection criteria, explains that negatives should also be recorded, and gives an example for notes. This goes beyond the baseline of 3.
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 with a specific verb ('Record') and resource ('confirmed program fact in the persistent registry'), and it distinguishes itself from siblings like program_query by focusing on recording rather than querying. It also narrows the scope to needs_pty, making it highly specific.
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 on when to use the tool: after observing program behavior and confirming a first-encounter conclusion, including negatives. It does not explicitly name alternatives like program_query or state when not to use it, but the instructions are sufficiently clear for the intended use case.
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?
No annotations are provided, so the description carries the burden. It discloses that the tool return a list of summary information including specific fields, implying a read-only overview. It does not mention side effects, but for a simple listing tool this is adequate.
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 a single sentence that front-loads the action and resource, lists the returned fields, and contains no unnecessary words.
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 listing tool with no parameters and no output schema, the description provides the key return fields and states the scope ('all managed processes'). It is complete enough for an agent to select and invoke it correctly.
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 an empty input schema, so there are no parameter semantics to clarify. The baseline for zero-parameter tools is 4.
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 clearly states 'List all managed processes with summary info' with a specific verb (list) and resource (managed processes), and enumerates the summary fields, distinguishing it from sibling tools like process_inspect or process_kill.
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 for when to use this tool: to list all managed processes at a summary level. It does not explicitly exclude other tools or name alternatives, but the purpose is evident, and the sibling tools' names signal the distinction.
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 provided, the description carries the full burden of disclosing behavior. It states that the snapshot is pure but that passing cols/rows resizes the live PTY, and that the screen stays queryable until process_cleanup. It also explains buffer semantics. However, it does not describe the return value format, so it is not a perfect 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and packs a lot of behavioral detail into a compact paragraph. The buffer sentence is somewhat terse and could be clearer, and the overall structure is a single dense block rather than separated sections, but it remains efficient.
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 description covers when to use the tool, side effects, lifecycle, and parameter effects, which is strong for a tool with no output schema. The main gaps are the missing buffer parameter in the schema and the lack of an explicit return format, keeping it from being fully 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?
Schema descriptions are minimal, but the description adds meaningful context: cols/rows resize the live PTY first, and buffer is described as 'primary' or 'alternate'. However, the buffer parameter is not actually present in the input schema, which is a significant mismatch that prevents a perfect score.
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 'Snapshot the live screen of a PTY process' with a specific verb and resource. It further distinguishes from the sibling tool process_read by explicitly mentioning the TUI use case, making 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 Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'use this tool instead of process_read' for full-screen TUIs, providing a clear when-to-use instruction and naming the alternative. The note about the screen remaining queryable after exit also clarifies its lifecycle.
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?
With no annotations, the description carries full disclosure responsibility. It reveals significant behavioral traits: idle timer reset, PTY stderr merging, chunked records, prompts without newlines, and the short default window. This goes well beyond a generic 'read' statement.
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 front-loaded. The first sentence states the core purpose, followed by a short functional summary, then a tight paragraph with high-value edge cases. Every sentence earns its place with no redundancy.
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 description covers the essential behavioral quirks and usage advice, making it nearly complete for a read tool. It does not describe the return format (e.g., list of records), but the absence of an output schema is partially mitigated by the mention of 'records' and 'chunks'. A brief note on return shape would push this to 5.
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?
Schema already describes all parameters (100% coverage). The description adds context around duration ('default window is only 1s') and the source parameter for PTY processes, reinforcing the interaction between unit and duration. This elevates it above the baseline 3, though the schema already carries most parameter meaning.
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 'Read output from a process' – a specific verb and resource. It immediately distinguishes this from sibling tools like process_write, process_list, and process_kill. The scope ('specified time window') and the additional behavior ('Resets the process idle timer') further clarify purpose.
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?
Provides clear situational guidance, such as 'Read with a generous duration — the default window is only 1s' and explains PTY-specific behavior (stderr merged, chunks not lines). However, it does not explicitly name alternatives or state when not to use this tool, so it stops short of a 5.
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 behavioral burden. It discloses return values (internal process ID, OS PID, initial status), PTY vs pipe behavior, and hang risks. However, it omits details on failure modes, cleanup, and interaction after start, leaving some transparency gaps.
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 efficiently structured: a front-loaded purpose statement, return value summary, then a focused PTY guidance paragraph. Every sentence adds value, and the length is appropriate for the complexity of the tool.
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 start command, the description covers the essential context: when to use, return values, and the critical PTY decision. Missing lifecycle details (how to interact later) are implied by sibling tools, so the description is reasonably complete without an output schema.
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?
Schema coverage is 100%, so the baseline is 3. The description enriches the 'pty' parameter with detailed guidance and examples well beyond the schema, but does not add value for other parameters (cwd, env, etc.) beyond what the schema already provides.
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 starts a subprocess for interactive use, with specific examples (SSH, GDB, psql). It explicitly contrasts with one-shot commands, distinguishing its purpose from sibling tools like process_list or process_kill.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use ('interactive programs'), when-not-to-use ('not for simple one-shot commands'), and alternative approaches ('pipe mode with --no-pager/GIT_PAGER=cat'). It also instructs to consult program_query before starting, offering clear decision 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?
Discloses that written input reappears in the output stream as echo, cautions against re-sending it, and explains that KeyboardInterrupt traceback is expected. This goes well beyond any annotation (none provided) and covers critical PTY behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose in the first sentence, followed by necessary behavioral caveats and usage guidance. It is relatively long but every sentence provides value, and the structure is logical.
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?
Covers the main usage, conditional availability, echo behavior, interrupt handling, and fallback alternatives. No output schema exists, but the description adequately addresses the tool's complexity.
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 already fully describes both parameters (id and content) with 100% coverage. The description reinforces that content is written to stdin but adds no additional parameter semantics beyond that.
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 first sentence uses a specific verb 'Write' and resource 'process's stdin', clearly differentiating it from sibling tools like process_read or process_signal. It also notes the availability constraint 'while process is running'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool for writing input, and directs to process_signal/process_kill as fallbacks for interrupts. Provides detailed usage instructions for sending Ctrl+C via two separate writes, including the reasoning about ConPTY line-buffering.
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/tiefeiyu/Portal'
If you have feedback or need assistance with the MCP directory API, please join our Discord server