Skip to main content
Glama
mcp-ratchet-clinical-charting

mcp-ratchet-clinical-charting

mcp-ratchet-clinical-charting

MCP server for clinical charting with Claude (codename: Ratchet) - Enables Claude to document patient visits directly into Electronic Medical Records, reducing administrative burden for home health nurses.

Note: Currently runs in Mock Mode for development/testing. Production EMR integration coming soon.

Status

Component

Status

MCP Server

✅ Working (Mock Mode)

Unit Tests

✅ 20/20 Passing

Claude Desktop

✅ Ready for Testing

PointCare API

⏳ Pending API Documentation

Current Mode: Mock Mode - Uses realistic test data for development and testing.

Related MCP server: Medical Knowledge MCP Server

Quick Start

npx mcp-ratchet-clinical-charting

From Source

git clone https://github.com/m2ai-mcp-servers/mcp-ratchet-clinical-charting.git
cd mcp-ratchet-clinical-charting
npm install
npm run build
npm run dev  # Development mode
npm test     # Run tests

Mock Mode

Ratchet runs in mock mode by default when POINTCARE_API_URL is not configured. Mock mode:

  • Uses 5 fictional test patients

  • Stores visit notes in memory

  • Returns realistic responses

  • Perfect for development and Claude Desktop testing

Available Tools

Tool

Description

Mock Mode

search_patient

Find patient by name, ID, or phone

✅ Working

create_visit_note

Document a patient visit with vitals

✅ Working

get_patient_history

Retrieve patient visit history

✅ Working

Example Usage (in Claude)

"Search for patient Eleanor Thompson"
→ Returns patient PT-10001 with demographics and status

"Create a visit note for PT-10001 with blood pressure 120/80"
→ Creates and stores visit note with vitals

"Get visit history for PT-10001"
→ Returns list of previous visits

Claude Desktop Integration

Configure Claude Desktop

Add to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "ratchet": {
      "command": "npx",
      "args": ["-y", "mcp-ratchet-clinical-charting"]
    }
  }
}

For production mode with EMR integration:

{
  "mcpServers": {
    "ratchet": {
      "command": "npx",
      "args": ["-y", "mcp-ratchet-clinical-charting"],
      "env": {
        "POINTCARE_API_URL": "https://api.pointcare.com",
        "POINTCARE_API_KEY": "your-api-key"
      }
    }
  }
}

Step 3: Restart Claude Desktop

Restart Claude Desktop to load the new MCP server.

Step 4: Verify

In Claude Desktop, you should see:

  • search_patient tool available

  • create_visit_note tool available

  • get_patient_history tool available

Try: "Search for patient Eleanor"

Test Patients (Mock Mode)

ID

Name

Status

Primary Diagnosis

PT-10001

Eleanor Thompson

Active

Type 2 Diabetes, CHF

PT-10002

Robert Martinez

Active

COPD, Post-surgical

PT-10003

Margaret Wilson

Active

Parkinson's Disease

PT-10004

James Thompson

Active

Post-stroke rehab

PT-10005

Dorothy Anderson

Discharged

Hip replacement

Origin Story

Ratchet evolved from the M2AI NurseCall n8n workflow, built to help home health nurses with visit documentation:

Current Flow (M2AI NurseCall):
┌─────────┐    ┌─────────┐    ┌─────────┐    ┌─────────┐
│ Twilio  │───>│  n8n    │───>│  VAPI   │───>│  Email  │
│  SMS    │    │ Workflow│    │  Call   │    │ Summary │
└─────────┘    └─────────┘    └─────────┘    └─────────┘

The Problem: Visit notes go to email but still need manual entry into PointCare EMR.

Ratchet's Solution:

Future Flow (with Ratchet):
┌─────────┐    ┌─────────┐    ┌──────────┐    ┌───────────┐
│ Twilio  │───>│  n8n    │───>│ Ratchet  │───>│ PointCare │
│  SMS    │    │ Workflow│    │   MCP    │    │    EMR    │
└─────────┘    └─────────┘    └──────────┘    └───────────┘

Configuration

Variable

Required

Description

POINTCARE_API_URL

No*

PointCare API base URL

POINTCARE_API_KEY

No*

API key or token

RATCHET_MOCK_MODE

No

Force mock mode (true/false)

LOG_LEVEL

No

Logging level (debug/info/warn/error)

*Required for production use. Mock mode activates when not set.

Project Structure

ratchet/
├── src/
│   ├── index.ts              # MCP server entry point
│   ├── config.ts             # Configuration management
│   ├── tools/                # Tool implementations
│   │   ├── search-patient.ts
│   │   ├── create-visit-note.ts
│   │   └── get-patient-history.ts
│   ├── services/             # Business logic
│   │   ├── patient-service.ts
│   │   └── mock-data.ts
│   ├── types/                # TypeScript types
│   └── utils/                # Logger, errors
├── tests/
│   └── patient-service.test.ts
├── dist/                     # Compiled output
├── prds/
│   └── RATCHET-PRD.yaml
├── docs/
│   └── API_REQUIREMENTS.md
├── package.json
├── tsconfig.json
└── jest.config.js

Development

# Run in watch mode
npm run dev

# Run tests
npm test

# Run tests with coverage
npm test -- --coverage

# Lint
npm run lint

Next Steps

  1. Acquire PointCare API documentation - See docs/API_REQUIREMENTS.md

  2. Complete PRD - Fill in tool specifications with real API details

  3. Implement real API calls - Replace mock responses

  4. Integration testing - Test with PointCare sandbox

License

MIT


Built with GRIMLOCK - Autonomous MCP Server Factory

Available Tools

3 tools
create_visit_noteA

Create a visit note for a patient in the PointCare EMR system.

This tool documents a home health visit including vital signs, assessment, and care plan. Use search_patient first to get the patient ID.

Required fields: patientId, visitType, visitDate, timeIn, timeOut Recommended fields: vitalSigns, subjective, objective, assessment, plan

Inputs: patientId (required), visitType (required), visitDate (required), timeIn (required), +11 more.

get_patient_historyA

Retrieve visit history for a patient from the PointCare EMR system.

Returns a list of previous visits with dates, types, and key information. Use this to review patient history before creating a new visit note.

Use search_patient first to get the patient ID.

Inputs: patientId (required), limit, startDate, endDate, +1 more.

search_patientA

Search for a patient in the PointCare EMR system by name, ID, or phone number.

Returns matching patient records with basic information. Use this tool to find patients before creating visit notes or retrieving history.

Examples:

  • Search by name: "Eleanor Thompson"

  • Search by ID: "PT-10001"

  • Search by phone: "555-0101"

Inputs: query (required), searchType, status, limit.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool has a distinct, non-overlapping purpose: searching for patients, retrieving visit history, and creating new visit notes. No ambiguity exists between them.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern (search_patient, get_patient_history, create_visit_note) using snake_case, making it predictable and easy to understand.

    Tool Count4/5

    With only 3 tools, it is on the lower end but still appropriate for a focused clinical charting server. They cover the core workflow of searching, reviewing history, and creating notes without unnecessary bloat.

    Completeness3/5

    The tool set covers essential operations (search, history, create) but lacks update and delete functionalities for visit notes, which are notable gaps for a complete CRUD lifecycle in clinical charting.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      A production-grade MCP server that enables AI assistants to securely manage healthcare data through clinical tools for patient vitals, lab results, and medication ordering. It prioritizes security and compliance with features like HIPAA-ready audit logging, PII redaction, and role-based access control.
      -
    • F
      license
      Not graded
      quality
      A
      maintenance
      Enables LLM-based agents and MCP-compatible clients such as Claude Desktop to perform full CRUD operations on Fast Healthcare Interoperability Resources and query clinical data through natural-language prompts. It also provides document ingestion with semantic search, a RAG-ready retrieval pipeline, and LOINC terminology lookup and validation.
      -