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.

Category
Visit Server

README

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.

Quick Start

From npm (Recommended)

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

Related Projects

License

MIT


Built with GRIMLOCK - Autonomous MCP Server Factory

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured