metis-ai (f1shyondrugs/metis-ai) is an MCP server listed on the M8ven Trust Index. It scores 40 out of 100, grade D. It declares 111 tools. No publisher has claimed this listing.

D
Caution
40/100

metis-ai

A private, self-hosted workspace for AI agents with tools, memory, browser control, MCP servers and multi-provider support.

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

f1shyondrugs

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
18 flows detected: MCP_BEARER_TOKEN. We can’t prove the destination matches the brand the credential belongs to.
🚨
Known vulnerabilities in dependencies: 3 critical, 11 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
🔐
You'll be asked for 6 credentials: AI_CHAT_INTERNAL_TOKEN, AI_CHAT_JOB_LEASE_TOKEN, CHAT_PASSWORD, MCP_BEARER_TOKEN, GEMINI_API_KEY, GOOGLE_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes111 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.

provide_file

Attach a file to the current chat and make it available as a protected download link and preview. Whenever the user asks to attach, send, share, export, or provide a file, you MUST call provide_file; creating the file or mentioning its path is not enough. Call once for each file.

create_automation

Create a one-time or recurring autonomous agent automation. Every run gets its own persistent chat transcript and can use the same allowed tools, child MCPs, remote tools, and persistent Metis browser as a normal Agent-mode run. Recurring schedules can use minutes, days, or a calendar day each month

list_automations

List the current user's automations, including creator, node graph, isolated persistent run chats, status, and recent runs.

update_automation

Update an existing automation's name, prompt, context chat, models, maximum run duration, timezone, or schedule.

run_automation

Start an automation immediately as a manual run. The run is isolated in its own persistent chat and does not replace the recurring schedule.

pause_automation

Pause an automation so it will not run until resumed.

resume_automation

Resume a paused automation.

delete_automation

Permanently delete an automation and its run history.

write_todos

Create or replace a short in-chat checklist. Use only for work with 3+ distinct steps; skip it for a single edit. It appears in the message, not as a side-panel plan. Use create_plan only when the user asked for a plan document.

create_plan

Create or replace a real Metis plan workspace in the current chat. Provide the complete plan content; a title alone is not sufficient.

create_canvas

Create or replace a real Metis canvas workspace in the current chat. Provide the complete canvas content; a title alone is not sufficient.

edit_plan

Edit an existing plan workspace in the current chat.

edit_canvas

Edit an existing canvas workspace in the current chat.

update_chat_title

Set the current chat title.

update_chat_keywords

Add concise, non-sensitive keywords to the current chat so it can be found later. Use this silently when the topic becomes clear or changes.

search_chats

Search the signed-in user's chats by title, keywords, or message content.

context_search

Search the owner's personal context hub: devices, servers, services, projects, preferences, and long-term facts. Use before answering questions about the user's setup, before planning changes to their infrastructure, or when background knowledge about the owner would change the answer. Returns groun

context_profile

Read the owner's canonical profile: identity, core preferences, infrastructure overview, and active projects. Cheaper than context_search when a general overview is enough.

context_remember

Store one durable, non-secret fact about the owner in the shared context hub (same fact_id updates the fact). Never store passwords, API keys, cookies, tokens, or auth material. Use sparingly for stable preferences and environment facts the owner confirmed.

list_notes

List active shared notes in the current chat or workspace scope.

search_notes

Search shared notes by title or content.

create_note

Create a shared note or project for the current chat. Use kind=project with todos for multi-chat planning. Deletion is intentionally not exposed to agents.

update_note

Update a shared note using optimistic version checking.

list_memories

Retrieve the user's saved memories for the current account.

add_memory

Add a durable memory for the current user. Only save useful user-approved facts or preferences.

edit_memory

Edit one existing memory by id for the current user.

delete_memory

Delete one existing memory by id for the current user.

list_workspaces

List plan and canvas workspaces in the current chat.

delete_plan

Delete a plan workspace by id after confirmation.

delete_canvas

Delete a canvas workspace by id after confirmation.

git_status

Return git status for the agent workspace.

git_diff

Return the current unstaged git diff for the agent workspace.

browser_extract_text

Extract readable text from the current browser page and all embedded frames. Use this instead of reloading or shell inspection.

browser_form_state

Return structured form controls plus compact text from the page and embedded frames. Controls include a frame hint and stable selector. Prefer this over screenshots or shell/Playwright inspection for forms.

browser_batch

Execute up to 100 browser actions in one round-trip, including embedded-frame controls. Use for repetitive form filling/clicking instead of one tool call per field.

browser_wait_for

Wait for a selector or visible text condition. Prefer this over fixed wait/sleep calls.

browser_fill_form

Fill a browser form field using a CSS selector.

browser_download

Trigger a download from the current browser page by clicking a CSS selector.

browser_drag

Drag an element to a target element (HTML5 and mouse-based drag & drop).

browser_hover

Hover over an element by CSS selector (reveals hover menus and tooltips).

browser_select_option

Select an option in a <select> dropdown by value.

browser_upload_file

Upload a local file into a file input on the current browser page.

gateway_status
list_mcp_servers

List the dynamic MCP registry. Disabled entries show integrations that still need authorization.

search_tools

Search tools on enabled child MCP servers. Use only when you do not already know the gateway tool name (read_file, edit_file, execute_command, …). Do not call this at the start of ordinary tasks.

list_server_tools

List full tool schemas from one child MCP server.

call_mcp_tool

Call any tool exposed by a registered child MCP server.

ask_user
request_mode_change

Required when the current mode cannot perform the user's requested action. Use the exact mode ID: agent for implementation/file changes, plan for read-only planning, or ask for read-only answers; custom mode IDs are supplied in the chat instructions. Opens a real confirmation prompt for switching th

wait

Pause this agent for a bounded amount of time. Use this when work is expected to finish asynchronously; the wait always has a server-enforced maximum.

delegate_subagent

Spawn a real provider-neutral Metis child agent with its own persistent chat/run. Use wait=false to launch independent workstreams in parallel, then subagent_status to collect them before final synthesis. The child inherits the parent mode policy, so delegation cannot bypass read-only restrictions.

subagent_status

Inspect delegated subagents for this chat and optionally wait for a status change. Returns compact status data while preserving full tool logs in the chat.

ensure_capability

Find an existing matching tool, or autonomously search the complete official MCP Registry, provision and probe the best supported MCP, then return its available tools. Use this when a requested capability is not already visible.

sync_agent_knowledge

Write or update managed MCP instructions for AGENTS.md, CLAUDE.md, GEMINI.md, Copilot, Cursor, and OpenCode on the server, Windows PC, or laptop.

upsert_mcp_server

Add or update a remote URL or stdio MCP server in the dynamic registry. The server remains centrally available through this gateway URL.

set_mcp_server_enabled

Enable or disable one child MCP server.

web_search

Search the current web through the local SearXNG instance first, with Exa as fallback. Suitable for current information, products, code, and research.

web_fetch

Fetch and extract one or more public read-only web pages. Uses the local Scrapling static scraper first for speed, then Exa as fallback. If a page requires login, interaction, JavaScript state, or a challenge, use the persistent browser_* tools instead.

browser_navigate

Navigate the server-side browser to an allowed URL. The browser can reach server localhost URLs from the configured allowlist.

browser_snapshot

Return the current server-browser accessibility snapshot for selecting and understanding page elements.

browser_screenshot

Capture the current server-browser page as a JPEG and return it to the agent. Use only when visual inspection is necessary.

browser_click

Click a page element by CSS selector, exact/partial visible text, or viewport coordinates. Selectors/text are searched across embedded frames automatically.

browser_type

Fill a page input by selector or type at the current focus. Selectors are searched across embedded frames automatically.

browser_press

Press a keyboard key in the server browser.

browser_resize

Set the server-browser viewport resolution for the current tab.

browser_scroll

Scroll the current server-browser page vertically.

browser_tabs

List and select tabs in the current server-browser session.

context7_resolve

Resolve a library name to the best Context7 library id before querying documentation.

context7_query

Retrieve current, version-specific library documentation from Context7.

system_info

Get system overview for the server, CachyOS laptop, or Windows PC.

execute_command

Run Bash on server/laptop or PowerShell on the Windows PC. Use dedicated Windows UI and Electron tools for visible desktop testing.

remote_client_terminal

Open and control a persistent shell session on a connected remote client. The session keeps its working directory and environment between calls.

list_remote_clients

List the connected remote clients belonging to the current account, including their IDs, capabilities, policy, and online status.

list_directory

List a directory on any device.

read_file

Read a UTF-8 text file from the server or a connected remote client. Prefer offset+limit around the relevant region instead of reading the whole file. For a client use target client:<remote-client-id>.

repo_search

Search the persistent local repository index for relevant files, symbols, imports, and paths before broad filesystem exploration.

inspect_codebase

Return compact indexed codebase findings for a query without dumping whole files.

verify_work

Prove work claims with real command output instead of asserting them. Each claim pairs a short label with a command and expected output markers; every command is executed and the result recorded in a per-job evidence ledger (see ledger_review). Use for 'tests pass', 'server is up', 'config applied'

ledger_review

Read the evidence ledger for the current job: every verify_work claim with verified/failed status. Use before reporting task completion so the summary cites real evidence.

audio_fingerprint

Identify or register audio Shazam-style: spectral landmark hashing against a local reference database. Actions: match (identify an audio file), ingest (register a reference track with title/artist), stats (database overview). Requires ffmpeg. Audio argument may be any file ffmpeg can decode.

find_symbol

Find functions, classes, interfaces, types, and exported symbols through the persistent repository index.

write_file

Create or overwrite a UTF-8 text file on the server or a connected remote client. For a client use target client:<remote-client-id>.

edit_file

Replace one exact oldText block with newText in a UTF-8 file on the server or a connected remote client. Pass the smallest unique snippet, never the whole file. For a client use target client:<remote-client-id>.

delete_file

Delete a file on the server or a connected remote client. For a client use target client:<remote-client-id>.

docker_ps

List Docker containers on a Linux device.

service_control

Inspect, restart, start, stop, or read logs for a systemd service on server/laptop.

windows_ui

Inspect and control visible Windows applications through Microsoft's winapp UI Automation. Supports Electron, Win32, WPF, WinForms, and WinUI. Actions include list-windows, inspect, search, status, get-property, get-value, invoke, click, set-value, send-keys, focus, hover, scroll, wait-for, screensh

windows_screenshot

Capture a visible Windows app or UI element and return the PNG directly to the agent.

electron_test

Analyze, install, audit, lint, type-check, unit-test, E2E-test, build, package, launch, or comprehensively validate an Electron project on the Windows PC. Use full first, then launch and windows_ui/windows_screenshot for feature-by-feature visual validation.

windows_desktop_job

Run an arbitrary command inside the active interactive Windows desktop session. Use only when windows_ui or electron_test cannot express the operation.

workflow_save

Save a reusable workflow of allowlisted core gateway tool calls.

workflow_list

List saved workflows.

workflow_get

Get a saved workflow.

workflow_delete

Delete a saved workflow.

workflow_run

Run a saved workflow in order, stopping at the first failure. Use dry_run to validate without device side effects.

assistant_status

Return compact live status for all devices, gateway services, and available tool count.

gateway_bootstrap

Return the public bootstrap document with connection URL, transport, and discovery tool names.

search_registry

Search the complete mirrored official MCP Registry for installable servers. Delegates to the registry-autobroker child.

registry_status

Show official MCP Registry sync state, catalog version, total entries, and knowledge targets.

registry_changes

Return catalog additions, updates, deletions, and provisioning events after a timestamp.

11 further tools are not listed here. The complete surface is in the source.

// known CVEs in dependencies3 critical11 high7 medium7 low

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

criticalnext@15.5.0GHSA-2xp9-vwfh-vxw4

Next.js: Unauthenticated Remote Code Execution in Image Optimization API when AVIF files are used

criticalnext@15.5.0GHSA-9qr9-h5gf-34mp

Next.js is vulnerable to RCE in React flight protocol

criticalnext@15.5.0GHSA-p293-qw3h-jr36

Next.js: Unauthenticated Remote Code Execution on windows-hosted servers

highnext@15.5.0GHSA-267c-6grr-h53f

Next.js has a Middleware / Proxy bypass in App Router applications via segment-prefetch routes

highnext@15.5.0GHSA-26hh-7cqf-hhc6

Next.js has a Middleware / Proxy bypass in App Router applications via segment-prefetch routes - Incomplete Fix Follow-Up

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.
configAI_CHAT_HOSTThe custom server listens on (default 127.0.0.1) and defaults
configAI_CHAT_INTERNAL_MCP_SERVER
configAI_CHAT_INTERNAL_ORIGIN
🔐 secretAI_CHAT_INTERNAL_TOKEN
configAI_CHAT_JOB_ID
🔐 secretAI_CHAT_JOB_LEASE_TOKEN
configAI_CHAT_MCP_STATE_DIR3. Set AI_CHAT_ROOT, and AGENT_CWD explicitly.
configAI_CHAT_PUBLIC_URL
configAI_CHAT_ROOT3. Set , AI_CHAT_MCP_STATE_DIR and AGENT_CWD explicitly.
configAI_CHAT_RUNTIME_MODE
configAI_CHAT_WORKER_CONCURRENCY
configAI_CHAT_WORKER_CRASH_RETRIES
configAI_CHAT_WORKER_ID
configAI_CHAT_WORKER_MAX_JOB_MS
configAI_CHAT_WORKER_POLL_MS
configAPP_NAME
🔐 secretCHAT_PASSWORDadmin / required
configCONTEXT_HUB_URL
configGITHUB_SHA
configMCP_AGENT_CWD
configMCP_ALLOW_ROOT_AGENTS
configMCP_AUTOMATION
🔐 secretMCP_BEARER_TOKEN1. Set a long, random .
configMCP_CAPABILITY_HASH
configMCP_CAPABILITY_MANIFEST
configMCP_CHAT_ID
configMCP_COMPRESSION_ENABLED
configMCP_COMPRESSION_MODE
configMCP_COMPRESSION_TOOL_RESULTS
configMCP_CORS_ORIGIN
configMCP_DOCKER_NETWORK
configMCP_INCOGNITO
configMCP_IS_HOST_ADMIN
configMCP_JOB_ID
configMCP_LAPTOP_HOME
configMCP_LAPTOP_HOST
configMCP_LAPTOP_LABEL
configMCP_LAPTOP_USER
configMCP_LOCAL_SCRAPER_SEARCH_URL
configMCP_LOCAL_SCRAPER_URL
configMCP_LOCAL_SEARCH_URLUnset
configMCP_MODE_ID
configMCP_MODE_POLICY
configMCP_OS_GID
configMCP_OS_UID
configMCP_OS_USERNAME
configMCP_PC_HOME
configMCP_PC_HOST
configMCP_PC_LABEL
configMCP_PC_USER
configMCP_SDK_ROOT
configMCP_SERVER_HOME
configMCP_SERVER_LABEL
configMCP_SERVER_OS
configMCP_SERVER_USER
configMCP_USER_ID
configMETIS_RELEASE_COMMIT
configMETIS_RELEASE_TAG
configNEXT_DIST_DIR
configPNPM_BIN
🔐 secretGEMINI_API_KEY
🔐 secretGOOGLE_API_KEY
configGOOGLE_GENAI_USE_VERTEXAI
configGOOGLE_CLOUD_PROJECT
configGOOGLE_CLOUD_LOCATION
configMETIS_SCRAPER_HOST
configMETIS_SCRAPER_PORT
configMETIS_SCRAPER_FETCH_TIMEOUT
configSESSIONNAME
Deployment configuration, supplied by whoever hosts the server. Users are not asked for these.
deployNEXT_PUBLIC_AGENT_CWD
deployNEXT_PUBLIC_APP_NAME
deployNEXT_PUBLIC_CHAT_USERNAME
deployNEXT_PUBLIC_STORAGE_PREFIX
deployPORT
// quality suggestions

Dependencies

43 runtime dependencies (16 dev), 1 flagged: playwright

Tool annotations

48/111 tools have annotations

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

All four hints declared on every tool

111/111 tools missing one or more hints — provide_file (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); create_automation (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_automations (missing: destructiveHint, idempotentHint, openWorldHint), +108 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.

Tool test coverage

42/111 tools referenced in tests (38%)

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

No eval / new Function

1 eval() or new Function() call — dynamic code execution

Replace eval / Function with explicit parsing or safer alternatives.

Secrets stay with their owner

18 secrets sent to a request target we could not resolve (MCP_BEARER_TOKEN → dynamic, MCP_BEARER_TOKEN → dynamic) — often a configured endpoint, not necessarily third-party

Audit where credentials are sent. A NOTION_TOKEN should only reach api.notion.com — never a third-party host.

Secrets not written to files

1 secret value written to files

Avoid persisting secrets to disk. Keep them in memory or your secret manager.

Production dependencies are patched

3 critical, 11 high severity in production deps — next@15.5.0 (critical), next@15.5.0 (critical)

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

Dependency freshness

2/43 production deps stale: remark-math@2023-11-20 (2.8y), rehype-katex@2024-08-19 (2.1y)

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 7 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/f1shyondrugs/metis-ai?variant=verified)](https://m8ven.ai/mcp/f1shyondrugs/metis-ai)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: fdbf61732da27235c930cfbd84a2680d5ec390bf
code hash: 0b8b3e6f0145355967d8e29adb9a92fdf9ba1667ac49de711ef2fa7ef56e4d11
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