MapNetwork
Generate styled PNG/SVG map images of places in Japan with 11 customizable color themes.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Code-map tools for AI agents: see a repo's structure first, then edit only what matters.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://mcp.itamos-technologia.com/mcpพิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http itamos-tools https://mcp.itamos-technologia.com/mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"itamos-tools": {
"url": "https://mcp.itamos-technologia.com/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"itamos-tools": {
"type": "http",
"url": "https://mcp.itamos-technologia.com/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://mcp.itamos-technologia.com/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
server ให้ล็อกอินก่อนจึงจะแสดงรายการเครื่องมือ
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub Itamos-technologia ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตอบกลับใน 311 ms (HTTP 401)
ประกาศวิธีล็อกอินแบบ OAuth ให้โปรแกรม AI พาไปล็อกอินเอง
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.1.0) เข้า registry 30 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี MapNetwork, Wikivoyage MCP, String Db MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Generate styled PNG/SVG map images of places in Japan with 11 customizable color themes.
Wikivoyage travel guides: search destinations MCP: real tools for real work.
STRING protein networks: map identifiers and list interaction partners with confidence scores
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Built in Greece, for the world.
Free and open source under AGPL-3.0. Commercial licences for closed-source use.
Every LLM coding assistant faces the same wall: codebases are too large to fit in context. The standard response is to dump files — grep for something promising, cat it, hope for the best. At 50k files this breaks. At 240k files it never worked.
We built four tools that give an LLM structured perception of a codebase instead of raw file access, plus a sandboxed git to bring code in. The result is a model that navigates code the way a senior engineer does — starting from the architecture, narrowing to the module, reading only the segment it needs. One call takes it from the project straight to the lines it needs, and every save is checked before it lands.
Read the full paper: docs/PAPER.md: how each tool works, why it was designed that way, and how the hosted sandbox runs, with diagrams.
| Tool | What it does |
|---|---|
| read_file | The single entry point. With no path it lists your projects; a project name shows its structure with coordinates (no code); a coordinate opens a file map or one segment in a single call. Edits one segment at a time, and every save is verified automatically. |
| master_architect | The engine behind read_file. Indexes the codebase into a graph (files, imports, databases, servers) and keeps it in step with every save. In the sandbox it is not called directly: read_file does it. |
| write_file | Creates new files only and never overwrites; edits go through read_file. Every new file belongs to a project the agent names: an existing one, or a new name to start one. Nothing is placed automatically. |
| git | The original Itamos git tool, sandboxed for security: clone (remote URLs only, depth=1), status, commit. A clone is scanned into a project as soon as it finishes. Everything stays inside the session workspace; push is not available. |
| web_skeleton | LLM-first web perception. 97% token reduction vs raw HTML. Actions: search, skeleton, read, click. |
At least 97% fewer tokens than the usual shell workflow (grep, cat, run_cmd), measured against the best case where the model fixes the bug in one attempt. Real sessions save more, because the failed attempts common with raw shell access aren't counted.
Every client gets an isolated workspace. No shared state, no cross-session leakage. Workspaces are wiped after 10 minutes of inactivity.
read_file() → your projects
read_file(path="itsdangerous") → the structure: folders and files with coordinates, no code read_file(path="itsdangerous", segment="d.a.f") → the map of signer.py, one line per segment read_file(path="itsdangerous", segment="d.a.f.31.17") → the code of verify_signature, nothing else
Coordinates: letters are location (folders and files share one sequence per folder), numbers are what is inside a file. d.a.f.31.17 reads as src → itsdangerous → signer.py → segment 31.17. A folder that has never been scanned is scanned on first read; a cloned repository is scanned as soon as the clone finishes.
Nothing is dumped: a structure or file map over ~3,000 tokens returns an overview and asks for a search term instead. search works on both: file and folder names in a project, segment names in a file. trace=true shows what a file connects to, or a project's data flow.
Files are parsed into named segments. A 5000-line file might have 40 segments; its map is one line per segment, with classes listing their methods. The model reads the map, picks the segment it needs, reads that segment. Total context used is roughly 120 lines instead of 5000.
One edit at a time, and only on segments the model has read since the last change, so it can never change code it has not looked at. Saving verifies the file first:
| Level | Checks | On failure |
|---|---|---|
| L1 | Syntax: tree-sitter plus the language's own checker (py_compile, node --check, php -l, bash -n, gofmt, C/C++ in project context, config parsers) | Not saved; the error names the line |
| L2 | Config files through their service's checker (nginx -t, sshd -t, visudo, systemd-analyze). Linters run too | Config failure: not saved. Linter findings are only reported |
| L3 | Connections: every local import resolves to a project file (Python and JavaScript/TypeScript: any other import must be an installed package, for Python in the project's venv when it has one); SQL is checked against the live database schema | Saved, with what is incomplete and how to see it, so a project's first files can import files that don't exist yet |
L3 checks the content being saved, not an older index, and every save re-indexes the file in every supported language, so the map never lags behind the disk.
Raw HTML of a modern web page runs 50,000 to 200,000 tokens. web_skeleton output is 500 to 3,000 tokens. The model reads the skeleton, picks the section id it needs, reads that section only.
Verified in live use with Claude Opus 5.5 and Claude Sonnet. Any MCP-capable model can use the tools.
Don't take our word for it. Test the tools free in the hosted sandbox with your own model and your own repository, then post your results in Discussions → Benchmarks: model, task, tokens, time.
Found a bug? Open an issue with the steps to reproduce it. Every report makes the tools better.
The sandbox server speaks standard MCP over HTTP POST with SSE support.
Compatible with any MCP client. Used in practice through Claude.ai and through direct API integration (our benchmark harness).
Try it in Claude (free live alpha): copy https://mcp.itamos-technologia.com/mcp, open Claude's connector settings, click Add custom connector, paste the address and click Add. A page opens with one button, Create my sandbox: no account, no email. Switch it on in a chat (+ → Connectors) and ask, for example, *"Go to bbc.com/news and tell me the top stories."* In other MCP clients, add the same address as a remote MCP server. Sandboxes are deleted after 10 minutes of inactivity, so don't use them for sensitive data.
apt install build-essential python3).git clone https://github.com/itamos-technologia/itamos-mcp-tools.git
cd itamos-mcp-tools npm install
One npm install sets up everything, including the tools folder.
On Ubuntu 26.04 you can install the package from Releases instead: sudo apt install ./itamos-mcp-tools_1.1.0_all.deb. It sets up a service user, a systemd service, settings in /etc/itamos-mcp-tools/env and the command itamos-mcp-create-slots, then tells you the next two steps.
Besides the standard tree-sitter grammars (installed by npm install), read_file and the segmenter use extra parsers from the grammars/ folder:
| Files | Parser | Falls back to |
|---|---|---|
.cu .cuh .hip | tree-sitter-cuda-plus | stock tree-sitter-cuda, then C++ |
.metal | tree-sitter-metal-plus | tree-sitter-metal, then C++ |
.cpp .cc .hpp, C++ .h | tree-sitter-cpp-plus | stock tree-sitter-cpp |
.m .mm, .h with @interface | tree-sitter-objc | C / C++ |
The "plus" parsers are the stock grammar plus extra C++ rules, checked to give the identical tree wherever the stock grammar already parses. A parser that is missing or fails to load is skipped, never fatal.
grammars/tree-sitter-*/prebuilds/linux-x64/ (Node-API, any Node 18+, glibc 2.14+), and npm install sets up the rest. cd grammars/tree-sitter-cuda-plus && npx node-gyp rebuild # same for tree-sitter-cpp-plus, -metal-plus, -metal
grammars/tree-sitter-* folder is a self-contained package. Copy one in and the sandbox finds it by name, with no install or symlink. To keep the grammars somewhere else, set SANDBOX_GRAMMARS_DIR.grammars/plus/): grammars/plus/build_plus.sh generates with tree-sitter-cli 0.25.10 (ABI 15), compiles, and publishes into the matching tree-sitter-* folder. Its header shows the arguments.sudo scripts/create-slots.sh tank/sandboxes 500 2G $USER
This creates slot_001 to slot_500 under the ZFS dataset tank/sandboxes (use your own pool name), each with a 2 GB quota and lz4 compression, owned by the user the server runs as. It is safe to run again.
SANDBOX_ROOT=/tank/sandboxes SANDBOX_TOTAL_SLOTS=500 npm start
From the same machine, add http://localhost:4200/mcp as a connector in your MCP client. Local connections are identified by IP address and need no sign-in.
Firewall port 4200 and put an HTTPS reverse proxy (for example nginx) in front of it that sets X-Forwarded-For and X-Forwarded-Proto. Requests that arrive through the proxy use the anonymous one-click sign-in, so users on shared addresses (such as claude.ai) each get their own sandbox. Direct connections to port 4200 skip the sign-in, which is why the port must not be reachable from outside.
read_file and web_skeleton give untitled paragraphs and page sections a short title (5 to 10 words) from a small summarizer model, so the agent can tell parts apart without reading them. Without a summarizer everything still works; those parts are then named by their first line.
Any OpenAI-compatible chat endpoint works, set with ITAMOS_SUMMARIZER_URL (default http://127.0.0.1:8090): a single llama-server, Ollama, or the included router in front of several GPUs. The whole paragraph is always sent, never cut.
The hosted sandbox runs Gemma 4 E4B (Q4_0) as summarizer and EmbeddingGemma 300M as embedder on three GPUs (one 16 GB MI50 and two 8 GB V340 dies), each summarizer started like this:
llama-server -m gemma-4-E4B-it-Q4_0.gguf -ngl 99 --port 8190 \
-np 64 -c 524288 --kv-unified -fa on --cache-type-k q4_0 --cache-type-v q4_0 -rea off
--kv-unified: one shared KV pool, so each request uses only the tokens it needs.--cache-type-k q4_0 --cache-type-v q4_0 (needs -fa on): a 4-bit KV cache, about 4.5 KB per token for this model.-c is the pool in tokens: 524,288 on the MI50, 262,144 on each V340 die (with 32 slots).The router (router/llm-router.js, service itamos-llm-router) listens on 8090 (summarizer) and 8091 (embedder). Before sending a request it counts its tokens with the backend's own tokenizer, sends it to a GPU whose pool has room (preferring faster GPUs by weight), and makes it wait in line when none has. A GPU that fails is skipped for 15 seconds and the request is retried on another. Configure it with ROUTES (in the package: /etc/itamos-mcp-tools/router.env); GET /router/status shows each GPU's pool, reserved
ตัดมาแค่ช่วงต้น อ่านต่อใน repo