openemr-wiki-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@openemr-wiki-mcp search OpenEMR wiki for billing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
openemr-wiki-mcp
A quick local-first MCP server for OpenEMR documentation.
I made this as a small practical implementation so I could get fast local access to OpenEMR wiki pages, the Users Guide, and selected API docs inside desktop AI apps, coding agents, and other MCP-capable tools.
This repository is intentionally focused on local usage. It does not try to be a full hosted platform or production-ready remote service.
Tools
Tool | Description | Key Parameters |
| Search the OpenEMR wiki for any topic. Returns titles, summaries, and URLs. |
|
| Fetch the plain-text content of a specific wiki page by title, optionally narrowed to a section. |
|
| Fetch the table of contents from the OpenEMR 8.0.0 Users Guide. | (none) |
| Fetch selected OpenEMR API documentation from the OpenEMR GitHub repository. |
|
| List wiki pages in a given MediaWiki category. |
|
Related MCP server: crc-doc-mcp
Requirements
Node 18+
npm
Quick Start
This is a local stdio MCP server. That is the supported usage mode in this repo today.
Install And Build
git clone https://github.com/rucister/openemr-wiki-mcp.git
cd openemr-wiki-mcp
npm install
npm run build
npm install -g .Verify the global binary if you want to use the npm-installed command directly:
which openemr-wiki-mcpInstall Inside WSL On A Local Windows Computer
If you want the MCP server to run inside WSL, do the install from your WSL shell, not from Windows PowerShell:
cd /path/to/openemr-wiki-mcp
npm install
npm run build
npm install -g .
which openemr-wiki-mcpThe last command should print a Linux path inside WSL, for example:
/home/ubuntu/.nvm/versions/node/v22.16.0/bin/openemr-wiki-mcpUse It Locally
VS Code
Open the Command Palette and run MCP: Open User Configuration, then add:
{
"servers": {
"openemr-wiki": {
"type": "stdio",
"command": "openemr-wiki-mcp"
}
}
}If VS Code cannot find the global binary, replace openemr-wiki-mcp with the absolute Linux or macOS path returned by which openemr-wiki-mcp.
Claude Code
Register the local stdio server:
claude mcp add --scope user --transport stdio openemr-wiki openemr-wiki-mcpVerify:
claude mcp listIf the command is not found because the client does not load your shell profile, register the absolute binary path instead of openemr-wiki-mcp.
Claude Desktop
Config file:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux/WSL:
~/.config/Claude/claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
If Claude Desktop and the MCP server run in the same Linux or macOS environment, use this local stdio configuration:
{
"mcpServers": {
"openemr-wiki": {
"command": "openemr-wiki-mcp"
}
}
}If Claude Desktop is running on Windows and the MCP server is installed inside WSL, use wsl.exe and the exact distro name:
{
"mcpServers": {
"openemr-wiki": {
"command": "wsl.exe",
"args": [
"-d",
"Ubuntu-22.04",
"-e",
"/home/your-user/.nvm/versions/node/v22.16.0/bin/node",
"/home/your-user/path/to/openemr-wiki-mcp/dist/index.js"
]
}
}
}Notes:
Replace
Ubuntu-22.04with the exact output ofwsl -l -qfrom Windows.Using the built
dist/index.jspath is more reliable than depending on the global shim.Restart Claude Desktop after saving the config.
If You Want To Host It
This repository does not include a remote HTTP MCP transport or deployment setup.
If you want to put this online, use this project as a starting point and add the pieces that a public or shared deployment needs:
remote MCP transport
authentication and access control
rate limiting
caching
deployment and monitoring
If someone wants to take this local-first implementation and evolve it into a hosted version, that is a good next step for a fork or contribution.
Update
git pull && npm run build && npm install -g .Common Gotchas
If
openemr-wiki-mcpis not found afternpm install -g ., your npm global bin directory is probably not inPATH.If Claude Code or Claude Desktop does not pick up your shell profile, use the absolute path from
which openemr-wiki-mcpinstead of the bare command name.If Claude Desktop on Windows launches the server through WSL, the distro name after
-dmust exactly match the output ofwsl -l -q, for exampleUbuntu-22.04.This is a stdio MCP server, so do not use
console.log()for debugging. Write diagnostics to stderr withconsole.error().
License
MIT. See LICENSE.
Available Tools
5 toolsget_openemr_api_docsA
Fetch developer API documentation from the OpenEMR GitHub repository. Covers the REST and FHIR APIs that are NOT documented on the wiki. Use this for anything related to FHIR, REST endpoints, authentication, or SMART on FHIR.
Inputs: doc (required).
get_openemr_wiki_pageA
Fetch the plain-text content of an OpenEMR wiki page. Optionally fetch a single section by heading name to avoid the 8000-character truncation limit on long pages.
Inputs: title (required), section.
get_users_guide_tocA
Fetch the table of contents from the OpenEMR 8.0.0 Users Guide. Use this to orient yourself before fetching a specific section.
Inputs: no named parameters.
list_wiki_pages_by_categoryA
List all wiki pages in a given category. Use this when search returns no results — browse by topic area instead. Useful categories: 'Developer Guide', 'User Guide', 'Configuration Guide', 'Clinic Work Flow', 'Features', 'Installation', 'Security', 'Frequently Asked Questions', 'Backup', 'User Documentation'.
Inputs: category (required).
search_openemr_wikiA
Search the OpenEMR wiki for documentation on any topic. Returns page titles, summaries, and URLs. Falls back to title search automatically if full-text search returns no results. Use this first to find relevant pages before fetching full content.
Inputs: query (required), limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a distinct role: search (discovery), get_page (content retrieval), get_toc (orientation), get_api_docs (developer reference), and list_by_category (browse fallback). There is mild overlap between search_openemr_wiki and list_wiki_pages_by_category as discovery mechanisms, but descriptions clearly explain when to prefer each.
All tools follow a consistent snake_case verb_noun pattern (search_, get_, get_, get_, list_). The naming is predictable and readable throughout, with no mixing of conventions.
Five tools is well-scoped for a read-only documentation retrieval server, with each tool earning its place (search, fetch, TOC, API docs, browse). No redundant or filler tools.
The surface covers discovery, content fetching, section-level fetching, API docs, and category browsing, which is solid for a documentation server. A minor gap is the lack of a generic way to list a single page's section headings, though the Users Guide TOC partially mitigates this.
Maintenance
Related MCP Connectors
MCP server for querying Forkast documentation
MCP server for accessing curated awesome list documentation
KnowMan MCP server: search, ask, save and read your Knowledge Base from any MCP client.
MCP server for opencode documentation, generated by doc2mcp.
Related MCP Servers
- AlicenseBqualityDmaintenanceA local MCP server that allows AI systems to search and retrieve information from a custom knowledge base generated from markdown files. It provides tools for natural language text search, category browsing, and specific content chunk retrieval.3MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that provides intelligent access to CRC/OpenShift Local documentation by fetching, caching, and searching official docs.-
- AlicenseNot gradedqualityCmaintenanceProvides a local MCP server for searching and retrieving documentation from 22+ open-source projects, enabling AI coding assistants to access up-to-date docs without network dependency.9 npm3MIT
- FlicenseNot gradedqualityDmaintenanceMCP server to search and read documentation pages from a WikiJS instance via its GraphQL API.-