npm soapnoteapi-mcpstdioMITupdated 2mo ago
A Model Context Protocol (MCP) server for SOAPNoteAPI. It lets AI agents (Claude Desktop/Code, Cursor, Windsurf, VS Code + Copilot, etc.) turn clinical transcripts or audio recordings into structured SOAP notes, ICD-10/CPT billing-code suggestions, patient summaries, and visit summaries.
What can you do with SOAPNoteAPI?
soapnoteapi-mcp
A Model Context Protocol (MCP) server for SOAPNoteAPI. It lets AI agents (Claude Desktop/Code, Cursor, Windsurf, VS Code + Copilot, etc.) turn clinical transcripts or audio recordings into structured SOAP notes, ICD-10/CPT billing-code suggestions, patient summaries, and visit summaries.
⚕️ All clinical content and billing codes are AI-generated decision support and must be reviewed by a qualified clinician/coder before use. HIPAA: this server only transits PHI to the API over TLS and never logs note content.
Tools
| Tool | What it does | API |
|---|---|---|
list_specialties |
List supported specialties (no key needed) | GET /v1/specialties |
generate_soap_note |
Transcript → SOAP note (+ optional billing codes, patient summary) | POST /v1/note |
get_note |
Fetch a note by noteId |
GET /v1/note/{id} |
summarize_visits |
Consolidate visits into a longitudinal summary | POST /v1/visit-summary |
transcribe_audio_to_soap |
Local audio file → SOAP note (waits for async jobs) | PUT /v1/note/audio |
get_audio_status |
Poll an async audio job | GET /v1/audio/status/{id} |
Setup
Get an API key at https://app.soapnoteapi.com (free tier: $10 credit, first 20 notes free).
Claude Desktop / Cursor (mcp.json)
{
"mcpServers": {
"soapnoteapi": {
"command": "npx",
"args": ["-y", "soapnoteapi-mcp"],
"env": { "SOAPNOTEAPI_KEY": "snapi_sk_live_xxxxxxxx" }
}
}
}
Claude Code
claude mcp add soapnoteapi --env SOAPNOTEAPI_KEY=snapi_sk_live_xxxxxxxx -- npx -y soapnoteapi-mcp
Environment variables
| Variable | Required | Notes |
|---|---|---|
SOAPNOTEAPI_KEY |
yes (for all tools except list_specialties) |
Bearer key, snapi_sk_live_… or snapi_sk_test_… |
SOAPNOTEAPI_BASE_URL |
no | Override API base (default https://api.soapnoteapi.com) |
Develop
pnpm install
pnpm --filter soapnoteapi-mcp dev # run from source (tsx)
pnpm --filter soapnoteapi-mcp build # compile to dist/
npx @modelcontextprotocol/inspector node dist/index.js # interactive test
Publish
pnpm --filter soapnoteapi-mcp build
cd packages/mcp && npm publish # publishes soapnoteapi-mcp to npm
License
MIT
Install
Add SOAPNoteAPI to your client. Pick the one you use.
claude mcp add soapnoteapi-mcp -- npx -y soapnoteapi-mcpcodex mcp add soapnoteapi-mcp -- npx -y soapnoteapi-mcpamp mcp add soapnoteapi-mcp -- npx -y soapnoteapi-mcp{
"mcpServers": {
"soapnoteapi-mcp": {
"command": "npx",
"args": [
"-y",
"soapnoteapi-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"soapnoteapi-mcp": {
"command": "npx",
"args": [
"-y",
"soapnoteapi-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"soapnoteapi-mcp","command":"npx","args":["-y","soapnoteapi-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"soapnoteapi-mcp": {
"command": "npx",
"args": [
"-y",
"soapnoteapi-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"soapnoteapi-mcp": {
"command": "npx",
"args": [
"-y",
"soapnoteapi-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"soapnoteapi-mcp": {
"command": "npx",
"args": [
"-y",
"soapnoteapi-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"soapnoteapi-mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"soapnoteapi-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"soapnoteapi-mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"soapnoteapi-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y soapnoteapi-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
6 tools
SOAPNoteAPI exposes 6 tools to a connected agent.
- list_specialties
- List supported specialties (no key needed)
- generate_soap_note
- Transcript → SOAP note (+ optional billing codes, patient summary)
- get_note
- Fetch a note by `noteId`
- summarize_visits
- Consolidate visits into a longitudinal summary
- transcribe_audio_to_soap
- Local audio file → SOAP note (waits for async jobs)
- get_audio_status
- Poll an async audio job
Score
72 / 100
Good
- Documentation22/25
- Maintenance16/25
- Trust16/20
- Capability6/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 76 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 6 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.1.1Latest | Jun 16, 2026 |
| 0.1.0 | Jun 16, 2026 |