fortigate-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fortigate-mcpshow me the FortiGate system status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FortiGate MCP Server (Safe Write Capable)
Write tools are dry-run by default and require explicit environment and per-call confirmation. See SAFE_WRITE_MODE.md.
MCP Server สำหรับให้ Claude Desktop เชื่อมต่อกับ FortiGate ผ่าน REST API ใช้ได้เฉพาะอ่าน config (read-only) ปลอดภัย ไม่สามารถแก้ไขได้
✨ Features
🔐 Read-only — แม้ token หลุดก็แก้ config ไม่ได้
🐳 Docker — isolated environment
📡 stdio transport — ไม่ต้องเปิด port
🛡️ Trusted host enforcement บน FortiGate
Related MCP server: FortiOS 7.6.x MCP Server
🛠️ Tools ที่ใช้ได้
Tool | หน้าที่ |
| ดู firmware version, hostname, etc. |
| ดูรายชื่อ address group ทั้งหมด |
| ดู member ใน group |
| ดูรายชื่อ address object |
| ดู IP จริงของ address object |
| ดู policy ทั้งหมด |
| ดู policy ตัวเดียวละเอียด |
| ดู web filter profile |
| ดู URL allow/block ใน profile |
| ดู custom service |
| Safely create firewall policy, dry-run by default |
| Safely update firewall policy after reading current state |
📦 Setup
1. Clone/copy โปรเจกต์ลงเครื่อง
วาง folder fortigate-mcp ไว้ที่ไหนก็ได้ เช่น:
Windows:
C:\mcp\fortigate-mcpMac/Linux:
~/mcp/fortigate-mcp
2. ตั้งค่า .env
cp .env.example .envแก้ .env:
FORTIGATE_HOST=172.16.1.X # IP ของ FortiGate
FORTIGATE_TOKEN=xxxxxxxxxxxx # token จาก REST API admin
FORTIGATE_VERIFY_SSL=false # true ถ้ามี valid cert
FORTIGATE_TIMEOUT=100003. Build Docker image
cd fortigate-mcp
docker compose build4. ทดสอบ container ทำงาน
# ทดสอบ run แบบ interactive (Ctrl+C เพื่อออก)
docker compose run --rm fortigate-mcpถ้าเห็น log:
[FortiGate MCP] Server running on stdio
[FortiGate MCP] Connected to: 172.16.1.X
[FortiGate MCP] Mode: READ-ONLYแสดงว่า container ทำงานได้ ✅
หมายเหตุ: server จะรอ MCP protocol input จาก stdin — ถ้าไม่มี input ก็ปกติ Ctrl+C ปิดได้เลย
5. Register กับ Claude Desktop
แก้ไฟล์ config ของ Claude Desktop:
Windows: %APPDATA%\Claude\claude_desktop_config.json
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
เพิ่ม mcpServers:
{
"mcpServers": {
"fortigate": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--env-file",
"C:\\path\\to\\fortigate-mcp\\.env",
"fortigate-mcp:latest"
]
}
}
}⚠️ Windows: ใช้
\\แทน\ในเส้นทางไฟล์ Mac/Linux: ใช้/path/to/fortigate-mcp/.env
6. Restart Claude Desktop
ปิดเปิด Claude Desktop ใหม่ทั้งหมด (ไม่ใช่แค่ปิดหน้าต่าง — quit จาก system tray)
7. ทดสอบ
ถาม Claude ว่า:
"ลอง fortigate_get_system_status FortiGate ของฉันหน่อย"
ถ้าได้ข้อมูล hostname ETTFAC กลับมา = สำเร็จ! 🎉
🔍 ตัวอย่างคำถาม
"ip068 อยู่ใน address group ไหนบ้าง?"
"Web filter profile 'Only Use AI' allow domain อะไรบ้าง?"
"Custom service 'Everest_default' ใช้ port อะไร?"
"policy ไหนที่ใช้ source 'Wifi'?"
🛡️ Security Notes
✅ Token เก็บใน
.envไม่ถูก commit (มี.gitignore)✅ Container รันด้วย non-root user
✅ Trusted host enforcement บน FortiGate
✅ Read-only profile บน FortiGate (defense in depth)
⚠️ อย่า commit
.envลง git⚠️ อย่า share token กับใคร (รวมถึงในแชต Claude)
🐛 Troubleshooting
Error: connect ECONNREFUSED
เช็คว่า FortiGate IP ถูกต้องใน
.envเช็คว่าเครื่องที่รัน Docker เข้าถึง FortiGate ได้ (ลอง
ping)
FortiGate API error (401)
Token ผิด หรือ expire — regenerate ใหม่ที่ FortiGate
FortiGate API error (403)
Trusted host ไม่ตรง — เช็ค IP ของเครื่องที่รัน Docker
Container อาจใช้ IP ต่างจาก host (ลอง
network_mode: hostใน docker-compose)
Claude Desktop ไม่เห็น tool
เช็คว่า restart Claude Desktop แล้วจริงหรือยัง (quit จาก tray)
เช็ค path ใน
claude_desktop_config.jsonถูกต้องดู log ที่
%APPDATA%\Claude\logs\(Windows)
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/PeerapolSelanon/fortigate-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server