Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Browse Gopher and Gemini resources safely: SSRF protection, TLS/TOFU, structured JSON output.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"gopher": {
"command": "uvx",
"args": [
"gopher-mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add gopher -- uvx gopher-mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"gopher": {
"command": "uvx",
"args": [
"gopher-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"gopher": {
"type": "stdio",
"command": "uvx",
"args": [
"gopher-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub cameronrye ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.10.2) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv), Docker ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, yontu
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Türkçe yazı denetimi: TDK kuralları, yapay zekâ izleri, metin türüne göre üslup.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A modern, cross-platform Model Context Protocol (MCP) server that enables AI assistants to browse and interact with both Gopher protocol](https://en.wikipedia.org/wiki/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: 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](https://cameronrye.github.io/gopher-mcp)
No clone, no checkout — uv fetches and runs the published package on demand:
uvx gopher-mcp
# Install from PyPI
pip install gopher-mcp
uv add gopher-mcp
# Clone the repository
git clone https://github.com/cameronrye/gopher-mcp.git cd gopher-mcp
./scripts/dev-setup.sh # Unix/macOS
scripts\dev-setup.bat # Windows
uv run task serve
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:
# The default CMD serves streamable-http on 0.0.0.0:8000
docker run --rm -p 8000:8000 \ -v gopher-mcp-state:/home/app/.local/share/gopher-mcp \ ghcr.io/cameronrye/gopher-mcp:latest
docker run --rm -i --no-healthcheck \ -v gopher-mcp-state:/home/app/.local/share/gopher-mcp \ ghcr.io/cameronrye/gopher-mcp:latest --transport stdio
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-rebinding
Host/Origincheck, matching what the SDK does when it is constructed with
such a host — otherwise every client that was not on localhost got
421 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:
| Client | Where the entry goes | Top-level key |
|---|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS), %APPDATA%\Claude\claude_desktop_config.json (Windows), ~/.config/Claude/claude_desktop_config.json (Linux) | mcpServers |
| Claude Code | claude mcp add --scope user gopher -- uvx gopher-mcp, or .mcp.json at the repository root for --scope project | mcpServers |
| Cursor | ~/.cursor/mcp.json, or .cursor/mcp.json for one project | mcpServers |
| VS Code | .vscode/mcp.json in the workspace, or MCP: Open User Configuration | servers |
| Zed | settings.json (zed: open settings) | context_servers |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | mcpServers |
{
"mcpServers": { "gopher": { "command": "uvx", "args": ["gopher-mcp"] } } }
That is the whole entry: every setting in Configuration has a working default, so add an "env" block only when you actually want to change one. Installed with pip rather than uvx? Use "command": "gopher-mcp" and "args": [] instead.
The Installation Guide has the exact JSON for each client, including the two that do not use the mcpServers key.
If a GUI client reports that the server failed to start, it is almost alway
ตัดมาแค่ช่วงต้น อ่านต่อใน repo