Fetch and query network device configuration via RESTCONF
Clixon MCP Server
A Model Context Protocol server for fetching and querying network device configuration via RESTCONF. Connects to Clixon-based (or any RESTCONF-capable) devices and makes the configuration available to AI coding agents like OpenCode.
This project uses UV (https://github.com/astral-sh/uv) for package control.
Setup
uv sync
Run
uv run server.py --restconf-url https://localhost:8443/restconf/
CLI Arguments
| Argument | Default | Description |
|---|---|---|
--restconf-url |
https://localhost:8443/restconf/ |
RESTCONF URL to fetch config from |
--restconf-username |
(empty) | HTTP basic auth username for RESTCONF (optional) |
--restconf-password |
(empty) | HTTP basic auth password for RESTCONF (optional) |
--restconf-verify-ssl |
False |
Verify SSL certificates when fetching RESTCONF config |
Tools
| Tool | Description |
|---|---|
fetch_config |
Fetch device configuration via RESTCONF (supports basic auth and TLS) |
write_config |
Write cached configuration back to the device via RESTCONF |
get_config |
Return the currently cached configuration |
get_config_path |
Extract a specific section by dot-separated path (e.g. ietf-interfaces:interfaces.interface) |
get_config_url |
Return the RESTCONF URL used to fetch the configuration |
set_config_url |
Set the RESTCONF URL for fetching configuration |
clear_config_cache |
Clear the cached configuration |
list_tools |
List available tools |
help |
Return a help message describing the server and available tools |
Resources
config://server-info— Server metadata (name, version, available tools)
Prompts
analyze_config— Fetch and analyze device configuration (interfaces, routing, etc.)
Connect to OpenCode
Add to your opencode.json (~/.opencode/opencode.json):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"clixon": {
"type": "remote",
"url": "http://localhost:8000/mcp",
"enabled": true
}
}
}
Example Usage in OpenCode
Once connected, ask questions like:
Fetch the config and summarize it.What interfaces are configured?Show me the routing configurationAre there any interfaces that are down?
The AI agent will call fetch_config to pull the RESTCONF data, cache it in memory, and then use get_config / get_config_path to answer follow-up questions about the device configuration.
Tools (9)
fetch_configFetch device configuration via RESTCONF (supports basic auth and TLS)write_configWrite cached configuration back to the device via RESTCONFget_configReturn the currently cached configurationget_config_pathExtract a specific section by dot-separated pathget_config_urlReturn the RESTCONF URL used to fetch the configurationset_config_urlSet the RESTCONF URL for fetching configurationclear_config_cacheClear the cached configurationlist_toolsList available toolshelpReturn a help message describing the server and available toolsEnvironment Variables
RESTCONF_URLRESTCONF URL to fetch config fromRESTCONF_USERNAMEHTTP basic auth username for RESTCONFRESTCONF_PASSWORDHTTP basic auth password for RESTCONFRESTCONF_VERIFY_SSLVerify SSL certificates when fetching RESTCONF configConfiguration
{
"mcpServers": {
"clixon": {
"command": "uv",
"args": ["run", "server.py", "--restconf-url", "https://localhost:8443/restconf/"]
}
}
}