claude-gateway (0xMaxMa/claude-gateway) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 83 tools. No publisher has claimed this listing.

C
Caution
74/100

claude-gateway

Turn Claude Code into a voice-enabled, multi-channel assistant that runs tasks in parallel

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

0xMaxMa

Source: github_repo_search

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
🚨
Secret credentials may flow to a network call
7 flows detected: TELEGRAM_BOT_TOKEN, GATEWAY_API_KEY. We can’t prove the destination matches the brand the credential belongs to.
⚠️
Known vulnerabilities in dependencies: 1 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
// tools this server exposes83 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

reply

Reply on Telegram. Pass chat_id from the inbound message. Optionally pass reply_to (message_id) for threading, and files (absolute paths) to attach images or documents.

react

Add an emoji reaction to a Telegram message. Telegram only accepts a fixed whitelist (👍 👎 ❤ 🔥 👀 🎉 etc) — non-whitelisted emoji will be rejected.

download_attachment

Download a file attachment from a Telegram message to the local inbox. Use when the inbound <channel> meta shows attachment_file_id. Returns the local file path ready to Read. Telegram caps bot downloads at 20MB.

edit_message

Edit a message the bot previously sent. Useful for interim progress updates. Edits don't trigger push notifications — send a new reply when a long task completes so the user's device pings.

agent_create

Create a new Claude Gateway agent with a workspace and channel configuration. The gateway hot-adds the agent without requiring a restart.

agent_update

Update an existing agent: add a new channel, remove a channel, or update a workspace file.

api_reply
browse_registry

Browse the community app registry. Omit name to list all apps; provide name to get versions for a specific app.

install_app

Install an app from the registry or a GitHub URL. Returns a jobId to poll with poll_install_job.

poll_install_job

Poll the status of an app install job. Returns status (pending/running/completed/failed), logs, and result on completion.

inspect_app

Preview an install source WITHOUT installing: fetch and parse the app.yaml and return the required secrets (secretKeys, must be provided) and auto-generated secrets (generatedKeys, filled by the gateway), plus name, version, ports, and warnings. Also returns secretDefaults — defaults for prompt-with

list_apps

List all installed apps with their status and proxy URLs.

app_status

Get detailed status and version info for an installed app.

update_app

Update an installed app. Registry apps update to their latest published version; GitHub-URL (custom) apps update to their repo default-branch HEAD. Returns a jobId.

uninstall_app

Uninstall an app — stops containers, removes images, deletes files.

start_stop_app

Start, stop, or restart an installed app.

docker_housekeeping

Reclaim leaked Docker build cache and dangling images left behind by app install/update. mode "report" (default) returns a read-only reclaim report: reclaimable build cache, dangling image count, and orphan volume names. mode "prune" executes ONLY the safe reclaim (build cache older than the configu

backup_app

Back up an installed app — a permission-safe snapshot of its Docker named volumes, bind-mount data directories under the app dir, and config (.env/app.yaml) into a single archive. The app is briefly stopped for a consistent snapshot and restarted afterward. Returns a jobId; poll with poll_install_jo

restore_app

Restore an app's Docker named volumes, bind-mount data directories under the app dir, and config from a prior backup, then start it on the restored data. Restoring a backup from a different app version is allowed but may warn about schema/migration mismatch. Returns a jobId; poll with poll_install_j

list_backups

List an app's backups, newest first: each entry has id, createdAt, sizeBytes, and appVersion. Use the id with restore_app.

browser_create_session

Create or resume GetPod Cloud Browser, NOT the user Chrome or Remote Browser connector. Use only when Cloud Browser is selected, or no Remote Browser is connected for a generic browser request. Returns session status.

browser_close_session

Close a browser session, killing the process and removing session data.

browser_get_stream_url

Get the WebSocket stream URL for an active session (for frontend live view).

browser_navigate

Navigate to a URL. If tab_id is provided, navigates that specific tab; otherwise navigates the active tab.

browser_snapshot

Return the accessibility tree of the current page.

browser_click

Click an element by accessibility ref or CSS selector.

browser_fill

Fill an input element with a value.

browser_type

Type text into the currently focused element.

browser_evaluate

Evaluate JavaScript in the browser and return the result.

browser_scroll

Scroll the page at (x, y) by (deltaX, deltaY).

browser_wait

Wait for a condition: element selector, networkidle, or URL pattern.

browser_get_text

Get text content of an element matching the selector.

browser_new_tab

Open a new browser tab, optionally navigating to a URL. Returns tab_id.

browser_close_tab

Close a browser tab by tab_id.

browser_tabs

List all open browser tabs.

browser_screenshot

Capture the current viewport as JPEG. Returns the absolute file path of the saved image (ready to attach to Telegram).

browser_navigate_tab

Navigate a specific tab (by tab_id) to a URL.

cron_list

List scheduled cron jobs for this agent

cron_create

Create a new cron job

cron_delete

Delete a cron job by ID

cron_update

Update an existing cron job. Provide job_id plus only the fields to change.

cron_run

Run a cron job immediately

cron_get_runs

Get run history for a cron job

discord_reply

Send a message to a Discord channel, thread, or DM. Pass channel_id from the inbound message. Optionally pass reply_to (message_id) and files (absolute paths).

discord_react

Add an emoji reaction to a Discord message.

discord_edit_message

Edit a message the bot previously sent.

discord_download_attachment

Download a file from a Discord CDN URL to the local inbox.

discord_create_thread

Create a public thread in a Discord channel.

generate_image
line_reply
line_image
memory_search

Search your long-term memory archive (past notes under memory/, plus MEMORY.md/USER.md) by keyword and get the most relevant snippets with their file + line range. Use this to recall details that are NOT in the memory currently loaded into your context — the archive holds far more than fits in the p

memory_get

Read an exact line range from one of your memory files (a path returned by memory_search, e.g. "memory/foo.md", or "MEMORY.md"/"USER.md"). Use after memory_search to pull the full context around a snippet. Read-only.

memory_shared_create

Create a NEW note in the shared, cross-agent knowledge base RIGHT NOW, instead of waiting for the nightly automatic promotion. This is an explicit, agent-initiated write (works even when shared-KB mode is "propose"). Notes live in a shared namespace across every agent — pick any "name" you like, the

memory_shared_get

Read the full current content of one shared-KB note by its exact "name" (see memory_shared_create). Use this before memory_shared_update so your edit is based on what is actually there — memory_search only returns short snippets, not the full note.

memory_shared_update
memory_shared_delete

Delete one shared-KB note by its exact "name" (see memory_shared_create). Any agent can delete any note in the shared vault — there is no per-agent ownership. This cannot delete notes the nightly dreaming pipeline promoted (different naming scheme).

share_file
skill_create

Create a new skill from content. The skill will be available immediately via hot-reload.

skill_delete

Delete a skill by name.

skill_install

Install a skill from a GitHub URL or raw URL pointing to a SKILL.md file.

skill_metrics

Read the skill self-improvement effectiveness rollup for this agent: adoption funnel (auto-skill stickiness), cost-to-complete deltas, recovery-rate trend, enabled/disabled cohort, and the net-token ledger (tokens saved by reuse minus tokens spent reviewing). Read-only.

slack_reply
capabilities_list

Discover all capabilities this agent can offer: installed/shared/native skills, gateway MCP tools and enabled connector/plugin MCP tools, including tools executed only by workers. Read metadata only; never executes a tool or grants permissions. Use query to find relevant tools before assigning work.

conversation_intake

Prepare executable work, incomplete materials, or an amendment to an existing task. Do not call this for greetings, introductions, casual conversation or questions you can answer directly; answer those normally once. When semantic intake is enabled, acknowledge before work mutations. Incomplete mate

task_spawn

Durably queue a task for an independent worker. Returns after commit without waiting for worker startup or completion.

task_status

Read the task index in this conversation without waiting. Pass task_id to retrieve the complete stored result and evidence before discussing an earlier task. An index entry is not a partial worker report.

task_cancel

Request cancellation, including needs_reconciliation cleanup. cancel_requested is not proof of termination. Existing files are retained. Set replaced_by_task_id only for a known replacement task, never infer from similar titles.

task_update

Accept a revised task instruction. applied_revision changes only when the worker accepts it.

task_question

Manage pending questions without answering or resuming work. Ask stages one natural separate message after your reply; discuss marks ongoing consultation; defer/mute/resume persist the user reminder preference.

task_answer

Answer the matching pending question on a task.

task_memory_append

Append an explicitly requested memory note for a channel task. API tasks cannot write memory. Files are restricted to MEMORY.md, USER.md, or memory/<name>.md. Retains existing content and deduplicates retries.

task_stage_file

Stage a finished image or document for the user. The orchestration attaches it to the next completed agent response after this task succeeds, using the original destination. This tool does not send to a channel. Call once per output file. For an image returned by an MCP tool (such as a remote browse

task_report_progress

Report factual progress internally. At phase changes include a checkpoint with phase, evidenceVersion, checks, findings and nextAction. This does not send a user message.

task_request_input

Ask the user for information required by your task, then end this turn immediately.

telegram_reply

Reply on Telegram. Pass chat_id from the inbound message. Optionally pass reply_to (message_id) for threading, and files (absolute paths) to attach images or documents.

telegram_react

Add an emoji reaction to a Telegram message. Telegram only accepts a fixed whitelist (👍 👎 ❤ 🔥 👀 🎉 etc) — non-whitelisted emoji will be rejected.

telegram_download_attachment

Download a file attachment from a Telegram message to the local inbox. Use when the inbound <channel> meta shows attachment_file_id. Returns the local file path ready to Read. Telegram caps bot downloads at 20MB.

telegram_edit_message

Edit a message the bot previously sent. Useful for interim progress updates. Edits don't trigger push notifications — send a new reply when a long task completes so the user's device pings.

generate_video
wechat_reply
whatsapp_reply
whatsapp_cloud_reply
// known CVEs in dependencies1 high1 low

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

high@modelcontextprotocol/sdk@1.0.0GHSA-w48q-cv73-mx4w

Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default

lowzod@3.22.0GHSA-m95q-7qp3-xv42

Zod denial of service vulnerability

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configGATEWAY_CAPABILITY_CATALOG
configGATEWAY_ORCHESTRATION_MEDIA
configGATEWAY_ORCHESTRATION_ROLE
configGATEWAY_ORCHESTRATION_TICKET_FILE
configGATEWAY_ORCHESTRATION_WRITE_MEMORY
configGATEWAY_ORIGIN_CHANNEL
configGATEWAY_SEMANTIC_INTAKE
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

83/83 tools missing one or more hints — reply (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); react (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); download_attachment (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +80 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

License file

No license file

Add a LICENSE file (MIT, Apache-2.0, etc.).

Tool test coverage

Only 5/83 tools referenced in tests (6%)

Write tests that reference each tool by name so every tool has at least one test.

Production dependencies are patched

0 critical, 1 high severity in production deps — @modelcontextprotocol/sdk@1.0.0 (high), zod@3.22.0 (low)

Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 5 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/0xmaxma/claude-gateway?variant=verified)](https://m8ven.ai/mcp/0xmaxma/claude-gateway)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 0c8e431b3ceb4949eab07be1eef2ab8c425c0790
code hash: 912b0f908e06a568648a71d34c0710c47ae4fea3e67b5c47d048345afecf3aab
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client