hara-mcp
OfficialServer Quality Checklist
Latest release: v0.1.0-alpha.0
- Disambiguation5/5
Each tool serves a distinct purpose: eval executes inline source, call invokes a loaded var, check runs diagnostics, and runtime_get provides environment info. There is no meaningful overlap among the four tools.
Naming Consistency4/5Three tools follow a clean verb pattern (hara_eval, hara_call, hara_check), but hara_runtime_get uses a noun-verb ordering that slightly deviates. The prefix is consistent, and the naming remains intuitive overall.
Tool Count5/5Four tools is a tight, focused set for a niche language runtime server. Each tool earns its place without redundancy or bloat.
Completeness4/5The core execution and checking workflow is well covered. A minor gap is the lack of an explicit var-loading or listing mechanism, but since call assumes pre-loaded vars, this may be handled externally.
Average 3.8/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- 2 of 9 community issues answered or closed in the last 6 months
- 4 commits in the last 12 weeks
- No stable releases found
- 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.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it's read-only and non-destructive. The description adds that it runs in a fresh restricted sandbox and that arguments are never concatenated into source, which provides security context. However, it doesn't detail error behaviors, output format, or side effects beyond annotations. It doesn't contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, two sentences, front-loaded with the verb 'Invoke' and key context. Every word adds value, no filler.
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?
With 5 parameters including nested `limits` and a complex recursion, the description lacks sufficient detail. It doesn't explain why `source` is a parameter (seems redundant with 'already-loaded' but maybe it's the source form), or how `limits` affect execution. Output schema exists, but that doesn't cover parameter guidance. The description leaves too much to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description doesn't explain any parameters individually. It mentions 'transfer-safe arguments' and 'qualified Hara Var' but doesn't specify what `namespace`, `symbol`, `source`, or `limits` mean. With 5 parameters and many nested, the description should compensate but doesn't.
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 states the tool invokes a loaded Hara Var with transfer-safe arguments in a restricted sandbox, which is clear and specific enough. It distinguishes from siblings like hara_eval (which likely evaluates expressions) by focusing on calling a pre-loaded qualified variable, though it doesn't explicitly name these differences.
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?
It implies this tool is for invoking already-loaded vars, not loading them (distinguishing from hara_runtime_get and hara_eval), and mentions transfer-safe arguments for safety. However, it doesn't provide explicit criteria or when-not-to-use compared to alternatives, though context signals could help.
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 readOnlyHint annotation already indicates this is a non-destructive read operation. The description adds transparency by enumerating the specific data returned (host, build, sandbox profile, limits, availability), which is helpful context but does not go beyond the annotation's safety indication.
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 packed with specific technical terms (execution host, runtime build, sandbox profile, limits, availability). There is no redundancy or fluff; every word contributes to the meaning.
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 has no parameters and a simple getter role, the description sufficiently conveys what is returned. However, it does not specify the format or structure of the return value, and no output schema is provided, so some ambiguity remains. Still, the core purpose is clear.
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?
There are no parameters in the schema, so coverage is 100% by default. The description does not mention any parameters (as none exist), but it also does not add any extra context about how the tool selects the runtime, which could be relevant. Since schema coverage is full, 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 the action ('Return') and specifies the resource (Hara runtime information) with distinct attributes (execution host, runtime build, sandbox profile, limits, availability). This distinguishes it from sibling tools like hara_eval and hara_call, which likely perform evaluations or calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the siblings (hara_eval, hara_call, hara_check). It does not state that this should be called before evaluating or calling, nor does it mention any alternatives. This leaves the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds valuable context: the check is 'bounded', runs in a 'fresh restricted pure sandbox profile', and returns 'structured diagnostics'. This goes beyond the annotations, though the 'same sandbox profile' reference is slightly ambiguous without knowing what it is the same as.
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, dense sentence that front-loads the action, enumerates the check types, and conveys the key context (bounded, fresh sandbox, structured diagnostics) without wasted words. Every clause adds meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, check types, sandbox environment, and output nature, and an output schema exists to explain return values. However, it omits the semantics of the `limits` parameter, gives no guidance on error/failure behavior, and the 'same fresh restricted pure sandbox' phrasing is unclear without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to compensate, but it only mentions 'bounded' without explaining the `limits` object or its wallMs/outputBytes fields. It does restate the profile enum values, but those are already present in the schema. The `source` parameter semantics are implied by the title, not detailed.
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 ('Run') and resource ('check' on Hara source), enumerates the exact check varieties (reader, compile, namespace, lint, test), and clarifies the sandbox context and output type. This clearly differentiates it from sibling tools like hara_eval or hara_call by emphasizing diagnostics-producing checks.
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 when to use this tool: whenever a bounded compile/lint/test/namespace/reader check is needed. However, it does not explicitly state when not to use it or name alternatives like hara_eval or hara_call, leaving the decision to the agent's inference.
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?
Annotations already mark readOnlyHint=true and destructiveHint=false, but the description adds crucial behavioral details: 'fresh restricted, no-network, no-browser, non-persistent sandbox' and 'enrolled compatible host.' This goes beyond the annotations and helps the agent understand side effects and prerequisites.
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 is front-loaded with the core purpose and environment details. It is concise with no filler or redundant content, earning the highest score for structure.
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 execution environment and prerequisites ('enrolled compatible host') but does not explain parameter details, return behavior, or failure modes. Since an output schema exists, return value explanation is less critical, but the absence of parameter guidance creates a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. However, it does not mention 'source' or 'limits' at all. While the schema is self-explanatory for some (source is a string, limits has wallMs/outputBytes), the description adds no meaning, leaving agents to infer parameter semantics from names alone.
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 'Evaluate' with the resource 'inline Hara source' and clearly states the environment (fresh restricted, no-network, no-browser, non-persistent sandbox). This distinguishes it from siblings like hara_call or hara_check, which imply different 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 implies usage for evaluating inline code snippets in a safe, isolated environment, but does not explicitly contrast with alternatives (e.g., when to use hara_call vs hara_eval). The provided context is clear but lacks explicit exclusions or alternative tool references.
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/hara-lang/hara-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server