MCP fetch server error
The sites robots.txt (<robots.txt-url>), specifies that autonomous fetching of this page is not allowed
The server raises this as an MCP error. It goes on with the user agent, the url and the whole robots.txt, then tells the assistant to let you know.
The site's robots.txt disallows the fetch server.
The server stopped before it read the page.
What it means
The fetch server downloads the site's robots.txt before it fetches a page, and checks it with its own user agent, ModelContextProtocol/1.0 (Autonomous; +https://github.com/modelcontextprotocol/servers).
If the file disallows that agent for the page, the server raises this error and does not fetch.
It checks only when the request comes from the model. A request you start yourself with the fetch prompt in your client is not checked.
If robots.txt itself answers 401 or 403, a sibling error says the server assumes autonomous fetching is not allowed.
Fix it
- Read the robots.txt the message prints. A
Disallowline that covers your path, for your agent or for all agents, is the cause. - If the site allows it, as your own site does, add
--ignore-robots-txtto the server'sargs:"args": ["mcp-server-fetch", "--ignore-robots-txt"]. - Or fetch that one page yourself with the fetch prompt in your client. It is a user-initiated request, so the server does not check it.
- If the site does not want automated readers, leave it. robots.txt is the site's own rule.
With superbot
superbot is another way to read a page, not a fix for this server's check.
superbot's read of a page you name does not fetch robots.txt first.
It reads the page you pointed at, the way a browser follows a link.
A crawl does honour robots.txt on the links it finds.
The page it starts from is exempt.
Whether you may read the page is your call, so check the site's terms first.
Read https://httpbin.org/deny and tell me what the page says. The robots.txt of that site disallows /deny, so also tell me whether superbot checked robots.txt before reading it.
Short answer on robots: no, it wasn't checked before the read. My fetch tool sent a plain HTTP request straight to /deny and never looked at robots.txt. There is a crawl tool that reads and honours robots.txt, but it is for walking sites, not for reading one page, so it wasn't in play here.
The site's robots.txt, which I fetched separately and only after the page, says:
User-agent: *
Disallow: /denyThis needs an account.
An agent with none signs you in through /auth.md.
You read back one emailed code.
Related
Source: modelcontextprotocol/servers: src/fetch server.py and its README. Read on 2026-10-18.