Ead Factory Mcp

Created By
g-digital-by-Garrigues10 days ago
EAD Factory MCP exposes EAD Trust's Evidence Manager and Signature Manager APIs to any MCP-compatible client (Claude Code, Claude Desktop, Cursor, etc.). The 9 tools cover full evidence generation — SHA-256 file hashing, S3 upload, Okta OAuth2 client_credentials authentication, and status polling until COMPLETED — and the complete signature-request lifecycle: create draft → add documents → add signatories / validators / observers → activate the request → retrieve status. Built by g-digital by Garrigues (J&A Garrigues, S.L.P.), an eIDAS-qualified trust services provider. Two transports: stdio for local desktop clients, HTTP with Bearer OAuth2 for hosted deployments.
Overview

xEAD Factory MCP bridges any MCP-compatible client (Claude Code, Claude Desktop, Cursor, etc.) to EAD Trust's Evidence Manager and Signature Manager APIs, exposing the full Digital Trust services flow as 9 tools.

What it does

  • Evidence generation: hash a local file (SHA-256), upload to S3, register with EAD Trust's Evidence Manager, and poll until status is COMPLETED or ERROR. One tool, full flow.
  • Signature requests: create a draft, add documents (uploaded to S3), add signatories with optional validators and observers, activate the request to trigger notifications, and retrieve status at any time.

Tools (9)

generate_evidence, get_evidence, create_signature_request, add_document_to_signature_request, add_signatory_to_document, add_validator_to_signatory, add_observer_to_document, activate_signature_request, get_signature_request.

Install

npx -y @g-digital/mcp-ead-factory

Or via Docker:

docker run --rm -it --env-file .env gdigital/ead-factory:1.0.12

Auth

OAuth2 client_credentials grant against an EAD Trust Okta tenant. Required env: OKTA_TOKEN_URL, OKTA_CLIENT_ID, OKTA_CLIENT_SECRET, OKTA_SCOPE=token, API_BASE_URL, SIGNATURE_API_BASE_URL. Credentials available from EAD Trust on request.

Transports

stdio for local desktop clients; http (Bearer OAuth2 inbound) for hosted deployments.

Maintainer

g-digital by Garrigues (J&A Garrigues, S.L.P.) — an eIDAS-qualified trust services provider. MIT licensed. Source repo.

Also published on npm, Docker Hub, the MCP Official Registry, Smithery, and as an n8n community node.

Server Config

{
  "mcpServers": {
    "ead-factory": {
      "command": "npx",
      "args": [
        "-y",
        "@g-digital/mcp-ead-factory"
      ],
      "env": {
        "OKTA_TOKEN_URL": "https://<your-okta-tenant>.okta.com/oauth2/<authServer>/v1/token",
        "OKTA_CLIENT_ID": "<your-okta-client-id>",
        "OKTA_CLIENT_SECRET": "<your-okta-client-secret>",
        "OKTA_SCOPE": "token",
        "API_BASE_URL": "https://api.int.gcloudfactory.com/digital-trust",
        "SIGNATURE_API_BASE_URL": "https://api.int.gcloudfactory.com/signature-manager"
      }
    }
  }
}
Project Info
Created At
10 days ago
Updated At
10 days ago
Author Name
g-digital-by-Garrigues
Star
-
Language
-
License
-
Category

Recommend Servers

View All
GovQL
@Alex Stout

# govql-mcp-server An MCP (Model Context Protocol) server for [GovQL](https://govql.us) — gives AI clients like Claude Desktop, Claude Code, and Cursor direct access to the US Congressional GraphQL API at [api.govql.us/graphql](https://api.govql.us/graphql) without bespoke HTTP wiring. For the design rationale (why FastMCP-Python, the passthrough+curated philosophy, roadmap through v0.4), see [design.md](https://github.com/govql/govql/blob/main/mcp-server/docs/design.md). ## What you can do with it Ask an agent questions like: - *"How did Vermont's two senators vote on the most recent nomination?"* - *"Which legislators in the 118th Congress switched parties during their service?"* - *"Compare Senator Sanders' voting record to Senator Murkowski's on cloture votes in the most recent Congress."* The agent picks the right tool, writes the GraphQL query against the live schema, and parses the response — no manual API wrangling. ## Install The server runs as a per-client subprocess over stdio. Pick your client: ### Claude Desktop Edit `claude_desktop_config.json` (Settings → Developer → Edit Config): ```json { "mcpServers": { "govql": { "command": "uvx", "args": ["govql-mcp-server"] } } } ``` Restart Claude Desktop. The `govql` tools appear in the tools panel. ### Claude Code Add to `.mcp.json` in your project (or `~/.mcp.json` for global): ```json { "mcpServers": { "govql": { "command": "uvx", "args": ["govql-mcp-server"] } } } ``` ### Cursor Settings → MCP → Add Server. Use the same `command` / `args` as above. ### Other clients Any MCP-compatible client that supports stdio servers will work. The command is `uvx govql-mcp-server` with no required arguments. ## Tools | Tool | Purpose | |---|---| | `execute_graphql` | Run any GraphQL query against the GovQL endpoint. Returns the result plus an `last_ingest` timestamp so the agent can reason about data freshness. | | `list_types` | Returns the names and kinds of every type in the GovQL schema. Optional `kind` filter (`"OBJECT"`, `"INPUT_OBJECT"`, `"ENUM"`, etc.) to narrow further. Start here when you don't know what's queryable. | | `describe_type` | Returns one type's full details — fields, arg signatures, input fields, enum values. Call after `list_types` to learn the shape of a specific type before writing a query. | ## Configuration All env vars are optional — the package is zero-config for end users. | Env var | Default | Purpose | |---|---|---| | `GOVQL_ENDPOINT` | `https://api.govql.us/graphql` | Endpoint to query. Override to point at a local dev stack. | | `GOVQL_TIMEOUT_MS` | `30000` | Per-request HTTP timeout. | | `LOG_LEVEL` | `INFO` | Logging level. Logs go to stderr only (stdout is reserved for the MCP transport). | ## Limits (enforced by the upstream API) - Max query depth: 10 - Max query complexity: ~10 billion points (`first: N` multiplies child cost by N — keep page sizes reasonable on deeply nested queries) - Rate limit: 100 requests / 60 s per source IP A depth or complexity violation surfaces as a GraphQL `errors` entry in the tool response so the agent can adjust and retry. ## Data freshness Every `execute_graphql` response includes a `last_ingest` ISO timestamp. Vote data refreshes hourly; legislator data refreshes daily. ## Status Version 0.1.0 ships three foundational tools: a GraphQL passthrough (`execute_graphql`) and two narrow schema-discovery tools (`list_types`, `describe_type`). Curated higher-level tools (`find_legislator`, `get_voting_record`, `compare_voters`, etc.) are planned for subsequent releases — see [design.md](https://github.com/govql/govql/blob/main/mcp-server/docs/design.md) for the roadmap. ## Links - [GovQL project site](https://govql.us) - [GraphQL API](https://api.govql.us/graphql) - [Source / issues](https://github.com/govql/govql)

13 hours ago