Context7
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Read Project Gutenberg books via MCP. Search, fetch metadata, and retrieve text in passages.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
GUTENBERG_BASE_URL, GUTENBERG_TOOLS, GUTENBERG_BOOK_ID, GUTENBERG_CHUNK_SIZE, GUTENBERG_LANGUAGEต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"project-gutenberg": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GUTENBERG_BASE_URL",
"-e",
"GUTENBERG_TOOLS",
"-e",
"GUTENBERG_BOOK_ID",
"-e",
"GUTENBERG_CHUNK_SIZE",
"-e",
"GUTENBERG_LANGUAGE",
"roberthouse224/project-gutenberg-mcp:1.2.0"
],
"env": {
"GUTENBERG_BASE_URL": "ใส่ค่าของคุณ",
"GUTENBERG_TOOLS": "ใส่ค่าของคุณ",
"GUTENBERG_BOOK_ID": "ใส่ค่าของคุณ",
"GUTENBERG_CHUNK_SIZE": "ใส่ค่าของคุณ",
"GUTENBERG_LANGUAGE": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add project-gutenberg --env GUTENBERG_BASE_URL='ใส่ค่าของคุณ' --env GUTENBERG_TOOLS='ใส่ค่าของคุณ' --env GUTENBERG_BOOK_ID='ใส่ค่าของคุณ' --env GUTENBERG_CHUNK_SIZE='ใส่ค่าของคุณ' --env GUTENBERG_LANGUAGE='ใส่ค่าของคุณ' -- docker run -i --rm -e GUTENBERG_BASE_URL -e GUTENBERG_TOOLS -e GUTENBERG_BOOK_ID -e GUTENBERG_CHUNK_SIZE -e GUTENBERG_LANGUAGE roberthouse224/project-gutenberg-mcp:1.2.0เติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"project-gutenberg": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GUTENBERG_BASE_URL",
"-e",
"GUTENBERG_TOOLS",
"-e",
"GUTENBERG_BOOK_ID",
"-e",
"GUTENBERG_CHUNK_SIZE",
"-e",
"GUTENBERG_LANGUAGE",
"roberthouse224/project-gutenberg-mcp:1.2.0"
],
"env": {
"GUTENBERG_BASE_URL": "ใส่ค่าของคุณ",
"GUTENBERG_TOOLS": "ใส่ค่าของคุณ",
"GUTENBERG_BOOK_ID": "ใส่ค่าของคุณ",
"GUTENBERG_CHUNK_SIZE": "ใส่ค่าของคุณ",
"GUTENBERG_LANGUAGE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"project-gutenberg": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GUTENBERG_BASE_URL",
"-e",
"GUTENBERG_TOOLS",
"-e",
"GUTENBERG_BOOK_ID",
"-e",
"GUTENBERG_CHUNK_SIZE",
"-e",
"GUTENBERG_LANGUAGE",
"roberthouse224/project-gutenberg-mcp:1.2.0"
],
"env": {
"GUTENBERG_BASE_URL": "ใส่ค่าของคุณ",
"GUTENBERG_TOOLS": "ใส่ค่าของคุณ",
"GUTENBERG_BOOK_ID": "ใส่ค่าของคุณ",
"GUTENBERG_CHUNK_SIZE": "ใส่ค่าของคุณ",
"GUTENBERG_LANGUAGE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
GUTENBERG_BOOK_ID envGUTENBERG_CHUNK_SIZE envGUTENBERG_LANGUAGE envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub bobbyhouse ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: GUTENBERG_BASE_URL, GUTENBERG_TOOLS
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.2.0) เข้า registry 8 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย
ในหมวดเดียวกันมี Context7, Codebase Memory, Exa
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
An MCP server for reading books from Project Gutenberg.
Project Gutenberg's robot access policy states that the site is intended for human users only. Automated access may result in your IP being blocked.
To use this MCP server you must run your own mirror. Project Gutenberg explicitly supports and encourages mirroring — see their mirroring guide for details.
This repository includes a ready-to-run mirror server in the mirror/ directory.
The mirror server downloads the Project Gutenberg catalog on startup (~5 MB compressed) and caches book files locally on first access. It exposes the URL structure that this MCP server expects.
Runs the mirror and MCP server together. The MCP server is exposed on HTTP at port 8081.
docker compose up
The mirror is available at http://localhost:8080 and the MCP server at http://localhost:8081/mcp.
Build and start just the mirror, then connect an MCP client via stdio.
task build:mirror
task start:mirror
The mirror runs at http://localhost:8080. Example MCP client config (stdio):
{
"mcpServers": { "project-gutenberg-mcp": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GUTENBERG_BASE_URL=http://host.docker.internal:8080", "-e", "GUTENBERG_TOOLS=search_books,get_book_metadata,list_passages,get_passage", "roberthouse224/project-gutenberg-mcp" ] } } }
All configuration is via environment variables.
| Variable | Required | Description |
|---|---|---|
GUTENBERG_BASE_URL | Yes | Base URL of your Gutenberg mirror (see Mirror Setup above) |
GUTENBERG_TOOLS | Yes | Comma-separated list of tools to expose (see below) |
GUTENBERG_BOOK_ID | No | Project Gutenberg book ID to use as default |
GUTENBERG_CHUNK_SIZE | No | Passage size in bytes (default: 4096) |
GUTENBERG_LANGUAGE | No | Default ISO 639-1 language code for search_books (default: en) |
| Tool | Description |
|---|---|
search_books | Search for books by title or author |
get_book_metadata | Fetch metadata (title, authors, formats) for a book |
fetch_book_text | Download the full plain text of a book |
list_passages | List fixed-size passage keys for a book |
get_passage | Fetch a specific passage by its key |
When GUTENBERG_BOOK_ID is set, tools that take a book ID will use it as the default. When it is not set, include search_books in your tools list so an agent can discover IDs first.
GUTENBERG_BASE_URL=http://localhost:8080 \
GUTENBERG_BOOK_ID=2680 \ GUTENBERG_TOOLS=get_book_metadata,list_passages,get_passage \ ./project-gutenberg-mcp --transport stdio
GUTENBERG_BASE_URL=http://localhost:8080 \
GUTENBERG_BOOK_ID=2680 \ GUTENBERG_TOOLS=get_book_metadata,list_passages,get_passage \ ./project-gutenberg-mcp --transport http --addr :8081
# MCP server
docker pull roberthouse224/project-gutenberg-mcp:1.2.0
docker pull roberthouse224/gutenberg-mirror:1.2.0
Both Dockerfiles use Docker Hardened Images (DHI) for enhanced security. Building requires authentication to Docker Hub:
docker login
Then build:
# Build MCP server
docker build -t project-gutenberg-mcp .
docker build -f mirror/Dockerfile -t gutenberg-mirror ./mirror
# HTTP
docker run -p 8081:8081 \ -e GUTENBERG_BASE_URL=http://host.docker.internal:8080 \ -e GUTENBERG_BOOK_ID=2680 \ -e GUTENBERG_TOOLS=get_book_metadata,list_passages,get_passage \ roberthouse224/project-gutenberg-mcp --transport http --addr :8081
docker run -i --rm \ -e GUTENBERG_BASE_URL=http://host.docker.internal:8080 \ -e GUTENBERG_BOOK_ID=2680 \ -e GUTENBERG_TOOLS=get_book_metadata,list_passages,get_passage \ roberthouse224/project-gutenberg-mcp
# Create a named volume for cache persistence
docker volume create gutenberg-cache
docker run -d \ -p 8080:8080 \ -v gutenberg-cache:/data \ --name gutenberg-mirror \ roberthouse224/gutenberg-mirror:1.2.0
Both images support linux/amd64 and linux/arm64 architectures. To build and push multi-arch images:
# Create a builder instance
docker buildx create --name multiarch --use
docker buildx build \ --platform linux/amd64,linux/arm64 \ -t roberthouse224/project-gutenberg-mcp:1.2.0 \ -t roberthouse224/project-gutenberg-mcp:latest \ --push \ .
docker buildx build \ --platform linux/amd64,linux/arm64 \ -t roberthouse224/gutenberg-mirror:1.2.0 \ -t roberthouse224/gutenberg-mirror:latest \ --push \ -f mirror/Dockerfile \ ./mirror
{
"mcpServers": { "project-gutenberg-mcp": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GUTENBERG_BASE_URL=http://host.docker.internal:8080", "-e", "GUTENBERG_BOOK_ID=2680", "-e", "GUTENBERG_TOOLS=get_book_metadata,list_passages,get_passage", "roberthouse224/project-gutenberg-mcp:1.2.0" ] } } }
task build # outputs to build/project-gutenberg-mcp
task build:mirror # outputs to mirror/build/mirror task test
A few useful IDs:
| Book | ID |
|---|---|
| Meditations — Marcus Aurelius | 2680 |
| The Republic — Plato | 1497 |
| Thus Spoke Zarathustra — Nietzsche | 1998 |
| Moby Dick — Melville | 2701 |
| Pride and Prejudice — Austen | 1342 |