Cross-platform MCP server for AI assistants to browse and interact with Gopher and Gemini protocols securely.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Gopher MCP.
A modern, cross-platform Model Context Protocol (MCP) server that enables AI assistants to browse and interact with both Gopher protocol and Gemini protocol resources safely and efficiently.
The Gopher & Gemini MCP Server bridges vintage and modern alternative internet protocols with AI assistants, allowing LLMs like Claude to explore the unique content and communities that thrive on both Gopherspace and Geminispace. Built with FastMCP and modern Python practices, it provides secure, efficient gateways to these distinctive internet protocols.
Key Benefits:
gopher_fetch and gemini_fetch tools for comprehensive protocol coverage1) and Index-Search servers (7) as structured menus, text (0), HTML
(h), info (i) and error (3) lines as text, the fourteen binary types as
metadata only, and the three interactive ones (2, 8, T) refused without
opening a connection. The one standard type with no category of its own is +
(redundant server), which names an alternate host for the preceding item
rather than content to render; it takes the unknown-type path below. An
unknown type is read as text, best-effort, and an
hURL URL:<target> selector is followed to the destination the server
actually statedrefresh bypassoffset reads the rest instead of leaving a partial viewGopher (RFC 1436, including the de-facto item types in common use) and Gemini, both read-only. That is the whole surface, and the neighbouring protocols are deliberately out of scope rather than merely unbuilt:
: item type is recognised because it
appears in ordinary menus, but no Gopher+ attribute or metadata request is
ever sent.If you need one of these, an MCP server that does it well is a better answer than a flag on this one.
Complete documentation is available at cameronrye.github.io/gopher-mcp
No clone, no checkout β uv fetches and runs the published package on demand:
Tagged releases publish a slim, non-root image to
ghcr.io/cameronrye/gopher-mcp, tagged with the release version plus :latest
for stable (non-pre-release) tags:
To run a modified tree, the repository ships the Dockerfile the published
image is built from: docker build -t gopher-mcp .
Mount a volume, or Gemini trust is meaningless. Without one, the TOFU pins and the client certificates' private keys die with the container, so every start re-arms blind trust-on-first-use β the pin is the only thing that authenticates a Gemini capsule β and destroys any identity you minted, whose private key cannot be recovered.
Mount it at that exact path. /home/app/.local/share/gopher-mcp is where
the server writes (tofu.json and certs/), and it is the one directory the
image pre-creates owned by the runtime user and mode 700 β which is what lets
a named volume come up writable instead of root-owned. Mounting anywhere else
persists an empty directory. ~/.gemini is not the path: it is only a
read-in-place upgrade route for installs that pinned certificates before
gopher-mcp had a directory of its own, and it is honoured only when its store
file is already there, which it never is in a fresh image.
Health checks. The HTTP transports serve GET /health, which answers
{"status": "ok", "version": "..."} and nothing else β no configuration, no
allowlists, no store paths. It bypasses authorization by SDK design, which is
what makes it usable as a probe. The image's HEALTHCHECK polls it on the
hard-coded port 8000 to match the default CMD, so override the healthcheck
alongside --port, and pass --no-healthcheck when running stdio β a stdio
container serves no HTTP and would otherwise be reported unhealthy while working
perfectly.
Note: the default
CMDbinds0.0.0.0so the container is reachable out of the box. A non-loopback--hostalso turns off FastMCP's DNS-rebindingHost/Origincheck, matching what the SDK does when it is constructed with such a host β otherwise every client that was not on localhost got421 Misdirected Request. Keep the check on by naming the hostnames the deployment answers to with--allowed-host NAME(repeatable; a bare name matches any port). The HTTP transports are unauthenticated and have no TLS either β put the container behind a trusted reverse proxy, or use--transport stdio, before exposing it beyond your machine.
Every client below runs the server over stdio β no ports, no TLS, no listening socket. The entry is the same three fields everywhere; only the file and the top-level key change:
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/cameronrye-gopher-mcp)<a href="https://allmcps.com/mcp/cameronrye-gopher-mcp"><img src="https://allmcps.com/api/badge/cameronrye-gopher-mcp?style=directory" alt="Gopher MCP on AllMCPs" /></a>