MedData MCP Server
mcp-name: io.github.anthesiallc/meddata
A Model Context Protocol server that exposes the MedData API as tools, so any MCP client (Claude Desktop, Cursor, ChatGPT connectors, or an agent framework) can look up drug and supplement data and check interactions conversationally.
It's a thin wrapper: each tool maps to one MedData REST endpoint. All the data work happens in the API.
Tools
| Tool | What it does |
|---|---|
search_drugs | Search drugs by brand or generic name; returns RxCUI + details |
get_drug | Full drug profile by RxCUI |
get_drug_by_ndc | Drug profile by NDC package code |
search_supplements | Search supplements by name; returns supplement IDs |
get_supplement | Full supplement fact sheet by ID |
check_interactions | Interactions across a mixed list of 2-10 drugs/supplements |
get_usage | Current billing period usage and plan limit |
Get an API key
Free tier is 250 calls/month, no credit card:
curl -X POST https://meddata.anthesia.io/api/v1/signup \
-H 'Content-Type: application/json' \
-d '{"email":"you@example.com"}'
The key comes back in the api_key field of the response.
Install and run
The easiest way is with uv (no manual venv needed):
# stdio transport (default — for Claude Desktop, Cursor, most local clients)
MEDDATA_API_KEY=md_your_key uvx meddata-mcp
# streamable-HTTP transport (for remote / web clients)
MEDDATA_API_KEY=md_your_key uvx meddata-mcp --http
Or install with pip into its own environment:
pip install meddata-mcp
MEDDATA_API_KEY=md_your_key meddata-mcp
Note: install into a dedicated environment. The
mcpSDK requires a newerstarlettethan the MedData API app pins, so the two will conflict if installed together.
Environment variables:
MEDDATA_API_KEY(required) — your MedData API key.MEDDATA_BASE_URL(optional) — defaults tohttps://meddata.anthesia.io.MEDDATA_TIMEOUT(optional) — request timeout in seconds, default30.
Client configuration
Claude Desktop
Add to claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"meddata": {
"command": "uvx",
"args": ["meddata-mcp"],
"env": { "MEDDATA_API_KEY": "md_your_key" }
}
}
}
Cursor
Add the same block to ~/.cursor/mcp.json (or the project .cursor/mcp.json).
Smithery (hosted, no install)
The server is hosted on Smithery, so MCP clients that support Smithery can connect without installing anything. You provide your MedData API key in the Smithery config and it routes to the server.
LangChain / LangGraph
Any LangChain or LangGraph agent can use these tools through
langchain-mcp-adapters:
# pip install langchain-mcp-adapters langgraph "langchain[anthropic]"
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient(
{
"meddata": {
"transport": "stdio",
"command": "uvx",
"args": ["meddata-mcp"],
"env": {"MEDDATA_API_KEY": "md_your_key"},
}
}
)
tools = await client.get_tools()
# hand `tools` to a LangGraph/LangChain agent, e.g.
# from langgraph.prebuilt import create_react_agent
# agent = create_react_agent("anthropic:claude-opus-4-8", tools)
LlamaIndex works the same way via its MCP tool spec.
Develop from source
git clone https://github.com/anthesiallc/meddata-mcp && cd meddata-mcp
python -m venv .venv
.venv/Scripts/python -m pip install -e ".[http]" # Windows; [http] adds uvicorn for --http
# .venv/bin/pip install -e ".[http]" # macOS/Linux
MEDDATA_API_KEY=md_your_key .venv/Scripts/python -m meddata_mcp.server
Notes
- Data is for informational purposes only and is not medical advice.
- Interaction data comes from established medical databases; an empty result means none were found in those sources, not that a combination is proven safe.