MDN MCP (experimental)
MDN's experimental server for searching MDN docs and browser-compatibility data, so coding agents use current web platform facts. MDN says it logs queries while it's an experiment.
Test results
Last passed 2026-10-23Server package tested: mcp-remote 0.15.2 (npm, Node v20.19.2; resolved 2026-10-23)
Direct and key dependencies as resolved: express 4.22.3 · open 10.2.0 · strict-url-sanitise 0.0.1 · undici 7.30.1
All 79 resolved dependencies
accepts==1.3.8
array-flatten==1.1.1
body-parser==1.20.9
bundle-name==4.1.1
bytes==3.1.2
call-bind-apply-helpers==1.0.2
call-bound==1.0.4
content-disposition==0.5.4
content-type==1.0.5
cookie==0.7.2
cookie-signature==1.0.7
debug==2.6.9
default-browser==5.5.1
default-browser-id==5.0.1
define-lazy-prop==3.0.0
depd==2.0.0
destroy==1.2.0
dunder-proto==1.0.1
ee-first==1.1.1
encodeurl==2.0.0
es-define-property==1.0.1
es-errors==1.3.0
es-object-atoms==1.1.2
escape-html==1.0.3
etag==1.8.1
express==4.22.3
finalhandler==1.3.2
forwarded==0.2.0
fresh==0.5.2
function-bind==1.1.2
get-intrinsic==1.3.0
get-proto==1.0.1
gopd==1.2.0
has-symbols==1.1.0
hasown==2.0.4
http-errors==2.0.1
iconv-lite==0.4.24
inherits==2.0.4
ipaddr.js==1.9.1
is-docker==3.0.0
is-inside-container==1.0.0
is-wsl==3.1.1
math-intrinsics==1.1.0
media-typer==0.3.0
merge-descriptors==1.0.3
methods==1.1.2
mime==1.6.0
mime-db==1.52.0
mime-types==2.1.35
ms==2.0.0, 2.1.3
negotiator==0.6.3
object-inspect==1.13.4
on-finished==2.4.2
open==10.2.0
parseurl==1.3.3
path-to-regexp==0.1.13
proxy-addr==2.0.8
qs==6.16.1
range-parser==1.2.1
raw-body==2.5.3
run-applescript==7.1.0
safe-buffer==5.2.1
safer-buffer==2.1.2
send==0.19.2
serve-static==1.16.3
setprototypeof==1.2.0
side-channel==1.1.1
side-channel-list==1.0.1
side-channel-map==1.0.1
side-channel-weakmap==1.0.2
statuses==2.0.2
strict-url-sanitise==0.0.1
toidentifier==1.0.1
type-is==1.6.18
undici==7.30.1
unpipe==1.0.0
utils-merge==1.0.1
vary==1.1.2
wsl-utils==0.1.0Captured with: npm ls --all --json in the npx env.
Full result per app: Does it work with Claude Code? · Does it work with Cursor? · Does it work with ChatGPT (Codex)?
Real test
PassedOne run from our records. When two runs share a date, we show a failure if there is one.
- Client
- ChatGPT (Codex) · Codex CLI 0.162.0-alpha.17.2
- Date
- Oct 23, 2026
- The task we gave
Using only the mdn-mcp MCP tools, look up on MDN which HTTP response status code means 'I'm a teapot', and reply with the number.
- What it promised
- details not recorded for this run
- What happened
Tool calls:
mdn-mcp:searchTool result
{"content": [{"type": "text", "text": "# 418 I'm a teapot\n`path`: `/en-US/docs/Web/HTTP/Reference/Status/418`\nThe HTTP 418 I'm a teapot status response code indicates that the server refuses to brew coffee because it is, permanently, a teapot.\nA combined coffee/tea pot that is temporarily out of coffee should instead return 503.\nThis error is a reference to Hyper Text Coffee Pot Control Protocol defined in April Fools' jokes in 1998 and 2014.\n\n# HTTP response status codes\n`path`: `/en-US/docs/Web/HTTP/Reference/Status`\n`compat-key`: `http.status`\nHTTP response status codes indicate whether a specific HTTP request has been successfully completed.\nResponses are grouped in five classes:\n\n# CSPViolationReport: statusCode property\n`path`: `/en-US/docs/Web/API/CSPViolationReport/statusCode`\n`compat-key`: `api.ReportingObserver.ReportingObserver.options_parameter.types_property.csp-violation`\nThe statusCode property of the CSPViolationReport dictionary is a number representing the HTTP status code of the response to the request that triggered a Content Security Policy (CSP) violation (when loading a window or worker).\n\n# SecurityPolicyViolationEvent: statusCode property\n`path`: `/en-US/docs/Web/API/SecurityPolicyViolationEvent/statusCode`\n`compat-key`: `api.SecurityPolicyViolationEvent.statusCode`\nThe statusCode read-only property of the SecurityPolicyViolationEvent interface is a number representing the HTTP status code of the window or worker in which the ConteAgent reply
418- Verdict
- Passed
Install
claude mcp add mdn-mcp -- npx -y mcp-remote https://mcp.mdn.mozilla.net/Run in your terminal. This exact command is what our harness runs in Claude Code; see the results above.
{
"mcpServers": {
"mdn-mcp": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.mdn.mozilla.net/"
]
}
}
}Save as .cursor/mcp.json. This exact config is what our harness runs in Cursor; see the results above.
{
"mcpServers": {
"mdn-mcp": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.mdn.mozilla.net/"
]
}
}
}Add to claude_desktop_config.json and restart Claude Desktop. Tested on the Linux beta; see the results above.
[mcp_servers.mdn-mcp]
command = "npx"
args = ["-y", "mcp-remote", "https://mcp.mdn.mozilla.net/"]Add to ~/.codex/config.toml (shared by the ChatGPT (Codex) CLI and the ChatGPT desktop app; Codex runs inside the ChatGPT desktop app). Tested with the ChatGPT (Codex) CLI bundled in the ChatGPT desktop app; see the results above.
Not connecting? Troubleshooting: Claude Code · Cursor · Claude Desktop · ChatGPT (Codex)
Test history
| Date | Check | Result | Versions tested |
|---|---|---|---|
| 2026-10-23 | Protocol (direct stdio) | Protocol: starts, 3 tools listed | mcp-remote 0.15.2 · server reported v0.0.1 |
| 2026-10-23 | Claude Code | Passed install, connect, tools, agent task | Claude Code 2.1.296 · mcp-remote 0.15.2 |
| 2026-10-23 | Cursor | Passed install, connect, tools, agent task | Cursor CLI 2026.10.22-27dcf5f · mcp-remote 0.15.2 |
| 2026-10-23 | ChatGPT (Codex) | Passed install, connect, tools, agent task | Codex CLI 0.162.0-alpha.17.2 · mcp-remote 0.15.2 |
Tools seen by our harness (3)
get-compatget-docsearch