F5.MCP.server
A MCP server for talking to a F5 device
claude mcp add --transport stdio czirakim-f5.mcp.server python -m F5MCPserver \ --env F5_HOST="IP_OR_HOSTNAME_OF_F5_DEVICE" \ --env F5_BASE_URL="https://<F5_BASE_URL>/mgmt" \ --env F5_PASSWORD="your_password" \ --env F5_USERNAME="admin" \ --env F5_VERIFY_SSL="false"
How to use
The F5 MCP Server provides a set of tools to manage F5 BIG-IP objects via the iControl REST API. It exposes CRUD-style tools for virtual servers (VIPs), pools, iRules, and profiles through the MCP (Model Context Protocol) interface, using the FastMCP framework. The server communicates with an F5 device by reading configuration from environment variables and issuing REST requests with the requests library. It is designed to run with stdio transport, making it compatible with various client integrations. To use it, configure the environment to point at your F5 device, start the MCP server, and invoke the tool endpoints to list, create, update, or delete F5 objects as needed via the MCP client.
How to install
Prerequisites:
- Python 3.8+ installed on your system
- Access to the F5 BIG-IP device with iControl REST enabled
- git to clone the repository
Step-by-step installation:
-
Clone the repository: git clone https://github.com/your-organization/F5.MCP.server.git cd F5.MCP.server
-
Set up a virtual environment (recommended): python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies listed in requirements.txt (or install requests directly): pip install -r requirements.txt
If requirements.txt is not provided, you can install requests manually:
pip install requests
-
Prepare a .env file or export environment variables as needed (see mcp_config for required keys): export F5_HOST=IP_OR_HOSTNAME export F5_BASE_URL=https://<F5_BASE_URL>/mgmt export F5_USERNAME=admin export F5_PASSWORD=your_password export F5_VERIFY_SSL=false
-
Run the MCP server (as defined by the mcp_config using Python module mode):
Using module execution as per the mcp_config
python -m F5MCPserver
-
Optional: run inside Docker or via Smithery if you plan to containerize or automate deployment.
Additional notes
Notes and tips:
- The server uses the Python requests library to communicate with the F5 iControl REST API. Ensure your F5 device allows REST API access from the host running the MCP server.
- Store credentials securely; consider using a secrets manager or environment variable injection rather than hard-coding values.
- If you encounter SSL verification errors with self-signed certificates, set F5_VERIFY_SSL=false or provide the proper CA bundle via SSL configuration.
- The tools are organized under Tools/F5object.py for CRUD operations. You can extend by adding more tools following the existing pattern.
- The project is designed to run with stdio transport; ensure your MCP client is compatible with stdio-based servers.
- For Docker deployment, you can containerize this Python process and pass environment variables at runtime.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP