Back to home page

EIC code displayed by LXR

 
 

    


Warning, /swf-remote/src/remote_app/templates/monitor_app/mcp_setup.md is written in an unsupported language. File is not indexed.

0001 {% autoescape off %}# ePIC Production Monitor MCP endpoint
0002 
0003 {{ mcp_url }} is a Model Context Protocol (MCP) server exposing the ePIC
0004 production monitor's tools: PanDA production state, physics configurations,
0005 campaign status, Snapper operational history, alarms, and the JLab and BNL
0006 Rucio catalogs. Transport is HTTP POST JSON-RPC. Each call is authenticated
0007 as the person whose token it carries.
0008 
0009 ## Setup
0010 
0011 1. Sign in at {{ site_url }} with GitHub or a local account.
0012 2. Create a token at {{ tokens_url }}. It is shown once, acts as you, and is
0013    revoked on the same page.
0014 3. Register the server. Claude Code:
0015 
0016        claude mcp add --transport http swf-devcloud {{ mcp_url }} --header "Authorization: Bearer <token>"
0017 
0018    Tools appear in a new session as mcp__swf-devcloud__*, which is also the
0019    pattern for the permissions allow list. Any MCP client with HTTP transport
0020    and a custom Authorization header is configured the same way.
0021 4. Call get_server_instructions first; the tools/list result is the catalog.
0022 
0023 The external face serves the read-only tools, PanDA production, physics
0024 configurations, campaigns, operational history, the Rucio catalogs, and AI
0025 content, plus one write: ai_propose_ping. It creates a proposal, not a
0026 ping: a dated obligation for the alarm system can be proposed in natural
0027 language at an LLM command line, and it becomes a ping only when a person
0028 approves the proposal on the alarm dashboard. Testbed control and
0029 production writes are not served outside BNL.
0030 
0031 What the tools cover, in human terms: the WFMS documentation,
0032 https://epic-wfms-docs.readthedocs.io/en/latest/apis/#mcp
0033 
0034 An assistant performing this setup obtains the token from the person; it is
0035 not fetchable. A POST without a valid token receives 401. GET returns this
0036 page.
0037 {% endautoescape %}