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
- 01Search patients by name, ID, or phone
- 02Create visit notes with vitals
- 03Retrieve patient visit history
- 04Use in-memory mock visit records
Use cases
- 01Find a patient during a charting workflow
- 02Record a visit note with vital signs
- 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.
npx -y mcp-ratchet-clinical-chartingPOINTCARE_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.
Tools
3Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Maximum number of results to return (default: 10, max: 50) |
| query | string | Yes | Search term: patient name, ID (e.g., PT-10001), or phone number |
| status | enum | No | Filter by patient status. If not specified, returns all statuses.active | inactive | discharged | pending |
| searchType | enum | No | Type of search to perform. Defaults to "all" which searches across all fields.name | id | phone | all |
Details
From the project READMEmcp-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_patienttool availablecreate_visit_notetool availableget_patient_historytool 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
- Acquire PointCare API documentation - See
docs/API_REQUIREMENTS.md - Complete PRD - Fill in tool specifications with real API details
- Implement real API calls - Replace mock responses
- Integration testing - Test with PointCare sandbox
Related Projects
- GRIMLOCK - Autonomous MCP Server Factory
- ratchet-demo-emr - Demo EMR React app for testing
License
MIT
Built with GRIMLOCK - Autonomous MCP Server Factory
Comments
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.