ElGraph Action을 MCP 서버로 노출하는 순수 JSON-RPC 2.0 디스패치 (SPEC §4).
ElGraph.MCP가 외부 MCP 서버의 툴을 소비하는 클라이언트라면, 이건 그 반대 —
외부 에이전트(Claude 등 MCP 클라이언트)가 ElGraph Action을 호출하게 한다.
전송(transport) 무관한 순수 함수이므로 stdio/HTTP 어느 바인딩에도 얹는다
(HTTP 바인딩: ElGraphWeb.MCP.Router).
deps:
:tools— 노출할ElGraph.Action모듈 목록:server_info—%{"name" => ..., "version" => ...}(initialize 응답):context— Actionrun/2에 넘길 컨텍스트(선택, 기본%{})
반환:
{:result, map}— JSON-RPCresult로 감쌀 값{:error, code, msg}— JSON-RPCerror(예: -32601 method not found, -32602 invalid params):notification— 알림 메서드(notifications/*)는 응답 없음
MCP 규약: 툴 실행 실패는 프로토콜 에러가 아니라 isError: true 결과로 돌려준다
(모델이 오류를 보고 재시도할 수 있도록). 알 수 없는 툴/잘못된 메서드만 JSON-RPC error.