Skip to main content
Glama
gensecaihq

pfSense MCP Server

by gensecaihq

manage_openvpn_cso

Destructive

Create, update, or delete OpenVPN Client Specific Overrides (CSOs) to assign static tunnel IPs, push custom routes, or block specific clients.

Instructions

Create, update, or delete an OpenVPN Client Specific Override (CSO).

CSOs allow per-client configuration such as assigning static tunnel IPs, pushing custom routes, or blocking specific clients.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
blockNoBlock this client from connecting
actionYesAction to perform: "create", "update", or "delete"
cso_idNoCSO ID (required for update and delete)
confirmNoMust be set to True for delete operations. Safety gate for destructive operations.
disabledNoWhether the CSO is disabled
push_resetNoReset all pushed options before applying CSO
common_nameNoClient common name (CN) - required for create
descriptionNoCSO description
dns_server1NoDNS server 1 pushed to this client
dns_server2NoDNS server 2 pushed to this client
server_listNoOpenVPN server interface names (vpnif, e.g. ["ovpns1"]) this override applies to. If omitted the override applies to ALL servers.
local_networkNoLocal network(s) pushed to this client
custom_optionsNoCustom OpenVPN options for this client
remote_networkNoRemote network(s) for this client
tunnel_networkNoClient tunnel network/IP (e.g., 10.0.8.5/32 for static IP)
redirect_gatewayNoWhether to redirect all client traffic through the tunnel
apply_immediatelyNoWhether to apply changes immediately

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, but the description adds no behavioral context beyond that—e.g., whether delete requires a confirm flag, if changes apply immediately, or what gets affected. It doesn't contradict annotations, but it also doesn't disclose any operational side effects or safety gates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and front-loaded: a single action line followed by a brief explanatory sentence. Every word contributes to scope or purpose, with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 17-parameter CRUD tool, the description provides adequate high-level context, while operational details like required fields and delete confirmations are already in the schema. The output schema further reduces the need to explain return values, making the description sufficiently complete for orientation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with detailed parameter descriptions, so the schema carries the burden. The description's examples (static IPs, custom routes, blocking) loosely map to tunnel_network, custom_options, and block, but don't add meaning beyond the schema's existing parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb+resource: 'Create, update, or delete an OpenVPN Client Specific Override (CSO).' It also unpacks what CSOs are used for (static IPs, custom routes, blocking clients), making the purpose unambiguous and distinguishing it from read-only sibling tools like search_openvpn_csos.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete usage scenarios: assigning static tunnel IPs, pushing custom routes, or blocking clients. This implies when the tool is appropriate, though it doesn't explicitly mention when not to use it or name a read-only alternative for viewing CSOs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/gensecaihq/pfsense-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server