Metis_PH (SVerITG/Metis_PH) is an MCP server listed on the M8ven Trust Index. It scores 30 out of 100, grade F. It declares 250 tools. No publisher has claimed this listing.

F
Warning
30/100

Metis_PH

A Research Cortex. A research companion for Claude. Your library, notes & memory stay on your machine; answers cited from your own library; 30+ specialist skills; auto cross-pollination across papers, meetings, ideas, notes & journal; weekly self-review that drafts improvements for your approval. Reasoning runs on the Claude API.

Warning. Serious findings were identified. Review the full report before connecting. 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

SVerITG

Source: Glama · also listed on 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
5 flows detected: HF_API_TOKEN, ZOTERO_API_KEY, ANTHROPIC_API_KEY. We can’t prove the destination matches the brand the credential belongs to.
🚨
Code appears obfuscated
3 files are unreadable to a human reviewer. Cannot audit what they do.
⚠️
Tool descriptions don’t match what handlers do
4 tools describe read intent but their handlers mutate — install_background_pack (line 228: dest.write_bytes(body)); search_memory (line 103: proc = subprocess.run(); link_claude_desktop (line 399: result = subprocess.run()
🔐
You'll be asked for 10 credentials: DHIS2_PASSWORD, ANTHROPIC_API_KEY, GEMINI_API_KEY, HF_API_TOKEN, S2_API_KEY, SEMANTIC_SCHOLAR_API_KEY, HF_TOKEN, ZOTERO_API_KEY, TWILIO_AUTH_TOKEN, MISTRAL_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes250 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.

get_agent_context

Load an agent's system prompt, contract, skill and project contexts from the RC.

log_agent_run

Log a completed agent run to the database for audit and dashboard tracking.

get_agent_runs

Retrieve recent agent run history from the database.

anonymize_text

Scrub PII from text and return anonymized version + replacement map.

scan_outgoing

Output rail: check a drafted response for leaked PII before it's sent.

redact_data_file

Read a sensitive data file and return a REDACTED preview (masked values).

diff_anonymization

Return a unified diff comparing original and anonymized text.

log_consent_event

Append a row to the consent_ledger table.

get_consent_ledger

Retrieve recent consent events from the audit ledger.

set_network_policy

Set the current network access policy for all agents.

get_network_policy

Return the current network access policy.

list_background_packs

List the knowledge background packs available to install, and what is already installed.

install_background_pack

Install a knowledge background pack: fetch its documents and register the layer.

export_background_pack

Write a pack manifest for one of your installed background layers.

backup_db

Create a timestamped backup of the Metis SQLite database.

encrypt_backup

AES-256-GCM encrypt a backup file.

decrypt_backup

Decrypt a .enc backup produced by encrypt_backup().

list_backups

List all backup files with size, age, and checksum availability.

verify_backup

Run SQLite integrity_check on a backup file.

restore_db

Restore the Metis database from a backup.

set_backup_schedule

Configure the nightly backup schedule.

get_backup_schedule

Return the current backup schedule configuration.

brainstorm_turn

Run one turn of a brainstorm session, returning relevant context.

get_brainstorm_session

Retrieve all turns in a brainstorm session.

list_brainstorm_sessions

List recent brainstorm sessions with title, turn count, and status.

save_brainstorm_output

Freeze a brainstorm session as a saved Markdown output.

register_code_artifact

Save a script, snippet, reusable function or template to the Code Repository.

register_data_dictionary

Record a dataset's data dictionary — one stored entry per variable.

record_dataset_treatment

Record one cleaning/transformation step for a dataset (its lineage).

search_code_repository

Search the Code Repository for prior code, variables and treatments.

scaffold_script

Assemble the raw material to write a NEW script from previous work.

get_user_config

Return the full Metis user configuration from user-config.yaml.

add_specialist_context

Add a specialist context to the user profile, or update it if it exists.

toggle_context

Activate or deactivate a specialist context.

list_contexts

List all user contexts (general + specialist) with active status.

write_user_config

Write the full user-config.yaml produced by the first-run config wizard.

write_user_preferences

Write user-preferences.json produced by the first-run config wizard.

ingest_ideas_document

Import an ideas document (Word/text/markdown) and capture each idea.

remove_first_run_marker

Delete the .first-run marker file to signal that the config wizard is complete.

update_today_board

Fill a Today-surface board (Outbreaks, Events or Funding) with items you found on the web.

scan_news

Fetch the news feeds and add new items to the News surface.

scan_library

Fetch the literature feeds and add new papers to the Library.

scan_literature

Scan inputs/literature/ for new PDFs and register them in literature_metadata.

scan_inbox

Scan the inbox/ folder and auto-transcribe any audio files to ideas.

get_news_briefs

Retrieve recent news briefs from the database.

check_news_feeds

Check every news feed and report which ones are actually working.

full_scan

Run all Metis update scans in sequence and return a combined report.

get_continuity_context

Find what the researcher has already done that bears on the current question.

start_course_build

Start a new course build pipeline.

save_course_outline

Save an approved course outline after Step 2 (Scope Plan).

get_course_status

Return the current status of a course build (or all active builds).

save_course_sources

Step 3 — Save harvested source metadata for a course.

save_course_curriculum

Step 4 — Save the approved curriculum design for a course.

save_lesson_draft

Step 5 of the course build — save one drafted lesson to disk.

review_course

Step 6 — Run quality checks on a drafted course before publishing.

publish_course

Finalise and publish a completed course build.

register_data_trigger

Register a data automation trigger — "when X happens, do Y".

list_data_triggers

List all data automation triggers with their status.

update_data_trigger

Update a data trigger (enable/disable, rename, change schedule).

delete_data_trigger

Delete a data trigger permanently.

run_trigger_now

Manually execute a data trigger right now.

profile_dataset

Profile a tabular dataset: shape, dtypes, null %, unique counts, distributions.

suggest_cleaning

Profile a dataset and return specific recommended cleaning operations.

clean_dataset

Apply cleaning operations to a dataset and write a new file.

compare_profiles

Compare two dataset profiles and produce a side-by-side diff.

list_supported_formats

List supported dataset formats and installed library versions.

promote_session_decisions

Pull decisions out of session summaries into the open-decisions ledger.

review_open_decisions

Walk the decisions waiting on you, most-repeated first.

resolve_decision

Close an open decision: agreed, rejected, deferred or dropped.

dhis2_query

Make an authenticated API call to the configured DHIS2 instance.

dhis2_metadata

Query DHIS2 metadata with a simplified interface.

next_discovery_tip

Return ONE earned, not-yet-shown feature tip for the current moment (or '').

discovery_intro

Return the tiny first-run orientation — the 3-5 highest-value capabilities.

set_discovery_tips

Adjust the feature-tips preference (the user's control).

discovery_status

Report the discovery-tips state and a simple adoption read.

metis_doctor

Run a one-screen health check on Metis.

weigh_evidence

What does the evidence in the corpus actually say about a quantity?

check_for_newer_evidence

How old is the corpus on this topic, and what has been published since?

scan_tracked_files

Scan all tracked files and report which have changed since last scan.

add_tracked_file

Add a single file to the tracked-files list and start watching it.

connect_project_folder

Register all relevant files in a project folder so Metis can read them.

read_file

Read the content of a file and return it as text.

list_folder

List files in a folder.

list_basket

List files in the Metis basket (legacy & inspiration documents).

promote_basket_item

Move a basket item to a stable project folder (promote from basket to active storage).

remove_tracked_file

Stop tracking a file so Metis no longer watches it for changes.

index_pdf_library

Extract and index full text from all PDFs in the Metis library.

search_fulltext

Full-text keyword search across all indexed PDFs.

probe_tool_result

M5.7.1 — Probe external tool result for injection patterns.

get_constitution

M5.7.3 — Load the Metis constitutional policy for agent context.

validate_pipeline_stage

M5.7.4 — Validate a sub-agent output before passing to the next pipeline stage.

generate_handoff_brief

Generate a portable session handoff brief.

capture_idea

Store an idea in the SQLite ideas table.

get_ideas

List captured ideas from your knowledge base, newest first.

add_journal_entry

Store a journal entry with auto-extracted mood and energy.

daily_note

Append to (or read) today's daily note — one rolling note per day.

get_journal

List journal entries from your knowledge base, newest first.

get_contacts

Retrieve all contacts from the contacts table.

update_contact

Add or update a contact record.

get_glossary

Retrieve all glossary terms.

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

// 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.
configMETIS_TOOL_SUBSETS
configMETIS_AGENT_SUBSET
configMETIS_TOOL_SEARCHMetis registers 210+ MCP tools, but exposing all of them to Claude on every session wastes context. By default, ~80 everyday tools load immediately; the rest are retrieved on demand via find_tools() / load_tool_group() (progressive disclosure). Each tool definition costs tokens; loading fewer means more room for actual work and lower per-session cost. Disable with METIS_TOOL_SEARCH=0 to load all tools.
configMETIS_DATA_DIR
configMETIS_RC_ROOTReplace <you> with your username. The generated run.sh resolves from a marker file at runtime — no hardcoded paths. No API key is required to run the server itself.
configMETIS_DEMO
configMETIS_ALLOW_DATA_WRITE
configDHIS2_BASE_URL
configDHIS2_USERNAME
🔐 secretDHIS2_PASSWORD
🔐 secretANTHROPIC_API_KEY
configZOTERO_ROOT
🔐 secretGEMINI_API_KEY
🔐 secretHF_API_TOKEN
configMETIS_OBSIDIAN_VAULT
🔐 secretS2_API_KEY
🔐 secretSEMANTIC_SCHOLAR_API_KEY
configMETIS_CODE_ROOT
configMETIS_WHISPER_MODEL
🔐 secretHF_TOKEN
🔐 secretZOTERO_API_KEY
configZOTERO_USER_ID
configZOTERO_GROUP_ID
configMETIS_NO_AMBIENT_MEMORY
configCLAUDECODE
configCLAUDE_CODE_SESSION_ID
configMETIS_CLIENT
configMETIS_PKM_ROOT
configMETIS_DB
configMETIS_DOCKER
configSSL_CERT_FILE
configREQUESTS_CA_BUNDLE
configFASTEMBED_CACHE_PATH
configHF_HUB_OFFLINE
configMETIS_NO_TOOL_GUARD
🔐 secretTWILIO_AUTH_TOKEN
configMETIS_DB_PATH
configMETIS_LOG_DIR
configMETIS_LIBRARY_PATH
configWHISPER_MODEL
🔐 secretMISTRAL_API_KEY
configVOXTRAL_MODEL
configMETIS_PORT
configMETIS_HOST
// 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

250/250 tools missing one or more hints — get_agent_context (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); log_agent_run (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_agent_runs (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +247 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.

Destructive tools are labelled

5 tools perform destructive updates without destructiveHint — install_background_pack deletes at line 231 (dest.unlink(missing_ok=True)); remove_first_run_marker deletes at line 378 (_FIRST_RUN_MARKER.unlink()); remove_library_item deletes at line 159 (file_path.unlink())

Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.

Descriptions match behaviour

4 tools describe read intent but their handlers mutate — install_background_pack (line 228: dest.write_bytes(body)); search_memory (line 103: proc = subprocess.run(); link_claude_desktop (line 399: result = subprocess.run()

Rename the tool, rewrite the description, or move the side-effect into a separate clearly-named tool.

Tool test coverage

157/250 tools referenced in tests (63%)

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

No eval / new Function

3 eval() or new Function() calls — dynamic code execution

Replace eval / Function with explicit parsing or safer alternatives.

Readable source code

3 files are minified or bundled, which is usually build output rather than concealment

Ship unminified, readable source.

Secrets not logged

5 secret values sent to print/log.warning

Redact or omit secret values from log output.

Tool description accuracy

4 tools have description/behavior mismatches: install_background_pack: description implies read-only but handler writes/deletes/executes; search_memory: description implies read-only but handler writes/deletes/executes; link_claude_desktop: description implies read-only but handler writes/deletes/executes

Update tool descriptions to accurately reflect all capabilities — especially write, delete, or execute operations.

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 9 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/sveritg/metis_ph?variant=verified)](https://m8ven.ai/mcp/sveritg/metis_ph)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: dc8df5a2b8285edc5421f3ab00d88b40b4f0f29a
code hash: c955f26d31e988924f4d9b4a214c27de149accc79a112dfa4cab9fd35d57352f
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