Jarvis (Pavanchandar77/Jarvis) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 17 tools. No publisher has claimed this listing.

C
Warning
74/100

Jarvis

An open, voice-first agent platform combining conversational AI, long-term memory, computer control, and tool orchestration into a single personal assistant.

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

Pavanchandar77

Source: github_code

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
🚨
Code appears obfuscated
2 files are unreadable to a human reviewer. Cannot audit what they do.
🔐
You'll be asked for 8 credentials: IMAP_PASSWORD, HF_TOKEN, HUGGING_FACE_HUB_TOKEN, SPARK_ADMIN_PASSWORD, SPARK_INTERNAL_TOKEN, CARDDAV_PASSWORD, EMBEDDING_API_KEY, OPENAI_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// known CVEs in dependencies1 low

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

lowelectron@42.3.3GHSA-r4w5-6pfg-jxp5

Electron: ProtocolResponse.url reuses the default session cache instead of the registering session

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.
configAPP_BIND, APP_PORT, AUTH_ENABLED, DATABASE_URL, or a pre-seeded admin password.
configAPP_PORTAPP_BIND, , AUTH_ENABLED, DATABASE_URL, or a pre-seeded admin password.
configALLOWED_ORIGINS
configREQUEST_HARD_TIMEOUT
configAUTH_ENABLEDAPP_BIND, APP_PORT, , DATABASE_URL, or a pre-seeded admin password.
configLOCALHOST_BYPASSKeep =false outside local development.
configSPARK_PUBLIC_URL
configOLLAMA_BASE_URL
configOLLAMA_URL
configSPARK_INPROCESS_TASKS
configOAUTH_REDIRECT_BASE_URL
configAPP_PUBLIC_URL
configEMAIL_SOCKET_TIMEOUT
configSPARK_DOCUMENT_OWNER
configIMAP_HOST
configIMAP_PORT
configIMAP_USER
🔐 secretIMAP_PASSWORD
configIMAP_SSL
configIMAP_STARTTLS
configEMAIL_FROM
configARCHIVE_FOLDER
configTRASH_FOLDER
configSPARK_DISABLE_MCP
🔐 secretHF_TOKEN
🔐 secretHUGGING_FACE_HUB_TOKEN
configSPARK_ADMIN_USERis set) and prints a temporary password in the terminal.
🔐 secretSPARK_ADMIN_PASSWORD
configSPARK_SKIP_ADMIN_PROMPT
configSPARK_SKIP_RUN_HINT
🔐 secretSPARK_INTERNAL_TOKEN
configComSpec
configSECURE_COOKIESUse =true when Spark is served through HTTPS by a trusted reverse proxy or private access gateway.
configSPARK_FALLBACK_OWNER
configSPARK_SINGLE_USER
configCARDDAV_URL
configCARDDAV_USERNAME
🔐 secretCARDDAV_PASSWORD
configCARDDAV_BLOCK_PRIVATE_IPS
configHUGGINGFACE_HUB_CACHE
configHF_HOME
configDATA_DIR
configSPARK_IMAP_TIMEOUT_SECONDS
configSPARK_INPROCESS_POLLERS
configFASTEMBED_MODEL
configEMBEDDING_URLOpenAI-compatible embeddings endpoint
configEMBEDDING_MODEL
configEMBEDDING_BLOCK_PRIVATE_IPS
🔐 secretEMBEDDING_API_KEY
configIMAGE_BLOCK_PRIVATE_IPS
configREMINDER_WEBHOOK_BLOCK_PRIVATE_IPS
configHF_HUB_DISABLE_PROGRESS_BARS
configHF_HUB_DOWNLOAD_MAX_WORKERS
configTERM
configCOLORTERM
configSPARK_SCRIPT_HOST
configSPARK_ALLOW_PRIVATE_CALDAV
configCHATGPT_SUBSCRIPTION_BASE_URL
configCHROMADB_CONNECT_TIMEOUT
configCHROMADB_HOSTChromaDB host for vector memory. Docker overrides this to chromadb.
configCHROMADB_PORTChromaDB port for manual host runs. Docker overrides this to 8000.
configSPARK_DATA_DIR
configSPARK_MAIL_ATTACHMENTS_DIR
configFASTEMBED_CACHE_PATH
configLLM_HOSTYour LLM server (e.g. llm-host.local:8000)
configLLM_HOSTSComma-separated list for model discovery
🔐 secretOPENAI_API_KEYOptional OpenAI key. Prefer adding providers in the app unless pre-seeding.
configSEARXNG_INSTANCESearXNG URL. Docker overrides this to http://searxng:8080.
configCLEANUP_ENABLED
configCLEANUP_INTERVAL_HOURS
configSPARK_INTERNAL_BASE
Deployment configuration, supplied by whoever hosts the server. Users are not asked for these.
deploySMTP_HOST
deploySMTP_PORT
deploySMTP_SECURITY
deploySMTP_USER
deploySMTP_PASSWORD
deploySMTP_STARTTLS
deploySMTP_SSL
deployDATABASE_URL
// 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

17/17 tools missing one or more hints — list_email_accounts (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_emails (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); download_attachment (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +14 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

12/17 tools referenced in tests (71%)

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

Shell command execution

1 call in production code run through a shell (main.js:82)

Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.

Readable source code

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

Ship unminified, readable source.

Secrets not logged

1 secret value sent to print

Redact or omit secret values from log output.

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 6 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/pavanchandar77/jarvis?variant=verified)](https://m8ven.ai/mcp/pavanchandar77/jarvis)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 646209791d7596a81b31ec4fd95ce23244e938f4
code hash: 17e2697a3dcf5022317910728d7625b4fc7bed6322b5c5558fe3100f0a4c678c
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