Context7
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Search, retrieve, compare, and render SVG icons visually for AI agents.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"icon-visual": {
"command": "npx",
"args": [
"-y",
"@br-ai-n/mcp-icon-visual"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add icon-visual -- npx -y @br-ai-n/mcp-icon-visualวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"icon-visual": {
"command": "npx",
"args": [
"-y",
"@br-ai-n/mcp-icon-visual"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"icon-visual": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@br-ai-n/mcp-icon-visual"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub n0isy ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 8 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี 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 รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
MCP server that gives AI agents the ability to search, retrieve, compare, and render SVG icons. Built with Rust and the rmcp SDK.
Combines local filesystem access with a remote rendering API to resolve SVGs from any source — inline strings, URLs, local files, or Iconify IDs — and render them onto visual comparison grids.
The key insight: every tool returns images. A vision-capable LLM doesn't just get metadata — it *sees* the icons. This turns icon selection from guesswork into a visual conversation.
search_icons("machine learning") — 4x4 grid, cells 0–15, returned as PNG
These tools are designed to be composed by AI agents with vision. Below are three proven patterns.
An agent searches for icons and visually picks the best match — no blind URL selection.
┌─────────────────────────────┐
│ Agent + Vision │ └──────────────┬──────────────┘ │ ┌────────────────┼────────────────┐ v v v search_icons search_icons search_icons "cloud" "upload" "storage" │ │ │ v v v ┌──────────┐ ┌──────────┐ ┌──────────┐ │ 4x4 grid │ │ 4x4 grid │ │ 4x4 grid │ │ (sees) │ │ (sees) │ │ (sees) │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │ │ └───────────────┼───────────────┘ v "cells 3, 7, 12 match the project style" │ v render_grid [3 winners] │ v ┌──────────────────┐ │ final comparison │ │ grid (sees) │──> pick best └──────────────────┘
The agent runs multiple searches, looks at each grid, picks candidates by cell number, then renders a final side-by-side comparison to make the choice. Works especially well when the agent has context about the project's visual style.
An agent modifies SVG code and uses render_grid as a visual diff to track progress across iterations.
get_svg "mdi/cloud"
│ v ┌───────────┐ │ raw SVG │ │ markup │ └─────┬─────┘ │ ┌────────┴─────────────────────────────────────┐ │ Edit Loop │ │ │ │ Agent modifies SVG code │ │ │ │ │ v │ │ render_grid [original, v1, v2, v3] │ │ │ │ │ v │ │ ┌──────────────────────────────┐ │ │ │ cell 0: original │ │ │ │ cell 1: thicker strokes │ │ │ │ cell 2: rounded corners │ │ │ │ cell 3: filled variant │ │ │ └──────────────┬───────────────┘ │ │ │ │ │ agent sees all versions │ │ decides next edit │ │ │ │ │ └──── loop ──────────────────┘ │ v save final SVG to disk
Each iteration, the agent passes all versions (original + edits) as inline SVGs to render_grid. It sees them side-by-side in one image and decides whether to keep iterating or stop. The original always stays in cell 0 as a reference.
An agent ensures new icons match the visual style of existing project icons.
Project icons on disk Candidate sources
───────────────────── ───────────────── /app/icons/nav-home.svg search_icons "settings" /app/icons/nav-search.svg │ /app/icons/nav-profile.svg v │ picks cells 2, 5, 9 │ │ └──────────┬───────────────────┘ v render_grid [ /app/icons/nav-home.svg, ← cell 0: existing /app/icons/nav-search.svg, ← cell 1: existing /app/icons/nav-profile.svg, ← cell 2: existing candidate_url_1, ← cell 3: candidate candidate_url_2, ← cell 4: candidate candidate_url_3, ← cell 5: candidate " ...custom edit... " ← cell 6: agent's edit ] │ v ┌────────────────────────────────┐ │ grid image: │ │ existing icons vs candidates │ │ (agent sees style match/clash) │ └────────────────┬───────────────┘ │ agent judges: "cell 4 matches stroke weight and corner radius of cells 0-2, cell 3 is too thin, cell 5 wrong fill style" │ v get_svg cell_4_url │ v save to /app/icons/nav-settings.svg
By mixing local file paths and remote sources in a single grid, the agent can visually compare existing project icons against candidates in one shot. The grid becomes a style audit tool.
These patterns compose naturally. A real-world workflow might:
All driven by a single agent with vision, using three tools.
search_iconsSemantic icon search. Returns a 4x4 PNG grid (512x512, cells 0-15) and a mapping of cell numbers to SVG URLs.
| Parameter | Type | Default | Description | |
|---|---|---|---|---|
keyword | string | *required* | Semantic search query (e.g. "cloud computing", "arrows") | |
background | string | "#FFFFFF" | Grid background color, CSS hex | |
color | string \ | null | null | Recolor all icons to this CSS hex color |
get_svgRetrieve raw SVG markup from any source. Returns the complete SVG string for inspection or modification.
| Parameter | Type | Description |
|---|---|---|
source | string | URL, Iconify ID (mdi/cloud), absolute file path, or inline |
render_gridRender 1-16 SVGs onto a 4x4 comparison grid (512x512, cells 0-15). Useful for comparing icon variants side-by-side or previewing local icons alongside search results.
| Parameter | Type | Default | Description |
|---|---|---|---|
sources | string[] | *required* | 1-16 SVG sources (URLs, Iconify IDs, file paths, or inline SVGs) |
background | string | "#FFFFFF" | Grid background color, CSS hex |
All tools share a unified resolution pipeline that classifies sources automatically:
| Source type | Example | Resolution |
|---|---|---|
| Inline SVG | ... | Returned as-is |
| URL | https://mdn.alipayobjects.com/.../original | Resolved via API |
| File path | /home/user/icons/logo.svg | Read from local disk |
| Iconify ID | mdi/cloud, lucide/home | Resolved via API |
File paths are detected by prefix (/, ./, ~/) or .svg extension. Everything else without http:///https:// is treated as an Iconify ID.
All grid outputs are 512x512 PNG images with a 4x4 layout (128x128 cells), numbered 0-15 left-to-right, top-to-bottom:
┌────┬────┬────┬────┐
│ 0 │ 1 │ 2 │ 3 │ ├────┼────┼────┼────┤ │ 4 │ 5 │ 6 │ 7 │ ├────┼────┼────┼────┤ │ 8 │ 9 │ 10 │ 11 │ ├────┼────┼────┼────┤ │ 12 │ 13 │ 14 │ 15 │ └────┴────┴────┴────┘
Cell numbers appear at the bottom-left of each cell. Unused cells show the number only.
No build needed. Works on Linux (x64/arm64), macOS (Intel/Apple Silicon), and Windows (x64).
{
"mcpServers": { "icon-visual": { "command": "npx", "args": ["-y", "@br-ai-n/mcp-icon-visual"] } } }
Requires Rust (edition 2024):
cargo build --release --target x86_64-unknown-linux-musl
The release profile produces a fully static binary (musl libc, rustls-tls, LTO, stripped).
# Default upstream API
./mcp-icon-visual
./mcp-icon-visual --api-base http://localhost:3000
The server communicates over stdio using the MCP protocol.
{
"mcpServers": { "icon-visual": { "command": "npx", "args": ["-y", "@br-ai-n/mcp-icon-visual"] } } }
{
"mcpServers": { "icon-visual": { "command": "/path/to/mcp-icon-visual", "args": ["--api-base", "http://localhost:3000"] } } }
src/
├── main.rs # Entrypoint, CLI args, stdio transport ├── server.rs # IconServer + MCP tool routing + response builders ├── api_client.rs # HTTP client for upstream rendering API ├── resolve.rs # Source classification and SVG resolution ├── error.rs # Error types └── tools/ ├── mod.rs ├── search_icons.rs # SearchIconsParams ├── get_svg.rs # GetSvgParams └── render_grid.rs # RenderGridParams
# Unit tests (source classification)
cargo test
cargo test -- --ignored
| Crate | Purpose |
|---|---|
rmcp | MCP server SDK (tool routing, stdio transport) |
tokio | Async runtime |
reqwest | HTTP client (rustls-tls, no OpenSSL) |
serde / serde_json | Serialization |
schemars | JSON Schema generation for tool parameters |
clap | CLI argument parsing |
base64 | Base64 encoding |
tracing | Logging |
thiserror | Error derive macros |
MIT License
Copyright (c) 2025
Permission is hereby granted,
ตัดมาแค่ช่วงต้น อ่านต่อใน repo