A comprehensive MCP server for managing OPNsense firewalls, offering over 300 tools for configuration and monitoring.
A modular Model Context Protocol (MCP) server that provides 88 module-based tools giving access to over 2000 OPNsense firewall management methods through a type-safe TypeScript interface.
The MCP server acts as a bridge between AI assistants (like Claude Desktop) and your OPNsense firewall, providing secure API access through a modular tool interface.
Usage in Claude Desktop
Usage in Claude Code
This package is designed to be used as an MCP (Model Context Protocol) server with AI assistants like Claude Desktop, Cursor, or other MCP-compatible clients.
npm install -g @richard-stovall/opnsense-mcp-server
Add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"opnsense": {
"command": "npx",
"args": ["-y", "@richard-stovall/opnsense-mcp-server"],
"env": {
"OPNSENSE_URL": "https://192.168.1.1",
"OPNSENSE_API_KEY": "your-api-key",
"OPNSENSE_API_SECRET": "your-api-secret",
"OPNSENSE_VERIFY_SSL": "false"
}
}
}
}
Using Command Line Arguments:
{
"mcpServers": {
"opnsense": {
"command": "node",
"args": [
"/path/to/opnsense-mcp-server/index.js",
"--url",
"https://YOUR-OPNSENSE-IP",
"--api-key",
"YOUR-API-KEY",
"--api-secret",
"YOUR-API-SECRET",
"--no-verify-ssl"
]
}
}
}
Enable Plugin Tools:
To include all 64 plugin module tools, add "--plugins"
to the args or set "INCLUDE_PLUGINS": "true"
in env.
Once configured, you can test the connection by asking Claude:
Connection Issues:
--no-verify-ssl
or set "OPNSENSE_VERIFY_SSL": "false"
View Server Logs: Check Claude Desktop logs for any error messages from the MCP server.
Test Manually: You can test the server manually before using with Claude Desktop:
node /path/to/opnsense-mcp-server/index.js \
--url https://YOUR-OPNSENSE-IP \
--api-key YOUR-API-KEY \
--api-secret YOUR-API-SECRET \
--no-verify-ssl
This should output:
OPNsense MCP server v0.6.0 (modular) started
Core tools: 24 modules
Plugin tools: 64 modules (disabled)
Total available: 24 modules
Add to your Cursor settings (.cursor/mcp.json
in your project or ~/.cursor/mcp.json
globally):
{
"mcpServers": {
"opnsense": {
"command": "npx",
"args": ["-y", "@richard-stovall/opnsense-mcp-server"],
"env": {
"OPNSENSE_URL": "https://192.168.1.1",
"OPNSENSE_API_KEY": "your-api-key",
"OPNSENSE_API_SECRET": "your-api-secret",
"OPNSENSE_VERIFY_SSL": "false"
}
}
}
}
The server accepts configuration through environment variables:
OPNSENSE_URL
- OPNsense host URL (required)OPNSENSE_API_KEY
- API key for authentication (required)OPNSENSE_API_SECRET
- API secret for authentication (required)INCLUDE_PLUGINS
- Set to "true" to enable 64 plugin module tools (optional)OPNSENSE_VERIFY_SSL
- Set to "false" to disable SSL verification (development only)The modular MCP server provides your AI assistant with 88 module-based tools. Each tool represents an OPNsense module and accepts a method
parameter to specify the operation.
Tool Usage Pattern:
{
"tool": "firewall_manage",
"arguments": {
"method": "aliasSearchItem",
"params": {
"searchPhrase": "web"
}
}
}
Example prompts:
The modular approach makes it easy to discover related functionality - all firewall operations are in firewall_manage
, all VPN operations in their respective modules (openvpn_manage
, ipsec_manage
, wireguard_manage
).
Each tool provides access to all methods within that module:
Tool Name | Description | Example Methods |
---|---|---|
core_manage | Core system functions | backupBackups , systemReboot , firmwareInfo |
firewall_manage | Firewall rules & aliases | aliasSearchItem , filterAddRule , natSearchRule |
interfaces_manage | Network interfaces | getInterfaces , vlanAddItem , setInterface |
diagnostics_manage | System diagnostics | interfaceGetArp , systemActivityGetActivity |
auth_manage | Authentication | userSearchUser , groupSearchGroup |
firmware_manage | Firmware updates | check , update , upgrade , changelog |
openvpn_manage | OpenVPN | instancesSearch , instancesAdd , serviceReconfigure |
ipsec_manage | IPsec VPN | tunnelSearchPhase1 , connectionStatus |
wireguard_manage | WireGuard VPN | serverSearchServer , clientSearchClient |
unbound_manage | DNS resolver | hostOverrideSearchItem , serviceReconfigure |
dhcpv4_manage | DHCP server | searchLease , addReservation |
Popular plugin modules:
Tool Name | Description | Example Methods |
---|---|---|
plugin_nginx_manage | Nginx web server | generalGet , upstreamSearchUpstream |
plugin_haproxy_manage | HAProxy load balancer | serverSearchServer , statsGet |
plugin_caddy_manage | Caddy web server | reverseProxySearchDomain , serviceStatus |
plugin_bind_manage | BIND DNS | domainSearchDomain , recordSearchRecord |
plugin_acmeclient_manage | Let's Encrypt | certificatesSearch , certificatesIssue |
If you want to contribute or customize the server:
# Clone the repository
git clone https://github.com/richard-stovall/opnsense-mcp-server.git
cd opnsense-mcp-server
# Install dependencies with Yarn 4.9.2
yarn install
# Build the project
yarn build
# Run locally
yarn start
yarn generate-tools # Generate tool definitions
yarn build # Build the server
yarn build:all # Generate tools and build
yarn dev # Run with hot reload
yarn type-check # Type check without emitting
yarn start # Start the server
The server uses the @richard-stovall/opnsense-typescript-client package which provides:
const response = await client.system.getStatus();
return {
content: [
{
type: 'text',
text: JSON.stringify(response.data, null, 2),
},
],
};
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)This project is licensed under the MIT License - see the LICENSE file for details.
Made with love for the OPNsense community
A FastAPI-based gateway for the Model Context Protocol (MCP) designed to unify and scale AI toolchains.
Create crafted UI components inspired by the best 21st.dev design engineers.
Set up and interact with your unstructured data processing workflows in Unstructured Platform
An AI-powered MCP server for analyzing NPM package security, dependencies, and performance.
A service framework supporting the Model Context Protocol (MCP) to integrate enterprise systems and AI platforms via RESTful, gRPC, and Dubbo protocols.
Official Zeplin server for AI-assisted UI development.
Search dashboards, investigate incidents and query datasources in your Grafana instance
An iOS mobile automation server using Appium and WebDriverAgent, built with clean architecture and SOLID principles.
An MCP server that provides control over Android devices through ADB. Offers device screenshot capture, UI layout analysis, package management, and ADB command execution capabilities.
MCP Server for automated reverse engineering with IDA Pro.