pfSense MCP Server
by NayeonPetrov
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | Bind address for HTTP mode. Defaults to 127.0.0.1. | 127.0.0.1 |
| MCP_PORT | No | Port for HTTP mode. Defaults to 3000. | 3000 |
| LOG_LEVEL | No | Log level: DEBUG, INFO, WARNING, ERROR. Defaults to INFO. | INFO |
| VERIFY_SSL | No | Set to false to disable certificate checking entirely — prefer PFSENSE_CA_FILE. Defaults to true. | true |
| API_TIMEOUT | No | Request timeout in seconds. Defaults to 30. | 30 |
| AUTH_METHOD | No | Authentication method: api_key, basic, or jwt. Defaults to api_key. | api_key |
| MCP_API_KEY | No | Bearer token for HTTP transport (required when MCP_TRANSPORT=streamable-http). | |
| PFSENSE_URL | Yes | pfSense URL (e.g., https://192.168.1.1) | |
| MCP_AUDIT_LOG | No | Path to audit log file (JSON lines). | |
| MCP_BIND_ADDR | No | Docker Compose only: host address the published port binds to. Defaults to 127.0.0.1. | 127.0.0.1 |
| MCP_READ_ONLY | No | Only expose read-only tools. Defaults to false. | false |
| MCP_TRANSPORT | No | Transport mode: stdio or streamable-http. Defaults to stdio. | stdio |
| ENABLE_HATEOAS | No | Enable HATEOAS links in API responses. Defaults to false. | false |
| PFSENSE_API_KEY | No | REST API key. Required if AUTH_METHOD=api_key (default). | |
| PFSENSE_CA_FILE | No | PEM file for pfSense's private/self-signed CA, so verification stays on. | |
| PFSENSE_VERSION | No | pfSense version. Current: CE_2_8_1, CE_2_9_0, PLUS_25_11_1, PLUS_26_03, PLUS_26_03_1, PLUS_26_07. Legacy: CE_2_8_0, PLUS_24_11, PLUS_25_11, CE_26_03. Defaults to CE_2_8_1. | CE_2_8_1 |
| RESPONSE_FORMAT | No | Response format: json or gcf. Defaults to json. | json |
| PFSENSE_PASSWORD | No | pfSense password. Required if AUTH_METHOD=basic or jwt. | |
| PFSENSE_USERNAME | No | pfSense username. Required if AUTH_METHOD=basic or jwt. | |
| MCP_ALLOWED_TOOLS | No | Comma-separated allowlist of write tools. Read tools are always available; get_log_file is controlled by MCP_ENABLE_LOG_FILES. Defaults to all. | all |
| MCP_ALLOWED_ORIGINS | No | Comma-separated allowed origins. Defaults to localhost. | localhost |
| MCP_ROLLBACK_BUFFER | No | Rollback entries kept in memory. Defaults to 50. | 50 |
| MCP_ENABLE_LOG_FILES | No | Set false to remove get_log_file (raw /var/log/* reads via command sink). Defaults to true. | true |
| MCP_RATE_LIMIT_CREATE | No | Max creates per 60 seconds. Defaults to 20. | 20 |
| MCP_RATE_LIMIT_DELETE | No | Max deletes per 60 seconds. Defaults to 10. | 10 |
| MCP_RATE_LIMIT_UPDATE | No | Max settings changes (update_*, apply_*, enable_*/disable_*) per 60 seconds. Defaults to 30. | 30 |
| MCP_RATE_LIMIT_CRITICAL | No | Max critical ops per 300 seconds. Defaults to 2. | 2 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
No tools | |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
This server cannot be deployed
Maintenance
ActivityActive
ResponsivenessResponsive