{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_wmbdpccs7dan","handle":"acex-mcp","url":"https://wellknown.network/agents/acex-mcp","links":{"self":"https://wellknown.network/agents/acex-mcp/record.json","html":"https://wellknown.network/agents/acex-mcp","markdown":"https://wellknown.network/agents/acex-mcp/record.md","api":"https://wellknown.network/api/v1/agents/acex-mcp","status":"https://wellknown.network/api/v1/agents/acex-mcp/status","claim":"https://wellknown.network/agents/acex-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/acex-mcp/claim.json","badge":"https://wellknown.network/agents/acex-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/acex-mcp/history","tools":"https://wellknown.network/api/v1/agents/acex-mcp/tools"},"ard":{"identifier":"urn:air::server:acex-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"acex-mcp","summary":"ACE-X MCP Server - Model Context Protocol server for ACE-X","description":"# ACE-X MCP Server\n\nA Model Context Protocol server that gives AI assistants read-only access to\nACE-X: the network devices it manages, the configuration each is intended to\nhave, and the configuration snapshots actually collected from them.\n\nIt holds no data and no credentials of its own. Every tool is a call to the\nACE-X API made **as the caller**, so the backend authorizes each read against\nthat user's own permissions.\n\n## Installation\n\n```bash\npip install acex-mcp\n```\n\n## Tools\n\nAll tools are read-only. Start with `find_nodes` — the `node_id` it returns is\nwhat every other tool takes.\n\n| Tool | What it answers |\n|---|---|\n| `find_nodes` | Which devices exist, filtered by hostname, site, region, role, vendor, OS or status |\n| `get_node` | One device: its identity plus the hardware it runs on |\n| `find_assets` | What physical hardware is in inventory, deployed or spare |\n| `list_sites` | Which sites exist |\n| `list_regions` | Which regions exist, and their sites |\n| `get_desired_config` | The configuration ACE-X intends a device to have, rendered as device commands |\n| `get_observed_config` | A configuration snapshot collected from a device — latest, at a past moment, or by id |\n| `get_running_config` | *Placeholder.* Explains that ACE-X cannot read a device live, and offers the newest snapshot |\n| `list_observed_configs` | A device's configuration history |\n| `diff_observed_configs` | What changed on a device between two snapshots |\n| `get_config_drift` | How a device differs from its intended configuration, compared per component |\n| `get_neighbors` | What is physically cabled to a device, per LLDP |\n\n`get_desired_config` and `get_observed_config` take a `section` argument that\nkeeps only matching configuration blocks, so a question about one interface does\nnot pull a three-thousand-line config into the model's context.\n\n## Resources and prompts\n\n| Resource | Contents |\n|---|---|\n| `acex://glossary` | desired vs observed vs running, and what users mean when the…","publisher":{"name":"Johan Lahti","url":null},"homepage":null,"repository":null,"version":"1.2.0","license":"AGPL-3.0","protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:acex-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","summary":"pypi","version":"pypi","description":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":0.859,"provenance":"derived"},{"slug":"infra.devices","name":"Devices & IoT","confidence":0.802,"provenance":"derived"}],"categories":["infra","security"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"acex-mcp","registry":"pypi","observedAt":"2026-10-24T17:28:35.663Z","publishedAt":"2026-10-15T08:57:36.524787Z","latestVersion":"1.2.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"acex-mcp","url":"https://pypi.org/project/acex-mcp/","firstSeenAt":"2026-09-18T08:26:14.977Z","fetchedAt":"2026-10-24T17:26:35.623Z","normalizedAt":"2026-10-24T17:26:35.623Z"}]},"firstSeenAt":"2026-09-18T08:26:14.977Z","updatedAt":"2026-10-24T17:28:35.664Z"}