Skip to main content
Glama
integration-gateway

integration-gateway

agent-integration-gateway

ci

A reference MCP gateway for connecting third-party AI agents to an enterprise platform without giving up control of the data or the decision history.

When a firm brings in AI agents from outside vendors, the hard part isn't the connection. It's making sure that:

  • each agent can only touch the data and tools it's entitled to, for a stated purpose;

  • every decision the agent makes is recorded by the firm, in a form the firm can audit, evaluate, and keep if the vendor is replaced;

  • the vendor's integration is held to a written standard, with acceptance criteria that are executable tests.

This repo is a small, working version of that.

What's in it

Piece

What it does

File

MCP gateway

Exposes tools to agents. Every call goes through one guard: authorize → execute → trace.

src/gateway.ts

Entitlements

Default-deny policy per agent: allowed tools, permissible-use purposes, client scope.

src/policy.ts

Signed webhooks

Vendors push decisions back. HMAC signatures, replay window, contract validation, idempotent processing.

src/webhooks.ts

Vendor contract

Versioned, strict schema for agent decisions, corrections, and errors.

src/contract.ts

Decision-trace log

Append-only, SHA-256 hash-chained JSONL. Tamper-evident, exportable, no raw inputs.

src/traces.ts

Integration standard

The vendor-facing spec. Every requirement maps to the test that enforces it.

docs/vendor-integration-standard.md

             ┌───────────────────── firm-owned ─────────────────────┐
 Vendor  ──MCP──▶  Gateway ──authorize──▶ Policy (default deny)    │
 agent           │   │                                              │
                 │   └──execute──▶ Systems of record                │
                 │   └──trace────▶ Decision-trace log (hash chain) ─┼─▶ export (JSONL)
 Vendor  ──webhook (signed)──▶ verify ▶ contract ▶ dedupe ▶ trace ──┘     → lakehouse / evals
 platform

Related MCP server: AgentGate

Run it

npm install
npm test              # 33 tests: policy, contract, signatures, idempotency, tamper detection, end-to-end MCP
npm run typecheck

MCP server (stdio). Add to an MCP client config, e.g. Claude Desktop:

{
  "mcpServers": {
    "integration-gateway": {
      "command": "npx",
      "args": ["tsx", "src/server.ts"],
      "cwd": "/path/to/agent-integration-gateway",
      "env": { "AGENT_ID": "acme-assurance-agent" }
    }
  }
}

Try get_engagement for client-001 (allowed) and client-003 (denied, out of scope). Both show up in data/decision-traces.jsonl.

Webhook receiver:

npm run webhooks      # POST http://localhost:8787/webhooks/:vendor
npm run verify-traces # recompute the hash chain

Design decisions

  • One guard for every tool. Authorization and tracing live in guarded(), not in each tool, so a new tool can't forget either. Denials are traced too: what an agent tried to do matters for review.

  • Purpose is a required input. Permissible use is enforced per call, not per agent, so the same agent can read for engagement support but not for analytics.

  • Agent writes are drafts. record_finding returns draft_pending_practitioner_review. A human approves before anything becomes a firm record.

  • The firm owns the trace, not the vendor. Vendor events are verified, validated, and written to the firm's log. Swapping vendors doesn't lose history (see O1–O5 in the standard).

  • Hash chain instead of trusting the file. Editing, deleting, or reordering a record breaks the chain and verify() reports where.

  • Hashes, not raw inputs. Traces prove what was asked without copying client data into another store.

  • Strict contract. Unknown fields are rejected so a vendor can't drift the schema; changes ship as a new schema_version.

  • Traces are built for learning loops. Each record carries the decision, rationale, evidence references, and (for corrections) what it supersedes, so the log can feed evaluation sets and practitioner-feedback loops, not only audits.

What production would add

  • HTTP transport with OAuth 2.1 (per the MCP authorization spec) so agent identity comes from a verified token instead of launch config, with entitlements pulled from an entitlement service.

  • Durable storage: idempotency keys under a database unique constraint, traces in an append-only table (or object storage with object lock) landing as a lakehouse bronze table.

  • Event fan-out through a queue or pub/sub topic (transactional outbox) so downstream consumers don't block webhook acknowledgements.

  • OpenTelemetry spans around each guarded call, correlated to trace IDs, plus per-vendor error and latency SLOs.

  • Secret rotation with two active signing secrets per vendor.

License

MIT

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables controlled AI-agent access to enterprise-shaped tools with a deny-by-default gated write path, human approval, dry-run execution, and append-only audit logging.
      1
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to call external endpoints under per-endpoint policy enforcement, with credentials and personal data kept inside a hardware enclave and every allowed or denied attempt recorded to an immutable audit ledger.
      2
      ISC
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables LLM agents to access third-party APIs through a least-privilege set of audited tools with allowlists, per-caller scopes, label gates, write confirmation, limits, and PII-masked logging. It restricts reads to labeled data, prevents sending or destructive actions, and records every allowed or denied call.
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to securely reach enterprise tools and other agents through a governed gateway with pinned tool definitions, delegated authorization, content inspection, human approval, and signed audit trails.
      Apache 2.0