Skip to main content
Glama
lingeswaranTW

bahmni-mcp

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools target distinct resources (patient, encounter, observation, etc.), but createOrUpdateEncounterTransaction bundles multiple data types including diagnoses and orders, causing potential overlap with individual getters. Overall, tools are mostly distinct.

    Naming Consistency3/5

    All names use camelCase and start with verbs (get, search, createOrUpdate), but verb choice is inconsistent (e.g., findEncounters vs getVisitsForPatient, manageVisits is vague). The pattern is readable but could be more uniform.

    Tool Count4/5

    19 tools is a reasonable scope for a healthcare MCP, covering core entities without being excessive. The count feels appropriate for the domain.

    Completeness2/5

    The tool surface heavily favors read operations; write operations are limited to patient profiles and a single composite encounter transaction. Missing separate create/update for observations, diagnoses, orders, etc., which will cause agent failures in common workflows.

  • Average 2.5/5 across 19 of 19 tools scored. Lowest: 1/5.

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

    • No community issues in the last 6 months
    • 1 commit 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.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior1/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations present, the description must fully disclose behavioral traits, but it only says 'Search patients'. It fails to indicate whether the tool is read-only, what happens on no results, or any side effects. The agent gets no insight beyond the name.

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

    Conciseness1/5

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

    While extremely short, the description is under-specification rather than conciseness. It fails to earn its place because it provides no value beyond the tool name. A helpful description would front-load the search domain or fields.

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

    Completeness1/5

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

    Given the tool has one optional parameter and no output schema, the minimal description could still be adequate if it clarified the search scope or return format. However, it is completely incomplete—leaving ambiguity about functionality.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not explain the single parameter 'q'. At 0% coverage, the description must compensate, but it adds nothing—leaving the agent without any clue what the string parameter represents (e.g., name, ID, partial match).

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose1/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'Search patients' is a tautology—it merely restates the tool name without specifying what fields are searched or how the search works. It does not distinguish itself from sibling tools like findEncounters or getPatientById.

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

    Usage Guidelines1/5

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

    The description provides no guidance on when to use this tool versus alternatives, such as getPatientById for exact matches or findEncounters for encounter searches. It lacks any context about prerequisites or preferred scenarios.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior1/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, and the description offers no behavioral information such as read-only nature, response format, error conditions, or side effects. The agent gets no clue about what happens when the tool is invoked.

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

    Conciseness2/5

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

    Extremely concise at one sentence, but it is underspecified rather than efficiently informative. It sacrifices necessary detail for brevity.

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

    Completeness1/5

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

    Given the lack of output schema, annotations, and sibling context, the description is completely inadequate. It provides no information about what the tool returns or how it integrates with other tools.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not explain the single parameter 'uuid' (its format, source, or constraints). The agent cannot understand how to properly supply the parameter.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose2/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Description 'Get drug details' is vague and nearly tautological with the tool name. It does not specify what 'details' entails, lacking specificity to distinguish from sibling tools like getDrugOrders.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. It does not mention prerequisites, typical use cases, or scenarios where other tools like getDrugOrders or getPatientById would be more appropriate.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior1/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so description must disclose behavior. It only states it searches concepts with no mention of return format, pagination, side effects, or required permissions. Inadequate for a search tool.

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

    Conciseness2/5

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

    Extremely brief but missing critical information. Conciseness should not sacrifice clarity; here it does.

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

    Completeness1/5

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

    With no output schema and only one optional parameter, the description should at least specify what is returned and how to use the query. It is incomplete for tool invocation.

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

    Parameters1/5

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

    Schema description coverage is 0% and description does not explain the 'q' parameter. The parameter name alone is insufficient; agents need to know it accepts a search query string.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose2/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'Search standard concepts' is vague. It does not specify what 'standard concepts' refers to (e.g., OpenMRS concepts) and fails to distinguish from sibling 'searchTerminologyConcepts'. The purpose is unclear.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like 'searchTerminologyConcepts'. No context about prerequisites or typical use cases.

    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 provided, so description must disclose behavioral traits. It does not mention whether the operation is read-only, any side effects, rate limits, or maximum results. The description adds minimal behavioral information.

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

    Conciseness2/5

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

    The description is overly brief at just one sentence. While concise, it fails to include necessary detail, making it under-specified rather than efficiently complete.

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

    Completeness1/5

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

    With no output schema, no annotations, and incomplete parameter documentation, the description leaves the agent without enough information to correctly invoke the tool. Missing details like search behavior, max limit, and return format.

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

    Parameters1/5

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

    Schema coverage is 0%, meaning parameter descriptions are missing from schema. The description does not explain the meaning or constraints of 'term' or 'limit'. For a search tool, this is a critical gap.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose2/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'Search concepts/terminology' is vague and does not specify which concepts or terminology system. It fails to distinguish from sibling tool 'searchOpenMRSConcepts' which is more specific. The verb 'Search' is present but the resource is unclear.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like 'searchOpenMRSConcepts'. The description provides no context for selection.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior1/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries full burden but only says 'create or update' without disclosing behavioral traits like idempotency, merge behavior, required permissions, or data loss risks.

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

    Conciseness2/5

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

    The description is a single short sentence that is under-sized; it is too terse to be genuinely helpful and does not earn its place given the tool's complexity.

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

    Completeness1/5

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

    The description is extremely incomplete for an upsert tool with a nested object parameter, lacking return value, error handling, unique identifier details, and integration context with sibling tools.

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

    Parameters1/5

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

    The sole parameter 'body' is an undocumented object with 0% schema coverage, and the description gives no hint about expected fields or structure beyond 'demographics and identifiers'.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'create or update' and the resource 'patient demographics and identifiers', making the purpose specific and distinct from sibling tools like getPatientById or searchPatients.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives, such as when to create vs update, or prerequisites like patient identifier requirements.

    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 provided, and the description fails to disclose whether the operation is destructive, requires specific permissions, or has side effects. This is a significant gap for a mutation tool.

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

    Conciseness3/5

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

    The description is a single sentence, concise but lacking detail. It is not overly verbose but could benefit from more structure.

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

    Completeness1/5

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

    Given the complexity of bundling multiple entities and the sparse schema, the description is grossly incomplete. No information on required fields, expected body structure, or return values.

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

    Parameters1/5

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

    The only parameter 'body' is a generic object with no description; schema coverage is 0%. The description adds no meaning beyond the schema structure.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool bundles observations, diagnoses, orders, and dispositions into a single transaction, which clarifies its purpose. However, it does not explicitly mention the create-or-update nature implied by the name, making it slightly less precise.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool vs. alternatives like getObservations or getDiagnoses. The description lacks context for 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?

    With no annotations, the description carries full burden for behavioral disclosure. It states 'Void/delete an encounter' implying a destructive action, but fails to describe side effects (e.g., cascading deletions, reversibility, audit trail). An agent lacks critical information about the tool's impact.

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

    Conciseness2/5

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

    The description is extremely concise (3 words), but at the cost of under-specification. It lacks necessary details such as return behavior, prerequisites, or parameter explanation. True conciseness should be informative, not minimal.

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

    Completeness2/5

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

    Given the tool's complexity (1 parameter, no output schema, no annotations), the description is too brief. It fails to cover return values, error conditions, or the meaning of 'void' versus 'delete'. A complete description would include these elements to guide correct invocation.

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

    Parameters1/5

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

    The description provides no additional meaning for the single required parameter 'uuid'. With 0% schema description coverage, the agent must infer that uuid refers to the encounter's UUID. The description does not clarify format, constraints, or how to obtain valid UUIDs.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'Void/delete an encounter' clearly identifies the action (void/delete) and the resource (encounter). It distinguishes the tool from siblings like createOrUpdateEncounterTransaction and findEncounters, but lacks specificity on the nature of void vs delete. A more precise description would strengthen purpose clarity.

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

    Usage Guidelines2/5

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

    No usage guidelines are provided. The description does not mention when to use this tool, prerequisites, or alternatives among sibling tools like findEncounters for reading or createOrUpdateEncounterTransaction for modifications. This omission reduces its usefulness for an AI agent deciding which tool to invoke.

    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?

    The description fails to disclose any behavioral traits like authentication needs, rate limits, or side effects. Annotations are absent, increasing the burden on the description.

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

    Conciseness3/5

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

    The description is concise but overly minimal, missing essential details that would justify its length.

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

    Completeness1/5

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

    Without output schema or annotations, and with an undocumented parameter, the description is severely incomplete, leaving the agent without critical information for correct usage.

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

    Parameters1/5

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

    The single parameter 'body' (an object) is entirely undocumented. With 0% schema description coverage, the description offers no information about what fields or structure the body accepts.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'Search for encounters by parameters' clearly states the action and resource, but lacks differentiation from sibling search tools like searchPatients or searchOpenMRSConcepts.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool over alternatives, such as specific encounter retrieval methods or other search tools.

    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, and the description only implies a read operation via the verb 'get'. It does not disclose read-only behavior, error conditions, authentication needs, or any other behavioral traits. The description carries the full burden but fails to provide sufficient transparency.

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

    Conciseness2/5

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

    The description is extremely concise but under-specified. It is a single sentence that does not front-load key details or earn its place by adding value beyond the name. It sacrifices completeness for brevity.

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

    Completeness1/5

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

    Given the simplicity of the input (one parameter) and lack of annotations or output schema, the description is completely inadequate. It does not explain the purpose, usage, or expected outcome, making it nearly impossible for an agent to use correctly.

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

    Parameters2/5

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

    The schema has one parameter 'uuid' with 0% description coverage, and the tool description does not explain what UUID to use (e.g., which entity's UUID, how to obtain it). The description adds no meaning beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly identifies the action (get) and resource (address hierarchy entry). However, it does not differentiate from other sibling get tools like getPatientById or getDrugById, which may confuse an agent selecting among similar verbs.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusion criteria, leaving the agent to rely solely on the tool name.

    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 present, and the description does not disclose any behavioral traits such as side effects, required permissions, or return format. It only indicates a read operation ('Get'), but lacks depth to fully inform an agent.

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

    Conciseness3/5

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

    The description is a single short sentence, which is concise but lacks structure. While it is front-loaded with the action and resource, it does not earn its place with additional necessary details, making it minimally adequate.

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

    Completeness2/5

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

    Given the absence of an output schema and annotations, and the vague parameter schema, the description is insufficient. It does not explain what disease templates are, what the response contains, or how to use the 'body' parameter, leaving significant gaps for an agent.

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

    Parameters1/5

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

    The input schema has one optional parameter 'body' of type object with no description, and schema description coverage is 0%. The tool description provides no additional meaning about the parameter, leaving its purpose and expected structure completely undefined.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'Get' and the resource 'disease templates' with context 'for a patient', making the tool's purpose evident. However, it does not differentiate from sibling tools like 'getDiagnoses' or 'getDrugById', which also retrieve patient-related data, but the specific resource name helps distinguish it slightly.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description only states what it does, leaving the agent without decision-making context.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior1/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries full burden for behavioral disclosure. It fails to mention any traits such as read-only nature, authentication requirements, side effects, or data filtering behavior. The agent gets no insight into how the tool behaves beyond a generic get operation.

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

    Conciseness4/5

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

    The description is a single sentence, very concise and front-loaded. However, it sacrifices useful detail for brevity. Every word earns its place, but more content would improve utility without harming conciseness.

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

    Completeness1/5

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

    Given no output schema and sparse description, the tool definition is incomplete. The agent cannot infer what the response contains (e.g., list of observations, fields), how parameters interact (e.g., if both visit and encounter are provided), or error conditions. This is insufficient for reliable invocation.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It adds minimal context by stating the tool is for a visit or encounter, but does not explain what the 'concept' parameter does or clarify that visitUuid and encounterUuid are identifiers. The agent lacks understanding of parameter semantics.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool retrieves observations for a visit or encounter, using the verb 'get' and specifying the resource and context. It distinguishes from siblings that retrieve different entities (e.g., drugs, patients). However, it could be more precise about the scope (all observations or filtered).

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

    Usage Guidelines2/5

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

    The description implies usage for retrieving observations related to visits or encounters but provides no guidance on when not to use it or alternatives among siblings. No exclusions or when-to-use context beyond the vague 'for a visit or an encounter.'

    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, and the description does not disclose any behavioral traits (e.g., read-only, side effects, required permissions). The description fails to compensate for the lack of annotations.

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

    Conciseness3/5

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

    The description is extremely concise (one phrase), which is good for length, but it lacks structure and substance. It is more under-specified than efficiently concise.

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

    Completeness2/5

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

    Given the lack of annotations, output schema, and parameter descriptions, the description is incomplete. It does not explain return values, expected behavior, or prerequisites.

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

    Parameters2/5

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

    The single parameter 'patient' is not described beyond the schema type. With 0% schema description coverage, the description should clarify what value to provide (e.g., patient ID, UUID), but it does not.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose3/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states 'Get visits for a patient', which is a specific verb+resource combination. However, it does not differentiate from sibling tools like 'findEncounters' or 'manageVisits', and it is unclear whether the tool fetches visits for a specific patient or all patients when the parameter is omitted.

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

    Usage Guidelines2/5

    Does 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 like 'findEncounters' or 'manageVisits'. No explicit when/when-not conditions are provided.

    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?

    The description implies mutation (opening/closing) but lacks details on side effects, permissions, or reversibility. With no annotations, the agent is left to guess the behavioral implications.

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

    Conciseness3/5

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

    The description is a single sentence, concise but not sufficiently informative. It could be more detailed without becoming verbose.

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

    Completeness2/5

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

    Given zero parameters, no output schema, and no annotations, the description is too minimal to fully inform an agent. It lacks critical details about the tool's behavior and expected results.

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

    Parameters4/5

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

    The input schema has zero parameters, and the description does not add parameter info. According to guidelines, 0 params yields a baseline of 4, and the description is not penalized for missing parameter explanations.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose3/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states the tool manages, opens, or closes visits, giving a general verb and two specific actions. However, 'manage' is vague and it does not clearly distinguish from siblings like 'getVisitsForPatient' or 'deleteEncounter'.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or scenarios for opening versus closing visits.

    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?

    With no annotations, the description carries full burden but only says 'Get', implying read-only. No disclosure of side effects, auth needs, or limitations like pagination or data freshness. Minimal transparency.

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

    Conciseness3/5

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

    Extremely concise (6 words) but at the expense of completeness. Lacks essential details that should be included.

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

    Completeness2/5

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

    Given zero parameters and no output schema, the description is too sparse. It doesn't explain patient identification, order scope, or output format, making it inadequate for correct use.

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

    Parameters3/5

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

    No parameters exist, so schema coverage is 100% trivially. Baseline 4 is allowed, but description fails to explain how the patient is identified (likely via context), which is a gap. Thus reduced to 3.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Description clearly states the tool gets drug orders for a patient, distinguishing it from siblings like getDrugById which gets a single drug. However, it doesn't specify scope (e.g., active orders, date range) or how the patient is identified (no input parameters), leaving some ambiguity.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like getObservations or other patient-related tools. It does not mention prerequisites, context, or when it should be avoided.

    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?

    With no annotations, the description carries the full burden. It does not disclose whether the operation is read-only, relies on session context, or any side effects. The lack of parameters is not explained.

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

    Conciseness4/5

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

    The description is a single sentence with no wasted words. It is front-loaded and efficient, though slightly too minimal.

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

    Completeness2/5

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

    Given no output schema, no annotations, and no parameters, the description is incomplete. It fails to explain how the patient is identified, what diagnoses are returned, or any prerequisites for use.

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

    Parameters3/5

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

    There are no parameters, and schema coverage is trivially 100%. The description adds no explanation for the absence of parameters, such as reliance on session context. Baseline for 0 params is 4, but missing that clarification reduces the score.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action (get) and resource (diagnoses), but does not specify scope or context, and does not differentiate from sibling tools like getObservations or getDiseaseTemplates.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites (e.g., active patient session) 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.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description must disclose behavioral traits. It only states the action and parameter, omitting details like return value, null handling, permissions, or error conditions.

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

    Conciseness4/5

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

    The description is a single clear sentence with no wasted words. However, it is too minimal given the lack of annotations and schema descriptions.

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

    Completeness3/5

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

    For a simple one-parameter tool, the description provides the essential purpose. However, it lacks details about return values, error behavior, and prerequisites, which reduces completeness.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description should add meaning beyond the parameter name. It does not specify format, constraints, or examples for the 'uuid' parameter.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action (get), resource (patient), and identifier method (UUID). It is specific and distinguishes from sibling tools that retrieve other resources like drugs or observations.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives like searchPatients or getVisitsForPatient. There is no mention of prerequisites or exclusions.

    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 provided, so description must cover behavioral traits. The minimal description does not disclose whether the operation is read-only, any side effects, rate limits, pagination, or potential size of results.

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

    Conciseness5/5

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

    Extremely concise single sentence with no unnecessary words. Appropriate for a simple retrieval tool with no parameters.

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

    Completeness3/5

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

    Given the tool has no parameters and no output schema, the description is minimally adequate. However, it could provide more context about the nature of locations or expected output format.

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

    Parameters3/5

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

    Input schema has zero parameters and schema description coverage is 100%, so baseline is 3. Description adds no additional meaning beyond the schema, but no further clarification is needed.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'Get all locations' clearly states the action and resource. It is specific enough to understand the tool's purpose, though it does not differentiate from siblings because no other location-specific sibling exists.

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

    Usage Guidelines3/5

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

    No explicit guidance on when to use this tool versus alternatives. Usage is implied for retrieving all locations, but there are no exclusions or context about 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.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, and the description is minimal. It does not disclose any behavioral traits such as side effects, authorization needs, or 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/5

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

    Single sentence, front-loaded with the action verb. Every word is informative with no redundancy.

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

    Completeness3/5

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

    For a parameterless tool, the description is borderline adequate. However, it omits details about the return value format or any constraints, which would be useful given no output schema.

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

    Parameters4/5

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

    No parameters exist, so the baseline is 4. The description adds context by specifying the scope (admit/discharge/transfer).

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'Get' and the resource 'disposition rules', and provides concrete examples (admit/discharge/transfer). It distinguishes well from sibling tools like getDiagnoses.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. Sibling tools exist for similar data retrieval, but no context is given for selection.

    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 exist, so the description must fully disclose behavior. It mentions 'get current session info or validate authentication' but does not specify what information is returned, whether it returns a status or full session details, or whether calling it has side effects. This is insufficient for an agent to understand the tool's 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/5

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

    The description is a single sentence, concise and to the point. It could benefit from slightly more structure (e.g., clarifying that authentication validation is a side effect), but it is not overly verbose and front-loads the core purpose.

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

    Completeness2/5

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

    Given the absence of an output schema, the description should explain what the tool returns (e.g., session ID, user details, expiry). It does not, leaving the agent to guess the response format. For a simple tool, this omission is a notable gap.

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

    Parameters4/5

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

    The tool has no parameters, so schema coverage is effectively 100%. The description does not need to add parameter semantics. The baseline score of 4 is appropriate since no additional clarification is required.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool retrieves session information or validates authentication. It uses specific language ('get', 'validate') and a distinct resource ('session info') that separates it from sibling tools, which focus on patients, encounters, or clinical data.

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

    Usage Guidelines3/5

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

    No explicit guidance on when to use this tool versus alternatives. However, given its simple function (no parameters), it is implied that it can be called to check authentication status. The lack of exclusion criteria or context reduces guidance to a minimum viable level.

    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

bahmni-mcp MCP server – quality and maintenance score on Glama

Copy to your README.md:

Score Badge

bahmni-mcp MCP server – quality and maintenance score on Glama

Copy to your README.md: