mcp-rport
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
Most tools have clear resource+action boundaries: clients, tunnels, groups, status, and auth are all distinct. The main overlap is rport_exec_command and rport_ssh_exec, both executing commands on clients, but their descriptions clearly separate the agent channel from SSH-based execution.
Naming Consistency4/5All tools share the rport_ prefix and mostly follow predictable verb_noun naming like list_clients, get_client, create_tunnel, delete_tunnel. Minor deviations such as rport_whoami and rport_ssh_exec break the otherwise consistent pattern.
Tool Count5/5Ten tools is well-scoped for an RPort management server. Each tool serves a distinct operational need without redundancy or feature bloat.
Completeness4/5The core liecycle is covered: clients can be listed and inspected, tunnels have list/create/delete, and commands have two execution paths. Minor gaps include no tunnel detail view and no group management beyond listing, but these are workable limitations.
Average 3.9/5 across 9 of 10 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 5 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
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
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?
With no annotations provided, the description carries the burden of behavioral disclosure. It usefully indicates this is a status/read-style operation and enumerates the returned content categories, but it does not state that no changes are made, describe response format, or mention any access considerations.
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 includes the key outcome and the main content fields. It has no filler, repetitions, or irrelevant 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?
Given the zero-parameter signature and the simple status-query nature, the description provides sufficient context by naming the principal return areas: version, connected clients, and configuration summary. It does not specify exact output formatting, but that is not essential for an agent to invoke this tool successfully.
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 there is no semantic burden on the description to explain inputs. The empty schema is fully self-explanatory, making the baseline of 4 appropriate.
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 identifies the resource (RPort server) and the type of information returned: version, connected clients, and summarized configuration. It is distinguishable from siblings like rport_list_clients or rport_whoami, though it does not explicitly contrast itself with them.
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 gives no explicit guidance on when to use this tool versus alternatives such as rport_list_clients or rport_get_client. Usage must be inferred from the word 'Estado' and the tool name, which is insufficient for clear decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the operation is to close an active tunnel, but it does not disclose consequences such as the tunnel being terminated, whether the action is irreversible, what happens if the tunnel is already closed, or any permission/authorization requirements. For a mutating operation, this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. The action is front-loaded, and the parameter requirements are stated compactly. Every word contributes to understanding how to invoke the 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?
For a simple two-parameter tool, the description covers the core action and identifies the source and format of tunnel_id. However, since there are no annotations and no output schema, it would be stronger if it mentioned the effect of closing the tunnel, possible error conditions, or confirmation of success. The essentials are present, but the operational context is incomplete.
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 coverage is 0%, so the description must compensate. It does add useful meaning by explaining that tunnel_id can be a numeric ID or UUID returned by create or list. However, client_id receives no additional explanation beyond its name, and no format or lookup guidance is given for it. The description partially compensates but is not thorough.
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 starts with a specific verb 'Cierra' (closes) and identifies the resource as 'un túnel activo' (an active tunnel). This clearly distinguishes it from siblings like rport_create_tunnel, which creates, and rport_list_tunnels, which lists.
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 explicitly states the required inputs (client_id and tunnel_id) and tells the agent where tunnel_id comes from: 'el id numérico o UUID que devolvió create o list'. This gives clear context for when to call the tool, though it does not explicitly name alternatives or exclusions.
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?
No annotations are provided, so the description carries the burden of behavioral disclosure. It does disclose optional behavior around including processes and mount points, and 'Detalle' implies a read operation. However, it does not clarify response shape, potential errors, or whether the optional includes change the output structure.
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 with the core purpose front-loaded. It wastes no words and directly conveys the resource, the key identifier, and optional extensions. This is an efficient, well-structured description.
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 get-by-id tool with no output schema, the description covers the essential call semantics. Still, it lacks explicit guidance on response structure and what 'detalle' includes by default. The optional flags are described, but an agent might need more context about default behavior when they are omitted.
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 100%, so the schema already documents all three parameters. The description adds little beyond what the schema provides, repeating that processes and mount points can be optionally included. The baseline of 3 is appropriate since no compensation is 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 clearly states the tool's purpose: retrieving details of a single RPort client by id. It also mentions optional process and mountpoint data, distinguishing it from list-oriented siblings like rport_list_clients. The verb-resource combination is specific 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 usage: call it when you need details for a specific client id. However, it does not explicitly state when to prefer this tool over alternatives, such as rport_list_clients or rport_get_status. Usage context is inferable but not made 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?
No annotations are provided, so the description carries the behavioral disclosure burden. It does add useful scope context: only active tunnels, only those visible to the token user, and all clients are included. It does not explicitly state that the operation is read-only or describe the response format.
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 with no filler. The most important scoping information, 'active' and 'visible to the token user,' is front-loaded and immediately actionable.
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 zero-parameter, list-only tool with no output schema, the description is nearly sufficient. An agent can select and invoke it confidently, though the exact response structure remains implicit.
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 baseline is 4. The description appropriately implies that no arguments are needed; there are no parameter semantics to clarify.
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 identifies the resource (tunnels), the condition (active), and the scope (visible to the token user, across all clients). This is specific enough to distinguish it from client/group listing siblings, though it is phrased as a noun phrase rather than an explicit verb+resource statement.
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 intended use is implied: call this tool to see active tunnels visible to the token user. However, it does not explicitly name alternatives or state when NOT to use it, such as when creating or deleting a tunnel.
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?
No annotations are provided, so the description carries the burden of behavioral disclosure. It states what information is returned (user and groups), which is useful, but it does not explicitly state that this is a read-only operation with no side effects. The whoami name strongly implies a safe query, so this is adequate but not fully 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately states the tool's core purpose. There is no filler, redundant information, or repetition of the tool name beyond its semantic 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 zero-parameter identity tool, the description covers the essential information: the authenticated user and group membership. It does not describe the exact response format, and there is no output schema, but the simplicity of a whoami operation makes this gap minor.
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 description confirms it needs no inputs by focusing entirely on the identity and group output. With no parameters to document, the description provides as much parameter-related clarity as needed.
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 identifies the tool as returning the authenticated RPort user and their group memberships, which is distinct from the sibling tools that list clients, tunnels, or status. It lacks an explicit verb like 'gets' or 'returns,' but the whoami name and description make the 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 this tool is for checking the current authenticated user's identity and group memberships, and the name 'whoami' reinforces that. However, it provides no explicit guidance on when to prefer this tool over alternatives or when not to use it.
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?
The word 'Lista' implies a read-only listing behavior with no mutation, but with no annotations and no output schema the description does not disclose any additional behavioral traits such as return format, ordering, or authentication requirements. It is minimally transparent for a simple list 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?
A single front-loaded sentence with no filler or redundant information. Every word contributes to identifying the action and resource.
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 zero-parameter read-only listing tool, the description is essentially complete for invocation: an agent knows what the tool does and needs no arguments. It loses one point because it does not mention what the returned list contains (e.g., IDs, names) and no output schema is present to fill that gap.
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 input schema has zero parameters and schema description coverage is 100%, so there are no parameter semantics for the description to clarify. The baseline of 4 for a zero-parameter tool applies.
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 'Lista' (list) with a clear resource, 'grupos de clientes definidos en RPort' (client groups defined in RPort). This clearly distinguishes it from sibling rport_list_clients, which targets individual clients, and from read/status tools.
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 guidance is provided on when to choose this tool over alternatives such as rport_list_clients or rport_get_client. The context around client groups vs. clients is implied by the name, but the description itself gives no explicit when-to-use or when-not-to-use instructions.
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?
No annotations are provided, so the description carries the burden of behavioral disclosure. It adds useful context by stating the default field projection (estado, hostname, IPs, tags, túneles) and filtering behavior. It does not explicitly mention pagination, read-only guarantees, or auth expectations, though the verb 'Lista' does imply a non-mutating call.
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 compact sentences with no filler. It front-loads the core action and then provides the most useful behavioral details about default fields and filtering.
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 list tool with 8 optional parameters, no required parameters, and no output schema, the description covers the core operation, default projection, and filter options, while the schema documents every parameter. Minor gaps remain: pagination is not mentioned in prose and the response shape is only summarized via the default-fields list.
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 100%, so all 8 parameters are already documented with details such as wildcard support, exact tag matching, sort fields, and default limit. The description's filter summary mostly paraphrases the schema rather than adding new semantic meaning, so a baseline score 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 uses the verb 'Lista' with the resource 'clientes RPort', making it clear this is a client listing operation rather than a single-client detail call. It is distinguishable from siblings like rport_get_client (singular) and rport_list_client_groups (groups), and it adds specificity by naming default fields and filter modes.
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 states that this lists RPort clients and enumerates available filters (name, hostname, state, free search), which implies when it should be used for broad client queries. However, it does not explicitly contrast with rport_get_client or other sibling tools, so when-not-to-use guidance is missing.
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 behavioral burden and does so well: it discloses the execution channel, the path requirement, a filter-related restriction, and the return value (stdout/stderr when the job finishes). It does not mention potential side effects of arbitrary command execution or auth requirements, but the key traits an agent needs are present.
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?
Four short sentences, each earning its place: purpose/channel, path guidance, pipe warning, and return value. Purpose is front-loaded in the first sentence. Slightly dense, but no 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?
For a 5-parameter, no-annotation, no-output-schema execution tool, the description covers the essential operational constraints: channel, path expectations, filter limitations, and what the response contains. The main gaps are failure behavior and side-effects of command execution, but the given information is sufficient to invoke the tool correctly in most cases.
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 coverage is 60% (command, client_id, timeout_sec documented), so baseline is 3. The description reinforces the command parameter's absolute-path requirement and adds the deny-filter constraint, which goes slightly beyond the schema. However, it adds nothing about cwd or is_sudo, which remain undocumented in both schema and 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?
States a specific verb (Ejecuta), resource (cliente RPort), and execution channel (canal del agente, sin túnel SSH) in the first sentence. This directly distinguishes it from rport_ssh_exec among the siblings. The scope of what the tool does is immediately 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?
Gives concrete practical guidance: Linux usually requires absolute paths, and pipes/redirections should be avoided when the client's deny filter is active. The 'sin túnel SSH' phrasing contrasts it with the SSH-based sibling. It stops short of explicitly naming rport_ssh_exec as the alternative, but the context is clear enough.
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 and discloses genuinely useful behaviors: the local port lands on iot.console.queo.com.co, the ACL defaults to the MCP's egress IP, and the tool does not execute SSH but returns the command instead. It does not cover cleanup, tunnel lifetime, or permission requirements, but the key operational traits are present.
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?
Four short sentences, each earning its place: purpose, host context, SSH recipe, and behavioral caveats. Purpose is front-loaded and there is zero filler or repetition of schema 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 tool with 11 parameters and no output schema, the description covers the essentials: host endpoint, SSH usage, default ACL, and return behavior ('devuelve el comando a usar'). It could mention cleanup via rport_delete_tunnel or tunnel lifetime, but the high schema coverage fills the remaining parameter gaps, making this adequately 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 coverage is 91% (high), so the baseline is 3. The description adds value beyond the schema by giving a concrete parameter recipe (remote=22, scheme=ssh) and explaining the ACL default behavior, which helps the agent choose correct values rather than just knowing field types.
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+resource pair ('Crea un túnel inverso en un cliente activo') that clearly distinguishes it from siblings like rport_list_tunnels, rport_delete_tunnel, and rport_exec_command. It also states a prerequisite (active client) and clarifies it is a reverse tunnel, so an agent can tell it apart without opening the schema.
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 context: 'Para SSH usa remote=22 y scheme=ssh' gives a concrete recipe, and 'No ejecuta SSH' sets an implicit exclusion that routes SSH execution toward sibling rport_ssh_exec. However, it never explicitly names an alternative tool or states a when-not-to-use condition, 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 the disclosure burden. It reveals important behaviors: password sourced from RPORT_SSH_PASSWORD, tunnel closed at the end unless keep_tunnel=true, and shell features like pipes and sudo. It does not cover failure modes, return values, or timeout behavior, but the most critical operational details are present.
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?
Three sentences, no filler. The main action is front-loaded, followed by credential handling, the differentiation from rport_exec_command, and tunnel lifecycle. 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 five parameters, no output schema, and no annotations, the description covers the essential aspects: purpose, credential source, tunnel cleanup, and the capability difference from a sibling. It does not explain the output format, timeout behavior, or error handling, but the agent has enough to select and invoke the tool correctly in most scenarios.
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 60%, so the description must add meaning beyond the schema. It does: it explains the password source, the user fallback behavior (tries pi then queo), and the semantics of keep_tunnel. It does not describe client_id or timeout_sec, but the provided schema already defines their types and constraints.
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 verb and resource: creates an SSH tunnel and executes a command on the Pi as user pi or queo. It explicitly distinguishes itself from rport_exec_command by highlighting pipes and sudo support, making the purpose and differentiation clear.
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 names the alternative rport_exec_command and explains the key difference: this tool supports pipes and sudo. It also gives a practical guideline about the password coming from .env and never asking in chat. However, it does not explicitly state when not to use this tool or mention other alternatives like rport_create_tunnel.
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/LuisQueo/mcp-rport'
If you have feedback or need assistance with the MCP directory API, please join our Discord server