mcpField
M
mcp-ratchet-clinical-charting

mcp-ratchet-clinical-charting

Local
github.com/m2ai-mcp-serversHealth0Updated 34w ago

About mcp-ratchet-clinical-charting

mcp-ratchet-clinical-charting is an MCP server for helping home health nurses document patient visits in an EMR through Claude. It currently runs in mock mode with fictional patient data; production EMR integration is pending.

Key features

  1. 01Search patients by name, ID, or phone
  2. 02Create visit notes with vitals
  3. 03Retrieve patient visit history
  4. 04Use in-memory mock visit records

Use cases

  1. 01Find a patient during a charting workflow
  2. 02Record a visit note with vital signs
  3. 03Review a patient's previous visits

MCP support

The MCP server exposes patient search, visit-note creation, and patient-history tools to Claude and other MCP clients. In the current mock mode, it uses fictional patient data and stores notes in memory; production PointCare integration is pending.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"m2ai-mcp-servers-mcp-ratchet-clinical-charting": {
"command": "npx",
"args": [
"-y",
"mcp-ratchet-clinical-charting"
],
"env": {
"POINTCARE_API_URL": "<POINTCARE_API_URL>",
"POINTCARE_API_KEY": "<POINTCARE_API_KEY>"
}
}
}
}
Run commandnpx -y mcp-ratchet-clinical-charting
Environment variables to set
POINTCARE_API_URLEMR API base URL (optional - runs in mock mode if not set)
POINTCARE_API_KEYSecretEMR API key (required for production mode)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmcp-ratchet-clinical-charting0.1.0

Tools

3

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
limitnumberNoMaximum number of results to return (default: 10, max: 50)
querystringYesSearch term: patient name, ID (e.g., PT-10001), or phone number
statusenumNoFilter by patient status. If not specified, returns all statuses.active | inactive | discharged | pending
searchTypeenumNoType of search to perform. Defaults to "all" which searches across all fields.name | id | phone | all

Details

From the project 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

ComponentStatus
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

ToolDescriptionMock Mode
search_patientFind patient by name, ID, or phone✅ Working
create_visit_noteDocument a patient visit with vitals✅ Working
get_patient_historyRetrieve 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)

IDNameStatusPrimary Diagnosis
PT-10001Eleanor ThompsonActiveType 2 Diabetes, CHF
PT-10002Robert MartinezActiveCOPD, Post-surgical
PT-10003Margaret WilsonActiveParkinson's Disease
PT-10004James ThompsonActivePost-stroke rehab
PT-10005Dorothy AndersonDischargedHip 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

VariableRequiredDescription
POINTCARE_API_URLNo*PointCare API base URL
POINTCARE_API_KEYNo*API key or token
RATCHET_MOCK_MODENoForce mock mode (true/false)
LOG_LEVELNoLogging 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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.