• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

protofire / safe-client-gateway
89%

Build:
DEFAULT BRANCH: development
Repo Added 30 Dec 2021 02:43PM UTC
Token rDVMDSzaUDTzwD4J2vT4wIpVgq6VeKomv regen
Build 260 Last
Files 1109
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH development
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • back-merge/1.2.0
  • boba
  • dependabot/github_actions/actions/checkout-7
  • dependabot/github_actions/actions/setup-node-7.0.0
  • dependabot/github_actions/coverallsapp/github-action-2.3.8
  • dependabot/github_actions/docker/build-push-action-7.3.0
  • dependabot/github_actions/docker/build-push-action-7.4.0
  • dependabot/github_actions/docker/setup-buildx-action-4.2.0
  • dependabot/github_actions/docker/setup-buildx-action-4.4.1
  • dependabot/github_actions/docker/setup-qemu-action-4.2.0
  • dependabot/github_actions/docker/setup-qemu-action-4.4.0
  • dependabot/npm_and_yarn/amqplib-2.0.1
  • dependabot/npm_and_yarn/aws-sdk-74a0c9e8e1
  • dependabot/npm_and_yarn/aws-sdk-f48414046d
  • dependabot/npm_and_yarn/csv-stringify-6.8.3
  • dependabot/npm_and_yarn/eslint-10.8.1
  • dependabot/npm_and_yarn/faker-js/faker-10.6.0
  • dependabot/npm_and_yarn/fingerprintjs/fingerprintjs-pro-server-api-6.12.0
  • dependabot/npm_and_yarn/multi-fdd82aea1d
  • dependabot/npm_and_yarn/nest-js-core-6612db7d73
  • dependabot/npm_and_yarn/nestjs-cls-6.2.1
  • dependabot/npm_and_yarn/nestjs/bullmq-11.0.5
  • dependabot/npm_and_yarn/nestjs/cache-manager-3.1.3
  • dependabot/npm_and_yarn/nestjs/cli-11.0.24
  • dependabot/npm_and_yarn/nestjs/config-4.0.4
  • dependabot/npm_and_yarn/nestjs/schematics-11.1.0
  • dependabot/npm_and_yarn/nestjs/serve-static-5.0.5
  • dependabot/npm_and_yarn/nestjs/swagger-11.4.6
  • dependabot/npm_and_yarn/pg-8.23.0
  • dependabot/npm_and_yarn/postgres-3.4.9
  • dependabot/npm_and_yarn/redis-6.2.1
  • dependabot/npm_and_yarn/smithy/util-stream-4.8.0
  • dependabot/npm_and_yarn/ts-jest-29.4.12
  • dependabot/npm_and_yarn/types/cookie-parser-1.4.10
  • dependabot/npm_and_yarn/typescript-eslint-8.67.0
  • dev
  • development
  • feat/023-gas-token-relay
  • feat/hedera-history-tx-id
  • feature/023-arc-native-refund
  • feature/023-pay-fees-in-usdc
  • feature/024-sponsored-relay
  • feature/025-relay-settings
  • feature/mcp-read
  • feature/production-rollout12-v1.40.0
  • feature/relay-compliance-records
  • feature/relay-compliance-records-fixes
  • feature/relay-sanctions-screening
  • feature/staging-rollout12-v1.39.0
  • feature/staging-rollout12-v1.40.0
  • fix/023-native-price-optional
  • fix/025-native-refund-receiver
  • fix/dev-lint-backport
  • hotfix/client-ip-decoded-address
  • integration/023-arc-native-refund
  • integration/023-fee-reliability
  • integration/023-optional-spend-budget
  • integration/023-pay-fees-in-usdc
  • integration/023-sanctions-screening
  • integration/separate-shared-gateway-staging
  • main
  • moonbase
  • moonbase-stg
  • moonbeam
  • morph
  • morph-stg
  • production
  • production-shared-ui
  • proto-v1.2.0
  • proto-v1.2.0-rc.1
  • proto-v1.7.0-rc.1
  • rc/1.2-relay-features
  • release/1.2
  • release/1.7
  • release/staging-no-tron
  • release/tron
  • seismic-production
  • seismic-staging
  • staging
  • staging-shared-ui
  • staging-shared-ui-1.2-rc.1
  • tron-staging

03 Nov 2026 11:55AM UTC coverage: 89.302% (+0.3%) from 89.005%
41631416433

push

github

web-flow
feat(mcp): read-only MCP server for AI agents (#60)

Summary
Read-only MCP server for AI agents (feature 022, phase 1). It runs from the same image as the gateway, as a separate process: node dist/src/mcp-main.js. The regular gateway entry point and its modules are unchanged.

Agents (Claude Code, Codex, Cursor) connect over HTTP to /mcp and can read multisigs: chains, owners' multisigs, settings, balances, queue, history, transaction details, calldata decoding, proposers. Nothing is signed or proposed in this phase.

Changes
McpAppModule root and src/mcp-main.ts entry: no Postgres, AMQP, BullMQ; health checks Redis only (2 s timeout).
configureMcpApp: validates MCP_TRUST_PROXY_HOPS (default 1) and serves only /mcp, /mcp/usage.json, /health/live, /health/ready; every other path is 404.
/mcp: MCP 2026-07-28 (stateless) and 2025-11-25 on one endpoint via @modelcontextprotocol/server createMcpHandler.
Nine read tools reusing existing gateway services: list_chains, find_safes_by_owner, get_safe, get_balances, list_queued_transactions, list_transaction_history, get_transaction, decode_calldata, list_proposers. One error envelope (INVALID_INPUT, NOT_FOUND, FORBIDDEN, RATE_LIMITED, UPSTREAM_ERROR, INTERNAL_ERROR); untrusted-data notice on results; large decoded data and hex capped.
Sanctions blocklist: the same IBlocklistService check as REST BlocklistGuard, applied to safeAddress and to the account inside transaction ids; FORBIDDEN, logged without address or IP.
JSON-RPC batch arrays are rejected (400), so one POST is one call.
Limits: 60 requests/min per client IP (also on /mcp/usage.json); fan-out tools without chainIds 5/min per IP, at most 5 chainIds.
Logging: tool arguments, URLs, paths, cache keys and hex values are dropped or scrubbed; no IP or address in logs.
Usage: daily Redis counters per tool, chain, client label (claude-code, codex, cursor, other) and outcome, plus a HyperLogLog of salted client ids; written fire-and-forget.
GET /mcp/usage.json... (continued)

3625 of 4526 branches covered (80.09%)

Branch coverage included in aggregate %.

593 of 607 new or added lines in 30 files covered. (97.69%)

1 existing line in 1 file now uncovered.

15742 of 17161 relevant lines covered (91.73%)

497.27 hits per line

Relevant lines Covered
Build:
Build:
17161 RELEVANT LINES 15742 COVERED LINES
497.27 HITS PER LINE
Source Files on development
  • Tree
  • List 1109
  • Changed 356
  • Source Changed 6
  • Coverage Changed 356
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
41631416433 development feat(mcp): read-only MCP server for AI agents (#60) Summary Read-only MCP server for AI agents (feature 022, phase 1). It runs from the same image as the gateway, as a separate process: node dist/src/mcp-main.js. The regular gateway entry point a... push 03 Nov 2026 11:59AM UTC web-flow github
89.3
41629666857 feature/mcp-read fix(mcp): read the daily salt without SET NX GET, which needs Redis 7 Pull #60 03 Nov 2026 11:45AM UTC nick8319 github
89.3
41628805672 feature/mcp-read fix(mcp): let requests through when the blocklist cannot be read, as REST does Pull #60 03 Nov 2026 11:38AM UTC nick8319 github
89.3
41627032834 feature/mcp-read fix(mcp): check the account in transaction ids against the blocklist Pull #60 03 Nov 2026 11:25AM UTC nick8319 github
89.31
41624524596 feature/mcp-read test(mcp): assert the tool call log on the logging service, not console Pull #60 03 Nov 2026 11:08AM UTC nick8319 github
89.24
41271525019 dependabot/npm_and_yarn/aws-sdk-74a0c9e8e1 build(deps): bump the aws-sdk group across 1 directory with 4 updates Bumps the aws-sdk group with 4 updates in the / directory: [@aws-sdk/client-kms](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kms), [@aws-sdk/client-s3](https:... Pull #21 01 Nov 2026 04:05AM UTC web-flow github
89.02
40944499064 production-shared-ui Merge pull request #59 from protofire/release/1.7 release/1.7 -> production: proto-v1.7.0 (relay compliance records) push 29 Oct 2026 07:58PM UTC web-flow github
89.01
40533524454 proto-v1.7.0-rc.1 Merge pull request #58 from protofire/release/1.7 release/1.7 -> staging: proto-v1.7.0-rc.1 (relay compliance records: RELAY_RECORD, hit transfers) Pull #55 27 Oct 2026 03:45PM UTC web-flow github
89.03
40533500322 staging-shared-ui Merge pull request #58 from protofire/release/1.7 release/1.7 -> staging: proto-v1.7.0-rc.1 (relay compliance records: RELAY_RECORD, hit transfers) Pull #55 27 Oct 2026 03:44PM UTC web-flow github
89.02
40532535462 release/1.7 fix(relay): record only relay-submit failures; parse Gelato inside the datasource push 27 Oct 2026 03:39PM UTC nick8319 github
89.01
See All Builds (160)

Badge your Repo: safe-client-gateway

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc