How stdio transport works
When an MCP client launches the UniFi MCP Server, it starts the process and holds the connection open. The client sends requests by writing to the process’s stdin, and reads responses from stdout. There is no separate server to keep running, no network port to open, and no daemon to manage—the lifecycle of the server process is tied entirely to the client session.Generic configuration pattern
Most MCP clients accept a JSON configuration block in this shape:Running without installation using uvx
If you haveuv installed, you can use uvx to run the server directly from PyPI without a prior installation step. Replace "command": "unifi-mcp-server" with:
uvx handles downloading and caching the package on first run, then uses the cached version on subsequent runs.
Environment variables
These variables apply to every client. Set them in theenv block of your client’s config.
Required
Local gateway API
These are required whenUNIFI_API_TYPE=local:
Cloud API
These apply whenUNIFI_API_TYPE is cloud-v1 or cloud-ea:
Optional
Client-specific notes
Windsurf
Windsurf uses amcp_config.json file and follows the same mcpServers structure as the generic pattern above. Open Windsurf Settings → MCP to find the config file path on your system.
Continue.dev
Continue supports MCP servers through itsconfig.json file. Add a mcpServers entry using the same JSON structure. Refer to the Continue documentation for the exact file path on your platform.
Other emerging clients
Any client that implements the MCP specification and supports stdio transport will work. Look for an MCP server configuration section in the client’s settings and paste in the generic JSON pattern above, adjusting theenv values for your environment.
MCP Registry
The UniFi MCP Server is listed in the MCP Registry under the identifier:io.github.enuno/unifi-mcp-server.