Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MCP server for NetBox DCIM/IPAM with read-only and dry-run modes
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
NETBOX_URL, NETBOX_TOKEN, NETBOX_VERIFY_SSL, NETBOX_TIMEOUT, NETBOX_BRANCHING_ENABLED, NETBOX_BRANCH, NETBOX_PLUGIN_DISCOVERY, READ_ONLY_MODE, DRY_RUN_MODE, DISABLED_TAGS, LOG_LEVEL, RESPONSE_MAX_SIZE, RATE_LIMIT_ENABLED, RATE_LIMIT_MAX_REQUESTS, RATE_LIMIT_WINDOW_MINUTES, TOOL_SEARCH_ENABLED, TOOL_SEARCH_STRATEGY, TOOL_SEARCH_MAX_RESULTSค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"netbox": {
"command": "uvx",
"args": [
"netbox-mcp"
],
"env": {
"NETBOX_URL": "ใส่ค่าของคุณ",
"NETBOX_TOKEN": "ใส่ค่าของคุณ",
"NETBOX_VERIFY_SSL": "ใส่ค่าของคุณ",
"NETBOX_TIMEOUT": "ใส่ค่าของคุณ",
"NETBOX_BRANCHING_ENABLED": "ใส่ค่าของคุณ",
"NETBOX_BRANCH": "ใส่ค่าของคุณ",
"NETBOX_PLUGIN_DISCOVERY": "ใส่ค่าของคุณ",
"READ_ONLY_MODE": "ใส่ค่าของคุณ",
"DRY_RUN_MODE": "ใส่ค่าของคุณ",
"DISABLED_TAGS": "ใส่ค่าของคุณ",
"LOG_LEVEL": "ใส่ค่าของคุณ",
"RESPONSE_MAX_SIZE": "ใส่ค่าของคุณ",
"RATE_LIMIT_ENABLED": "ใส่ค่าของคุณ",
"RATE_LIMIT_MAX_REQUESTS": "ใส่ค่าของคุณ",
"RATE_LIMIT_WINDOW_MINUTES": "ใส่ค่าของคุณ",
"TOOL_SEARCH_ENABLED": "ใส่ค่าของคุณ",
"TOOL_SEARCH_STRATEGY": "ใส่ค่าของคุณ",
"TOOL_SEARCH_MAX_RESULTS": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add netbox --env NETBOX_URL='ใส่ค่าของคุณ' --env NETBOX_TOKEN='ใส่ค่าของคุณ' --env NETBOX_VERIFY_SSL='ใส่ค่าของคุณ' --env NETBOX_TIMEOUT='ใส่ค่าของคุณ' --env NETBOX_BRANCHING_ENABLED='ใส่ค่าของคุณ' --env NETBOX_BRANCH='ใส่ค่าของคุณ' --env NETBOX_PLUGIN_DISCOVERY='ใส่ค่าของคุณ' --env READ_ONLY_MODE='ใส่ค่าของคุณ' --env DRY_RUN_MODE='ใส่ค่าของคุณ' --env DISABLED_TAGS='ใส่ค่าของคุณ' --env LOG_LEVEL='ใส่ค่าของคุณ' --env RESPONSE_MAX_SIZE='ใส่ค่าของคุณ' --env RATE_LIMIT_ENABLED='ใส่ค่าของคุณ' --env RATE_LIMIT_MAX_REQUESTS='ใส่ค่าของคุณ' --env RATE_LIMIT_WINDOW_MINUTES='ใส่ค่าของคุณ' --env TOOL_SEARCH_ENABLED='ใส่ค่าของคุณ' --env TOOL_SEARCH_STRATEGY='ใส่ค่าของคุณ' --env TOOL_SEARCH_MAX_RESULTS='ใส่ค่าของคุณ' -- uvx netbox-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"netbox": {
"command": "uvx",
"args": [
"netbox-mcp"
],
"env": {
"NETBOX_URL": "ใส่ค่าของคุณ",
"NETBOX_TOKEN": "ใส่ค่าของคุณ",
"NETBOX_VERIFY_SSL": "ใส่ค่าของคุณ",
"NETBOX_TIMEOUT": "ใส่ค่าของคุณ",
"NETBOX_BRANCHING_ENABLED": "ใส่ค่าของคุณ",
"NETBOX_BRANCH": "ใส่ค่าของคุณ",
"NETBOX_PLUGIN_DISCOVERY": "ใส่ค่าของคุณ",
"READ_ONLY_MODE": "ใส่ค่าของคุณ",
"DRY_RUN_MODE": "ใส่ค่าของคุณ",
"DISABLED_TAGS": "ใส่ค่าของคุณ",
"LOG_LEVEL": "ใส่ค่าของคุณ",
"RESPONSE_MAX_SIZE": "ใส่ค่าของคุณ",
"RATE_LIMIT_ENABLED": "ใส่ค่าของคุณ",
"RATE_LIMIT_MAX_REQUESTS": "ใส่ค่าของคุณ",
"RATE_LIMIT_WINDOW_MINUTES": "ใส่ค่าของคุณ",
"TOOL_SEARCH_ENABLED": "ใส่ค่าของคุณ",
"TOOL_SEARCH_STRATEGY": "ใส่ค่าของคุณ",
"TOOL_SEARCH_MAX_RESULTS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"netbox": {
"type": "stdio",
"command": "uvx",
"args": [
"netbox-mcp"
],
"env": {
"NETBOX_URL": "ใส่ค่าของคุณ",
"NETBOX_TOKEN": "ใส่ค่าของคุณ",
"NETBOX_VERIFY_SSL": "ใส่ค่าของคุณ",
"NETBOX_TIMEOUT": "ใส่ค่าของคุณ",
"NETBOX_BRANCHING_ENABLED": "ใส่ค่าของคุณ",
"NETBOX_BRANCH": "ใส่ค่าของคุณ",
"NETBOX_PLUGIN_DISCOVERY": "ใส่ค่าของคุณ",
"READ_ONLY_MODE": "ใส่ค่าของคุณ",
"DRY_RUN_MODE": "ใส่ค่าของคุณ",
"DISABLED_TAGS": "ใส่ค่าของคุณ",
"LOG_LEVEL": "ใส่ค่าของคุณ",
"RESPONSE_MAX_SIZE": "ใส่ค่าของคุณ",
"RATE_LIMIT_ENABLED": "ใส่ค่าของคุณ",
"RATE_LIMIT_MAX_REQUESTS": "ใส่ค่าของคุณ",
"RATE_LIMIT_WINDOW_MINUTES": "ใส่ค่าของคุณ",
"TOOL_SEARCH_ENABLED": "ใส่ค่าของคุณ",
"TOOL_SEARCH_STRATEGY": "ใส่ค่าของคุณ",
"TOOL_SEARCH_MAX_RESULTS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
NETBOX_VERIFY_SSL envNETBOX_TIMEOUT envNETBOX_BRANCHING_ENABLED envNETBOX_BRANCH envNETBOX_PLUGIN_DISCOVERY envREAD_ONLY_MODE envDRY_RUN_MODE envDISABLED_TAGS envLOG_LEVEL envRESPONSE_MAX_SIZE envRATE_LIMIT_ENABLED envRATE_LIMIT_MAX_REQUESTS envRATE_LIMIT_WINDOW_MINUTES envTOOL_SEARCH_ENABLED envTOOL_SEARCH_STRATEGY envTOOL_SEARCH_MAX_RESULTS envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub mhajder ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: NETBOX_URL, NETBOX_TOKEN
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.1) เข้า registry 14 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv), Docker ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, EmbeddedCI BenchPod
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.
Drive a BenchPod hardware-in-the-loop bench: power, flash, UART, I2C, CAN, analog and logic.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Give AI agents structured access to NetBox, your network source of truth
Installation · Tools · Configuration · Security
NetBox MCP Server is a Python-based Model Context Protocol (MCP) server that gives AI assistants structured access to NetBox - the source of truth for network infrastructure (DCIM and IPAM). A small set of generic tools covers all 139 core object types of NetBox 4.7 (and plugin types, if enabled), plus specialised tools for search, change logs, GraphQL, free IP/prefix/VLAN allocation, prefix utilization, free rack space, cable tracing and connecting, config rendering, custom scripts and (optionally) netbox-branching. Writes can be hidden entirely (read-only mode) or simulated (dry-run mode).
fields, omit and brief - the tools steer the model to use themcommit is set)Bearer nbt_...) and legacy v1 (Token ...) API tokensnetbox_dns.zone)__in, multi-hop lookups)omit, v2 tokens, /api/authentication-check/) are used when the server detects themThe easiest way to get started is to install from PyPI:
# Using UV (recommended)
uvx netbox-mcp
pip install netbox-mcp
Remember to configure the environment variables for your NetBox instance before running the server:
# Create environment configuration
export NETBOX_URL=https://netbox.example.com export NETBOX_TOKEN=nbt_your-key.your-token
git clone https://github.com/mhajder/netbox-mcp.git
cd netbox-mcp
# Using UV (recommended)
uv sync
pip install -e .
cp .env.example .env
# Using UV (recommended)
uv run netbox-mcp
netbox-mcp
A Docker image is available on GitHub Packages for easy deployment.
docker pull ghcr.io/mhajder/netbox-mcp:latest
For development with additional tools:
# Clone and install with development dependencies
git clone https://github.com/mhajder/netbox-mcp.git cd netbox-mcp uv sync --group dev
uv run pytest
uv run pytest --cov=src/
uv run ruff check . uv run ruff format .
uv run ty check .
uv run prek install
# NetBox MCP Server Environment Configuration
NETBOX_URL=https://netbox.example.com
NETBOX_TOKEN=nbt_your-key.your-token
NETBOX_VERIFY_SSL=true
NETBOX_TIMEOUT=30
NETBOX_BRANCHING_ENABLED=false
NETBOX_BRANCH=
NETBOX_PLUGIN_DISCOVERY=false
READ_ONLY_MODE=false
DRY_RUN_MODE=false
DISABLED_TAGS=
LOG_LEVEL=INFO
RESPONSE_MAX_SIZE=
RATE_LIMIT_ENABLED=false RATE_LIMIT_MAX_REQUESTS=60 RATE_LIMIT_WINDOW_MINUTES=1
TOOL_SEARCH_ENABLED=false
TOOL_SEARCH_STRATEGY=bm25
TOOL_SEARCH_MAX_RESULTS=5
Object types are named app.model, as NetBox itself names them (dcim.device, ipam.prefix, virtualization.virtualmachine). API paths such as dcim/devices are accepted too. With branching enabled, every tool that reads or writes objects also takes an optional branch argument.
| Tool | Description |
|---|---|
netbox_list_object_types | List supported object types and their endpoints (core and discovered plugin types) |
netbox_get_objects | List objects of a type with filters, fields, omit, brief, ordering, limit, offset |
netbox_get_object | Get one object by ID |
netbox_search_objects | Free-text search (q) across several object types at once |
netbox_describe_object_type | Writable fields of a type: data type, required, choices |
netbox_get_changelogs | Change log entries, newest first |
| Tool | Description |
|---|---|
netbox_get_status | NetBox version, plugins, workers, authenticated user and this server's modes |
netbox_graphql_query | Read-only GraphQL query (mutations are rejected) |
netbox_get_available | Free IPs / prefixes in a prefix or IP range, VLANs in a VLAN group, ASNs in an ASN range |
netbox_trace_cable | Full cable path from an interface, front/rear/console/power port or circuit termination |
netbox_render_config | Render a device's or VM's configuration from its config template |
netbox_get_prefix_utilization | Utilization of up to 25 prefixes, computed as NetBox's UI does (child prefixes for containers, IPs and utilized ranges otherwise) |
netbox_find_rack_space | Racks in a site, location or list with room for a device of a given height (counts both faces for full-depth devices, and reservations) |
netbox_list_branches | List netbox-branching branches (only with NETBOX_BRANCHING_ENABLED=true) |
| Tool | Description |
|---|---|
netbox_create_object | Create one object |
netbox_update_object | Partially update one object (PATCH) |
netbox_bulk_create_objects | Create up to 500 objects in one transaction |
netbox_bulk_update_objects | Update up to 500 objects in one transaction |
netbox_allocate_available | Allocate the next free IP, prefix, VLAN or ASN |
netbox_connect_cable | Cable ports together, given by ID or by device and port name; refuses ports that are already cabled |
netbox_run_script | Run a custom script and wait for its log and output; commit defaults to false (destructiveHint) |
netbox_create_branch | Create a netbox-branching branch (only with NETBOX_BRANCHING_ENABLED=true) |
netbox_delete_object | Delete one object (destructiveHint) |
netbox_bulk_delete_objects | Delete up to 500 objects in one transaction (destructiveHint) |
Every tool is tagged netbox plus a group tag, which `DI
ตัดมาแค่ช่วงต้น อ่านต่อใน repo