Metis (SVerITG/Metis) is an MCP server listed on the M8ven Trust Index. It scores 30 out of 100, grade F. It declares 231 tools. No publisher has claimed this listing.
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
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
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.
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_contextLoad an agent's system prompt, contract, skill and project contexts from the RC.
log_agent_runLog a completed agent run to the database for audit and dashboard tracking.
get_agent_runsRetrieve recent agent run history from the database.
anonymize_textScrub PII from text and return anonymized version + replacement map.
scan_outgoingOutput rail: check a drafted response for leaked PII before it's sent.
redact_data_fileRead a sensitive data file and return a REDACTED preview (masked values).
diff_anonymizationReturn a unified diff comparing original and anonymized text.
log_consent_eventAppend a row to the consent_ledger table.
get_consent_ledgerRetrieve recent consent events from the audit ledger.
set_network_policySet the current network access policy for all agents.
get_network_policyReturn the current network access policy.
list_background_packsList the knowledge background packs available to install, and what is already installed.
install_background_packInstall a knowledge background pack: fetch its documents and register the layer.
export_background_packWrite a pack manifest for one of your installed background layers.
backup_dbCreate a timestamped backup of the Metis SQLite database.
encrypt_backupAES-256-GCM encrypt a backup file.
decrypt_backupDecrypt a .enc backup produced by encrypt_backup().
list_backupsList all backup files with size, age, and checksum availability.
verify_backupRun SQLite integrity_check on a backup file.
restore_dbRestore the Metis database from a backup.
set_backup_scheduleConfigure the nightly backup schedule.
get_backup_scheduleReturn the current backup schedule configuration.
brainstorm_turnRun one turn of a brainstorm session, returning relevant context.
get_brainstorm_sessionRetrieve all turns in a brainstorm session.
list_brainstorm_sessionsList recent brainstorm sessions with title, turn count, and status.
save_brainstorm_outputFreeze a brainstorm session as a saved Markdown output.
register_code_artifactSave a script, snippet, reusable function or template to the Code Repository.
register_data_dictionaryRecord a dataset's data dictionary — one stored entry per variable.
record_dataset_treatmentRecord one cleaning/transformation step for a dataset (its lineage).
search_code_repositorySearch the Code Repository for prior code, variables and treatments.
scaffold_scriptAssemble the raw material to write a NEW script from previous work.
get_user_configReturn the full Metis user configuration from user-config.yaml.
add_specialist_contextAdd a specialist context to the user profile, or update it if it exists.
toggle_contextActivate or deactivate a specialist context.
list_contextsList all user contexts (general + specialist) with active status.
write_user_configWrite the full user-config.yaml produced by the first-run config wizard.
write_user_preferencesWrite user-preferences.json produced by the first-run config wizard.
ingest_ideas_documentImport an ideas document (Word/text/markdown) and capture each idea.
remove_first_run_markerDelete the .first-run marker file to signal that the config wizard is complete.
update_today_boardFill a Today-surface board (Outbreaks, Events or Funding) with items you found on the web.
scan_newsFetch RSS feeds and add new items to news_briefs.
scan_literatureScan inputs/literature/ for new PDFs and register them in literature_metadata.
scan_inboxScan the inbox/ folder and auto-transcribe any audio files to ideas.
get_news_briefsRetrieve recent news briefs from the database.
full_scanRun all Metis update scans in sequence and return a combined report.
start_course_buildStart a new course build pipeline.
save_course_outlineSave an approved course outline after Step 2 (Scope Plan).
get_course_statusReturn the current status of a course build (or all active builds).
save_course_sourcesStep 3 — Save harvested source metadata for a course.
save_course_curriculumStep 4 — Save the approved curriculum design for a course.
save_lesson_draftStep 5 of the course build — save one drafted lesson to disk.
review_courseStep 6 — Run quality checks on a drafted course before publishing.
publish_courseFinalise and publish a completed course build.
register_data_triggerRegister a data automation trigger — "when X happens, do Y".
list_data_triggersList all data automation triggers with their status.
update_data_triggerUpdate a data trigger (enable/disable, rename, change schedule).
delete_data_triggerDelete a data trigger permanently.
run_trigger_nowManually execute a data trigger right now.
profile_datasetProfile a tabular dataset: shape, dtypes, null %, unique counts, distributions.
suggest_cleaningProfile a dataset and return specific recommended cleaning operations.
clean_datasetApply cleaning operations to a dataset and write a new file.
compare_profilesCompare two dataset profiles and produce a side-by-side diff.
list_supported_formatsList supported dataset formats and installed library versions.
promote_session_decisionsPull decisions out of session summaries into the open-decisions ledger.
review_open_decisionsWalk the decisions waiting on you, most-repeated first.
resolve_decisionClose an open decision: agreed, rejected, deferred or dropped.
dhis2_queryMake an authenticated API call to the configured DHIS2 instance.
dhis2_metadataQuery DHIS2 metadata with a simplified interface.
next_discovery_tipReturn ONE earned, not-yet-shown feature tip for the current moment (or '').
discovery_introReturn the tiny first-run orientation — the 3-5 highest-value capabilities.
set_discovery_tipsAdjust the feature-tips preference (the user's control).
discovery_statusReport the discovery-tips state and a simple adoption read.
metis_doctorRun a one-screen health check on Metis.
scan_tracked_filesScan all tracked files and report which have changed since last scan.
add_tracked_fileAdd a single file to the tracked-files list and start watching it.
connect_project_folderRegister all relevant files in a project folder so Metis can read them.
read_fileRead the content of a file and return it as text.
list_folderList files in a folder.
list_basketList files in the Metis basket (legacy & inspiration documents).
promote_basket_itemMove a basket item to a stable project folder (promote from basket to active storage).
remove_tracked_fileStop tracking a file so Metis no longer watches it for changes.
index_pdf_libraryExtract and index full text from all PDFs in the Metis library.
search_fulltextFull-text keyword search across all indexed PDFs.
probe_tool_resultM5.7.1 — Probe external tool result for injection patterns.
get_constitutionM5.7.3 — Load the Metis constitutional policy for agent context.
validate_pipeline_stageM5.7.4 — Validate a sub-agent output before passing to the next pipeline stage.
generate_handoff_briefGenerate a portable session handoff brief.
capture_ideaStore an idea in the SQLite ideas table.
get_ideasList captured ideas from your knowledge base, newest first.
add_journal_entryStore a journal entry with auto-extracted mood and energy.
daily_noteAppend to (or read) today's daily note — one rolling note per day.
get_journalList journal entries from your knowledge base, newest first.
get_contactsRetrieve all contacts from the contacts table.
update_contactAdd or update a contact record.
get_glossaryRetrieve all glossary terms.
add_glossary_termAdd a glossary term, or update its definition if it already exists.
find_connectionsSearch library, meetings, and news for items related to given text.
cross_pollinateFind cross-domain connections for given text.
assemble_brainstorm_contextAssemble context from multiple sources for brainstorming.
generate_imageGenerate an image using AI and save it to the PKM.
131 further tools are not listed here. The complete surface is in the source.
METIS_TOOL_SUBSETSMETIS_AGENT_SUBSETMETIS_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.METIS_DATA_DIRMETIS_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.METIS_DEMOMETIS_ALLOW_DATA_WRITEDHIS2_BASE_URLDHIS2_USERNAMEDHIS2_PASSWORDANTHROPIC_API_KEYZOTERO_ROOTGEMINI_API_KEYHF_API_TOKENMETIS_OBSIDIAN_VAULTS2_API_KEYSEMANTIC_SCHOLAR_API_KEYMETIS_CODE_ROOTMETIS_WHISPER_MODELHF_TOKENZOTERO_API_KEYZOTERO_USER_IDZOTERO_GROUP_IDMETIS_NO_AMBIENT_MEMORYCLAUDECODECLAUDE_CODE_SESSION_IDMETIS_CLIENTMETIS_PKM_ROOTMETIS_DBMETIS_DOCKERSSL_CERT_FILEREQUESTS_CA_BUNDLEMETIS_NO_TOOL_GUARDTWILIO_AUTH_TOKENMETIS_LIBRARY_PATHFASTEMBED_CACHE_PATHWHISPER_MODELMISTRAL_API_KEYVOXTRAL_MODELMETIS_PORTMETIS_HOSTTool 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
231/231 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), +228 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
151/231 tools referenced in tests (65%)
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.
[](https://m8ven.ai/mcp/sveritg/metis)?variant=verified from the URL.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