Free. No auth. Streamable HTTP.
A drug interaction MCP server for Claude, ChatGPT, and Cursor
Give your assistant the Interaction Checker tools. Ask "can I take these together?" and it checks every pair against FDA prescribing labels and answers with the exact sentence and a link, instead of guessing.
Server URL
https://interaction-checker.com/mcpPaste it into any MCP client. There is no sign-in step because the server needs none.
Add it to your client
Claude
In Claude (web or desktop) open Settings, Connectors, Add custom connector, and paste the server URL. No OAuth step appears because none is needed. In Claude Code:
claude mcp add --transport http interaction-checker https://interaction-checker.com/mcpChatGPT
Settings, Connectors, Create: paste the server URL and choose no authentication. The server implements the search and fetch tools ChatGPT expects, so it works in deep research as well as in ordinary chats with developer mode on.
Cursor, Windsurf, Claude Desktop (JSON config)
{
"mcpServers": {
"interaction-checker": {
"url": "https://interaction-checker.com/mcp"
}
}
}VS Code
{
"servers": {
"interaction-checker": {
"type": "http",
"url": "https://interaction-checker.com/mcp"
}
}
}Tools
| Tool | Arguments | What it does |
|---|---|---|
check_interactions | items: string[] | Every pair among a list, with severity and the label quotes behind it. |
search_substances | query: string, limit?: number | Find drugs, supplements, foods, and habits by name, brand, class, or plain language. |
get_substance | id: string | Names, classes, label source, interaction counts. |
get_substance_interactions | id: string, severity?: string | Everything one item interacts with, most severe first. |
get_pill_appearances | id: string | What a drug looks like: every tablet and capsule version, with images. |
get_drug_facts | id: string | Sourced facts, community claims with evidence status, misconceptions, FAQ. |
search | query: string | ChatGPT connector search: documents to read with fetch. |
fetch | id: string | ChatGPT connector fetch: one document by id. |
Every tool returns a readable text block and, where it applies, structuredContent with the same JSON the REST API returns. Items can be generic names, brands, supplements, foods, or habits; unresolved names come back with suggestions so the assistant can ask instead of guessing.
What a conversation looks like
You: I take sertraline and my doctor added tramadol. I also use St. John's wort. Anything to worry about?
Assistant (after calling check_interactions with those three): All three pairs are graded major. The sertraline label says increased risk of serotonin syndrome when co-administered with other serotonergic agents, and quotes the instruction to inform patients and monitor for symptoms. NCCIH's St. John's wort page warns that combining it with antidepressants and other serotonergic drugs increases the same risk. Then the links, and a reminder to raise it with the prescriber or pharmacist.
Protocol notes
- Transport. Streamable HTTP at a single endpoint,
POST https://interaction-checker.com/mcp. Responses are plain JSON; there are no server-initiated streams, soGETandDELETEreturn 405. - Versions. 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26. Clients on the 2026-07-28 revision send per-request
_metaand theMCP-Protocol-Version,Mcp-Method, andMcp-Nameheaders, which are validated; older clients open withinitialize.server/discoveris implemented. - Stateless. No session ids are minted or required. Every call carries everything it needs.
- Limits. 60 requests per minute per IP (429 with
Retry-After), 10 items per check, CORS open for browser-based clients.
A raw call, for anyone wiring it up by hand:
curl -X POST https://interaction-checker.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_interactions","arguments":{"items":["warfarin","aspirin","fish oil"]}}}'