{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_7b6qejuzh6dk","handle":"epics-mcp","url":"https://wellknown.network/agents/epics-mcp","links":{"self":"https://wellknown.network/agents/epics-mcp/record.json","html":"https://wellknown.network/agents/epics-mcp","markdown":"https://wellknown.network/agents/epics-mcp/record.md","api":"https://wellknown.network/api/v1/agents/epics-mcp","status":"https://wellknown.network/api/v1/agents/epics-mcp/status","claim":"https://wellknown.network/agents/epics-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/epics-mcp/claim.json","badge":"https://wellknown.network/agents/epics-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/epics-mcp/history","tools":"https://wellknown.network/api/v1/agents/epics-mcp/tools"},"ard":{"identifier":"urn:air::server:epics-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"epics-mcp","summary":"MCP server for EPICS: live PV values, connection diagnosis, and cross-plane provenance","description":"# EPICS MCP\n\n[![CI](https://github.com/epicDirk/EPICS-MCP/actions/workflows/ci.yml/badge.svg)](https://github.com/epicDirk/EPICS-MCP/actions/workflows/ci.yml)\n[![PyPI](https://img.shields.io/pypi/v/epics-mcp.svg)](https://pypi.org/project/epics-mcp/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/epicDirk/EPICS-MCP/blob/main/LICENSE)\n[![Python 3.12+](https://img.shields.io/badge/python-3.12%2B-blue.svg)](https://www.python.org/)\n\nAsk an AI assistant about your EPICS control system. What is this PV reading right now? Why is\nit disconnected? Which operator screens and trends show this device, and is it archived and\nalarm-configured? The server exposes your EPICS layer as **Model Context Protocol (MCP)** tools\nover [p4p](https://mdavidsaver.github.io/p4p/), so an assistant can answer those the way an\noperator would, instead of you clicking through CS-Studio, the Archiver Appliance UI and\nChannelFinder by hand.\n\n**Read-only by default.** `set_pv_value` is triple-gated: an env switch, a required regex\nallowlist, and a rate limit. A value outside the record's own drive limits is refused after those\nthree have admitted the write, which is a further refusal and not a fourth gate. Logbook writes sit\nbehind their own separate gate, of six checks. The fullest statement of the posture, including what\nleaves your machine, is\n[Safety and network posture](https://github.com/epicDirk/EPICS-MCP/blob/main/docs/safety.md).\n\n> **Project status.** Pre-1.0 and under active development. Tools and APIs may still change\n> between minor versions, so pin one if you depend on it.\n\n## Where to start\n\n**I want to try it, and I have no control system.** Install it (below), then follow the\n[quick start](https://github.com/epicDirk/EPICS-MCP/blob/main/docs/quick-start.md): three commands, and `epics-testpv` serves the PV\nfor you, so there is nothing else to obtain. No facility, no IOC, no EPICS Base, no ChannelFinder,\nno archiver.\n\n**I want to point it at…","publisher":{"name":"epicDirk","url":null},"homepage":"https://github.com/epicDirk/EPICS-MCP/blob/main/docs/deployment.md","repository":"https://github.com/epicDirk/EPICS-MCP/blob/main/CHANGELOG.md","version":"0.7.0","license":"MIT","protocols":["mcp"],"tags":["channel-access","controls","epics","mcp","p4p","pvaccess"],"pricing":null,"endpoints":[{"url":"pypi:epics-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"communication.chat","name":"Team Chat","confidence":0.656,"provenance":"derived"}],"categories":["communication"],"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":"epics-mcp","registry":"pypi","observedAt":"2026-11-03T02:25:11.210Z","publishedAt":"2026-08-24T11:11:10.023517Z","latestVersion":"0.7.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"epics-mcp","url":"https://pypi.org/project/epics-mcp/","firstSeenAt":"2026-09-09T15:21:38.749Z","fetchedAt":"2026-11-03T02:23:44.550Z","normalizedAt":"2026-11-03T02:23:44.550Z"}]},"firstSeenAt":"2026-09-09T15:21:38.749Z","updatedAt":"2026-11-03T02:25:11.210Z"}