Skip to main content
Glama

🏥 MedFlow MCP

MedFlow MCP is an AI-powered Hospital Operations server built with NitroStack. It serves as the "brain" for modern healthcare management, allowing AI assistants (like Claude, Cursor, and Nitro Studio) to seamlessly interact with hospital databases, trigger automated alerts, schedule appointments, and manage maintenance via Jira.

Built for the NitroStack MCP Hackathon, this project demonstrates how the Model Context Protocol (MCP) can completely revolutionize complex operational workflows in a healthcare setting.


✨ Key Features

  • 🎫 Automated Jira Integration: AI can automatically detect malfunctioning hospital equipment (e.g., MRI machines, Defibrillators) from natural language and instantly generate a formatted Jira ticket for the maintenance team via the Atlassian API.

  • 🎨 Glassmorphism UI Widgets: Includes rich, beautifully styled Next.js frontend widgets that pop up natively inside the AI chat interface (Patient Profiles, Doctor Dashboards, and Surgery Readiness checklists).

  • 🩺 Patient & Appointment Management: Exposes AI tools for scheduling follow-ups, prioritizing critical patients, and viewing real-time doctor queues.

  • 🚨 Emergency Alerting System: Tools to broadcast critical CODE emergencies directly to ER teams via Webhook (Slack/Discord).

  • 🧠 Diagnostic Vision AI (Mock): A tool designed to read X-rays and MRI scan notes to provide instant clinical AI impressions.


Related MCP server: Personal JIRA MCP

🛠️ Tech Stack

  • Framework: NitroStack (Official MCP Framework)

  • Backend: Node.js, TypeScript

  • Frontend (Widgets): Next.js, React, Tailwind CSS, Framer Motion

  • Integrations: Atlassian Jira API v3 (REST)


🚀 How to Run Locally

1. Clone the Repository

git clone https://github.com/tsjharsha/MedFlowMCP-AI-.git
cd MedFlowMCP-AI-

2. Install Dependencies

npm install
npm --prefix src/widgets install

3. Environment Variables

Create a .env file in the root directory and add your Jira API credentials:

JIRA_DOMAIN=your-team.atlassian.net
JIRA_PROJECT_KEY=SCRUM
JIRA_EMAIL=your-email@domain.com
JIRA_API_TOKEN=your-jira-api-token

4. Start the Server

Start the development server with hot-reloading for both the backend MCP server and frontend widgets:

npm run dev

🔌 Connecting to an AI Client

Because this is an MCP Server, you don't interact with it directly through a browser. You connect an AI to it!

  1. Nitro Studio: Start your local server, open Nitro Studio, and connect to http://localhost:3000/mcp.

  2. Cursor IDE: Go to Settings -> Features -> MCP -> Add New. Select SSE, name it MedFlow, and set the URL to your deployed NitroCloud URL or http://localhost:3000/mcp.

Once connected, simply talk to the AI (e.g., "Show me the dashboard for Doctor Alice" or "Report that the X-Ray in the lab is broken") and watch it use the tools and render the widgets!


Built with ❤️ for the NitroStack Hackathon.

Available Tools

10 tools
analyze_medical_imageC

Send a medical scan (X-Ray, MRI) to a specialized Diagnostic Vision AI model for anomaly detection.

ParametersJSON Schema
NameRequiredDescriptionDefault
scanTypeYes
patientIdYes
clinicalNotesYes

TDQS

C2.7/5.0
Behavior2/5

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

Without annotations, description must disclose behavior. It mentions 'Diagnostic Vision AI model' implying external call, but no info on asynchronicity, errors, permissions, or data handling.

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?

Single sentence is concise but omits essential details. Front-loading is good but content is too sparse for a tool with 3 required params and no annotations.

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?

No output schema, no annotations, and description lacks return value info, prerequisites (e.g., patient registration), and handling of results. Incomplete for a medical analysis tool.

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 provides no explanation of patientId, scanType, or clinicalNotes. Only hints at scan types via examples but doesn't map to parameters.

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?

Description uses specific verb 'send' with resource 'medical scan' and goal 'anomaly detection'. Clearly distinguishes from sibling tools like register_patient or order_lab_test.

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 vs alternatives, no prerequisites or exclusions. Sibling tools suggest patient must be registered first, but description doesn't mention this.

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

generate_medical_notesA

Extract structured medical notes (Symptoms, Diagnosis, Medicines, Tests, Advice) from a raw doctor voice transcript.

ParametersJSON Schema
NameRequiredDescriptionDefault
transcriptYesThe raw speech-to-text transcript from the doctor

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the transformation without mentioning statelessness, error behavior, or any potential side effects.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words, efficiently conveying purpose and output structure.

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 tool with one parameter and no output schema, the description adequately lists output sections, but could be more complete by noting that extraction is automated or mentioning expected 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?

Schema coverage is 100% and the parameter description in the schema is adequate; the tool description adds no extra semantic detail beyond what the schema provides.

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 specifies the action (Extract) and the resource (structured medical notes with listed sections) from a defined input (raw doctor voice transcript), and it is distinct from any sibling tools.

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

Usage Guidelines3/5

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

The usage context is implied (use when you have a raw transcript), but there is no explicit guidance on when not to use or any alternatives mentioned.

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

get_patient_historyC

Fetch the medical history of a patient by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
patientIdYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, so the description must disclose behavioral traits. It only mentions fetching history, with no details on authentication, rate limits, side effects, or output format. For a read operation, minimal disclosure is insufficient.

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 very concise at 7 words, front-loading the verb and object. No unnecessary words, but could include more contextual information without sacrificing brevity.

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's simplicity (1 param, no output schema), the description covers the basic purpose. However, it lacks context on what constitutes 'medical history' and how this fits with sibling tools, leaving gaps for complex scenarios.

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 'by ID' but does not elaborate on the format, source, or constraints of 'patientId'. The parameter name is self-explanatory, but the description adds little value 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 uses a specific verb 'Fetch' and resource 'medical history by ID', clearly stating what the tool does. However, it does not differentiate from sibling tools like 'record_consultation' or 'generate_medical_notes', which may overlap.

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. The description simply states 'by ID' without hinting at prerequisites or use cases, leaving the agent to infer context from the name.

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

manage_queueB

Get the current queue for a specific doctor.

ParametersJSON Schema
NameRequiredDescriptionDefault
doctorIdYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. While 'Get' implies read-only, there is no disclosure of behavioral traits such as whether it requires permissions, returns a specific date range, or modifies state. The description is too minimal for transparency.

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 concise sentence with no unnecessary words. However, it could be more informative without sacrificing brevity, such as clarifying what 'current queue' means.

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 and one parameter, the description is incomplete. It does not specify the meaning of 'current queue' (e.g., ordered list, waiting patients), the return format, or time scope. More detail is needed for an agent to correctly interpret and invoke the tool.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must add meaning. It mentions 'for a specific doctor,' which hints at the doctorId parameter but does not explain its format, acceptable values, or required context. This adds minimal value beyond the schema.

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 the current queue for a specific doctor, using the verb 'Get' and identifying the resource ('current queue'). This distinguishes it from sibling tools like register_patient or schedule_appointment which perform different actions.

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. It does not mention any prerequisites, exclusions, or specific contexts (e.g., scheduling vs. viewing queue). Users must infer usage from the name alone.

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

order_lab_testC

Send a request for lab tests to the laboratory.

ParametersJSON Schema
NameRequiredDescriptionDefault
testsYes
doctorIdYes
priorityNoRoutine
patientIdYes

TDQS

C2.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosure. It only states 'send a request,' implying a write operation, but does not explain side effects (e.g., creating a lab order, changing patient status), required permissions, or response behavior.

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, making it concise. However, it is too minimal; it does not provide enough value beyond the tool name and thus does not fully earn its place.

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 4 parameters, no output schema, and no annotations, the description is severely incomplete. It fails to explain the outcome of ordering a lab test, return values, error conditions, or any sequential context, leaving the agent underinformed.

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 adds no information about parameters. The parameter names (patientId, doctorId, tests, priority) are meaningful but the description does not clarify their roles, expected formats, or constraints, leaving the agent with only the schema structure.

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 'Send a request for lab tests to the laboratory' clearly indicates the action (order) and resource (lab tests), but it lacks specificity about the context (e.g., in an EHR system) and does not distinguish from sibling tools like manage_queue or schedule_followup beyond the broad topic.

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 prerequisites, such as requiring an active patient encounter or doctor order, nor any indication of 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.

prioritize_patientsC

Reorder a doctor's queue by changing an appointment priority.

ParametersJSON Schema
NameRequiredDescriptionDefault
newPriorityYes
appointmentIdYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only mentions changing priority without indicating whether it's a mutation, permissions required, or side effects. This is insufficient for a tool that modifies data.

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

Conciseness5/5

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

The description is a single, well-front-loaded sentence with no unnecessary words. It conveys the core purpose efficiently.

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?

For a mutation tool with no output schema and no annotations, the description is too brief. It does not cover prerequisites, effects on the queue, or return values. Additional context is needed for safe use.

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 coverage is 0%, but the description does not explain the parameters. It mentions 'appointment priority' but doesn't clarify that appointmentId identifies the appointment and newPriority sets the new value. The enum is in the schema, but description adds no value.

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 (reorder) and resource (appointment priority), making it easy to understand what the tool does. However, it could be more specific about the effect on the queue.

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 siblings like manage_queue or schedule_appointment. The description does not provide any context for appropriate use or alternatives.

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

record_consultationC

Save finalized consultation notes to the patient record.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesYes
doctorIdYes
patientIdYes
appointmentIdYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations present, the description carries full responsibility for behavioral disclosure. It only indicates a write operation ('Save') but omits important details such as whether the operation is idempotent, what happens to existing notes, permission requirements, or error conditions. The behavior is minimally transparent.

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

Conciseness5/5

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

The description is a single, well-structured sentence that conveys the core purpose without any unnecessary words. It is front-loaded with the action and resource.

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 (4 required parameters, nested notes object, no output schema, no annotations), the description is too brief. It does not explain return values, side effects, or constraints on the input (e.g., required fields within notes). An agent would need to rely heavily on the schema alone, which lacks behavioral context.

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 adds no information about any of the 4 parameters. The input schema is moderately structured (nested notes object), but the description provides no context for how to populate fields like 'symptoms', 'diagnosis', or 'medicines'. The agent must infer entirely from the schema, which is insufficient for complex nested parameters.

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 ('Save finalized consultation notes') and the destination ('patient record'), distinguishing it from sibling tools like 'generate_medical_notes' (which likely creates drafts) and 'get_patient_history' (which retrieves records). The verb 'save' and resource 'finalized consultation notes' are 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 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 'generate_medical_notes' or 'schedule_followup'. There is no mention of prerequisites (e.g., consultation must be completed), exclusions, or context for appropriate invocation.

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

register_patientC

Register a new patient or update an existing one.

ParametersJSON Schema
NameRequiredDescriptionDefault
ageYes
nameYes
genderYes
contactYes
medicalHistoryNoNone

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behaviors. It mentions both 'register' and 'update' but does not explain how the tool distinguishes between the two (e.g., by identifier). No information on idempotency, error handling, or side effects is provided.

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, which is concise, but it sacrifices essential details. It is front-loaded with the main purpose but lacks depth. The sentence earns its place, but more information could be added without becoming overly long.

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 has 5 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the return value (e.g., patient ID), error conditions, or behavior when updating a non-existent patient. Compared to sibling tools, this is a fundamental operation that requires more context.

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%, meaning the schema provides no parameter descriptions. The tool description adds no meaning to parameters like 'age', 'gender', 'contact', or 'medicalHistory'. For example, 'age' could be years or months, 'gender' expected format is unknown, and 'contact' could be phone or email. This is a critical gap.

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 registers a new patient or updates an existing one. However, it does not differentiate from sibling tools like 'manage_queue' or 'get_patient_history', which could be confusing for an AI agent.

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 are there any prerequisites or exclusions mentioned. The description does not help the agent decide between registering, updating, or using another sibling tool.

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

schedule_appointmentC

Schedule a new appointment for a patient with a doctor.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeYes
typeYes
doctorIdYes
complaintYes
patientIdYes

TDQS

C2.6/5.0
Behavior2/5

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

The description does not disclose any behavioral traits such as whether conflicts are checked, if prior authorization is needed, or any side effects. Given no annotations, this is a significant gap.

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 concise sentence, but it could be front-loaded with more critical information like required parameters or typical usage pattern.

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 has 5 required parameters, no output schema, and no annotations, the description is too sparse. It lacks information on return values, error handling, or any post-conditions.

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?

With 0% schema description coverage, the description should explain parameter meanings beyond the schema, but it only mentions 'patient' and 'doctor'. It fails to clarify the roles of 'time', 'type', and 'complaint', or the enum values for 'type'.

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 ('Schedule a new appointment') and the involved entities ('patient', 'doctor'), making it easy to understand the tool's core function. It differentiates from sibling tools like schedule_followup by covering all appointment types.

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 schedule_followup or manage_queue. There are no exclusions, prerequisites, or context for appropriate usage.

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

schedule_followupC

Schedule a follow-up appointment in a given number of days.

ParametersJSON Schema
NameRequiredDescriptionDefault
doctorIdYes
patientIdYes
daysFromNowYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only states the basic action. It does not specify whether the tool creates, updates, or returns anything, nor does it address edge cases like negative daysFromNow or duplicate scheduling.

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, which is concise, but it is not front-loaded with the most critical information and lacks structure. It is minimal viable but could be more informative without adding length.

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 output schema, annotations, and parameter descriptions, the tool description is incomplete. It does not specify return values, error states, or constraints, leaving the agent with insufficient information to use the tool safely and effectively.

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%, so the description must compensate. It only hints at 'daysFromNow' via 'given number of days' but fails to explain 'patientId' and 'doctorId' beyond their role as identifiers. No parameter details or constraints are provided.

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 states the verb 'schedule' and resource 'follow-up appointment', with the unique aspect of timing 'in a given number of days'. However, it does not explicitly differentiate from sibling 'schedule_appointment', leaving ambiguity about their respective use cases.

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 'schedule_appointment'. The description lacks context about preconditions, such as requiring an existing patient record or doctor availability.

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

TDQS

B3.2/5.0
Disambiguation5/5

Each tool targets a distinct action or resource: patient registration, history retrieval, appointment scheduling, queue management, follow-up scheduling, queue prioritization, consultation recording, note generation, lab tests, and image analysis. No significant overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., register_patient, schedule_appointment, analyze_medical_image). No mixing of conventions.

Tool Count5/5

10 tools cover the main workflows of a medical practice: patient management, appointments, queue, consultations, lab, and imaging. Not too few or too many.

Completeness4/5

Covers core clinical operations well, including patient history, appointments, queue, consultation notes, lab tests, and image analysis. Minor gaps like billing or discharge are absent but not critical for the apparent scope.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    An MCP server that enables AI assistants to interact with JIRA, allowing for querying issue details, creating and updating work items, and managing attachments through a standardized interface.
    12
    4
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server and web application that enables natural language medical queries and patient data analysis powered by Gemini AI. It allows users to track and analyze patient biometrics, including vitals, sleep patterns, and laboratory results, through a comprehensive set of automated medical tools.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tsjharsha/MedFlowMCP-AI-'

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