StudioMeyer Personal Suite
NPM · MCP-PERSONAL-SUITE · SCANNED SEP 20
Local-first productivity: email, calendar, messaging, search, image gen. 49 tools. BYOK.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security81
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known high-severity CVE affects nodemailer 8.0.11, a direct dependency. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- Dependency health was assessed across the 329 of 330 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 90 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability79
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 5555 tokens (~113/item across 49 items; 49 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
- Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "suite_delete" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 50 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the StudioMeyer Personal Suite MCP server?
StudioMeyer Personal Suite runs locally as an npm package, launched with npx -y mcp-personal-suite. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · mcp-personal-suite
claude mcp add io-studiomeyer-personal-suite -- npx -y mcp-personal-suite
{
"mcpServers": {
"io-studiomeyer-personal-suite": {
"command": "npx",
"args": [
"-y",
"mcp-personal-suite"
]
}
}
} {
"servers": {
"io-studiomeyer-personal-suite": {
"command": "npx",
"args": [
"-y",
"mcp-personal-suite"
]
}
}
} codex mcp add io-studiomeyer-personal-suite -- npx -y mcp-personal-suite
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"io-studiomeyer-personal-suite": {
"type": "local",
"command": [
"npx",
"-y",
"mcp-personal-suite"
],
"enabled": true
}
}
} openclaw mcp add io-studiomeyer-personal-suite --command npx --arg -y --arg mcp-personal-suite
mcp_servers:
io-studiomeyer-personal-suite:
command: "npx"
args: ["-y", "mcp-personal-suite"] {
"McpServers": {
"io-studiomeyer-personal-suite": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"mcp-personal-suite"
]
}
}
} assistant mcp add io-studiomeyer-personal-suite -t stdio -c npx -a -y mcp-personal-suite
{
"mcpServers": {
"io-studiomeyer-personal-suite": {
"command": "npx",
"args": [
"-y",
"mcp-personal-suite"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 −3
- CVE-2026-92598 affects this package: high ▼ security
- CVE-2026-92595 affects this package: high ▼ security
- CVE-2026-92597 affects this package: high ▼ security
- CVE-2026-92596 affects this package: high ▼ security
- GHSA-cc9r-2j5m-2m83 no longer affects this package ▲ security
- GHSA-8m3c-c648-2xjj no longer affects this package ▲ security
- GHSA-wmmp-3585-3rmp no longer affects this package ▲ security
- GHSA-2x7j-588g-ccc2 no longer affects this package ▲ security
- Stability: pass → 0.80 functional
- 17 Sept 26 +1
- Stability: 0.97 → pass security
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 −4
- Stability: pass → 0.77 functional
- 9 Sept 26 +1
- GHSA-8m3c-c648-2xjj affects this package: high ▼ security
- GHSA-2x7j-588g-ccc2 affects this package: high ▼ security
- GHSA-cc9r-2j5m-2m83 affects this package: high ▼ security
- GHSA-wmmp-3585-3rmp affects this package: high ▼ security
- Stability: 0.97 → pass security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/mcp-personal-suite@0.5.6
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Vulnerabilities 5 findings
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-2x7j-588g-ccc2 | CVE-2026-92596 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-8m3c-c648-2xjj | CVE-2026-92595 | medium | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-cc9r-2j5m-2m83 | CVE-2026-92597 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-p6gq-j5cr-w38f | CVE-2026-82659 | high | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-wmmp-3585-3rmp | CVE-2026-92598 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N | yes |
Background: What a vulnerability scan can and cannot prove →
Dependencies 329 packages
| Packages resolved | 329 |
|---|---|
| Deprecated | 2 |
| Stale | 83 |
| Tree resolution | Partial |
The dependency tree was only partially resolved, so these counts may be incomplete.
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
calendar_check_availability ~111
Find free time slots on a given day. Useful for meeting planning — returns available slots with minimum duration.
| Name | Type | Req | Description |
|---|---|---|---|
| calendarId | string | – | Calendar ID (default: primary) |
| date | string | yes | Date to check (YYYY-MM-DD) |
| durationMinutes | number | – | Minimum slot duration in minutes (default: 30) |
| endHour | number | – | Business day end hour (default: 18) |
| startHour | number | – | Business day start hour (default: 9) |
No output schema declared.
No examples provided.
calendar_create_event ~249
Create a new calendar event. Supports title, start/end time, description, location, attendees, recurrence. Google Meet links available with Google provider. Automatically checks for conflicts before creating.
| Name | Type | Req | Description |
|---|---|---|---|
| addMeetLink | boolean | – | Auto-generate a Google Meet link for this event |
| attendees | array | – | Attendee email addresses |
| calendarId | string | – | Calendar ID (default: primary) |
| description | string | – | Event description |
| end | string | yes | End time (ISO 8601, e.g. 2026-03-18T11:00:00+01:00) |
| location | string | – | Event location |
| recurrence | string | – | Recurrence rule: "daily", "weekly", "monthly", "yearly", or custom RRULE string (e.g. "RRULE:FREQ=WEEKLY;BYDAY=MO") |
| start | string | yes | Start time (ISO 8601, e.g. 2026-03-18T10:00:00+01:00) |
| summary | string | yes | Event title |
| timeZone | string | – | Time zone (default: Europe/Berlin) |
No output schema declared.
No examples provided.
calendar_daily_summary ~65
Full day overview with AI context: all events, busy/free time analysis, first/last event times. Great for daily planning.
| Name | Type | Req | Description |
|---|---|---|---|
| calendarId | string | – | Calendar ID (default: primary) |
| date | string | – | Date (YYYY-MM-DD). Default: today |
No output schema declared.
No examples provided.
calendar_delete_event ~46
Delete a calendar event. Sends cancellation notice to attendees.
| Name | Type | Req | Description |
|---|---|---|---|
| calendarId | string | – | Calendar ID (default: primary) |
| eventId | string | yes | Event ID to delete |
No output schema declared.
No examples provided.
calendar_get_event ~50
Get a single calendar event with full details (description, attendees, location, etc.).
| Name | Type | Req | Description |
|---|---|---|---|
| calendarId | string | – | Calendar ID (default: primary) |
| eventId | string | yes | Event ID |
No output schema declared.
No examples provided.
calendar_list_calendars ~29
List all calendars accessible to the authenticated user with their IDs, names, and access roles.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
calendar_list_events ~139
List calendar events within a date range. Defaults to next 7 days. Supports calendar filtering.
| Name | Type | Req | Description |
|---|---|---|---|
| calendarId | string | – | Calendar ID (default: primary) |
| maxResults | number | – | Max events to return (default: 50) |
| query | string | – | Free-text filter on event fields |
| timeMax | string | – | End of time range (ISO 8601). Default: 7 days from now |
| timeMin | string | – | Start of time range (ISO 8601, e.g. 2026-03-17T00:00:00+01:00). Default: now |
No output schema declared.
No examples provided.
calendar_search_events ~67
Full-text search across event titles, descriptions, and locations. Searches 1 year back and forward.
| Name | Type | Req | Description |
|---|---|---|---|
| calendarId | string | – | Calendar ID (default: primary) |
| maxResults | number | – | Max results (default: 20) |
| query | string | yes | Search query |
No output schema declared.
No examples provided.
calendar_status ~42
Check calendar configuration status. Supports Google Calendar and CalDAV (iCloud, Nextcloud, mailbox.org, etc.). Call this first to see if calendar is set up.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
calendar_upcoming ~61
Quick view: next N events from now. Default: 5 events. Fast overview of what is coming up.
| Name | Type | Req | Description |
|---|---|---|---|
| calendarId | string | – | Calendar ID (default: primary) |
| count | number | – | Number of events (default: 5) |
No output schema declared.
No examples provided.
calendar_update_event ~136
Update an existing calendar event. Only provided fields will be changed.
| Name | Type | Req | Description |
|---|---|---|---|
| attendees | array | – | New attendee list (replaces existing) |
| calendarId | string | – | Calendar ID (default: primary) |
| description | string | – | New description |
| end | string | – | New end time (ISO 8601) |
| eventId | string | yes | Event ID to update |
| location | string | – | New location |
| start | string | – | New start time (ISO 8601) |
| summary | string | – | New title |
| timeZone | string | – | Time zone (default: Europe/Berlin) |
No output schema declared.
No examples provided.
channel_broadcast ~50
Send the same message to multiple platforms at once. Runs in parallel.
| Name | Type | Req | Description |
|---|---|---|---|
| targets | array | yes | Array of { platform, channelId } targets |
| text | string | yes | Message text to broadcast |
No output schema declared.
No examples provided.
channel_connect ~52
Connect to a messaging platform. Idempotent — safe to call if already connected. For WhatsApp: if QR scan is needed, returns the raw pairing URI string.
| Name | Type | Req | Description |
|---|---|---|---|
| platform | string | yes | Platform to connect |
No output schema declared.
No examples provided.
channel_disconnect ~29
Disconnect from a messaging platform. This stops receiving messages.
| Name | Type | Req | Description |
|---|---|---|---|
| platform | string | yes | Platform to disconnect |
No output schema declared.
No examples provided.
channel_history ~103
Get conversation history from a platform API. Unlike channel_receive (which reads the local buffer), this fetches older messages directly from the platform.
| Name | Type | Req | Description |
|---|---|---|---|
| before | number | – | Unix timestamp (ms) — messages before this time |
| channelId | string | yes | Channel/chat ID |
| limit | number | – | Max messages to return (default 50) |
| platform | string | yes | Platform to query |
| threadId | string | – | Thread ID for thread-specific history |
No output schema declared.
No examples provided.
channel_list ~32
List available channels/groups/conversations on connected platforms.
| Name | Type | Req | Description |
|---|---|---|---|
| platform | string | – | Filter by platform (omit for all) |
No output schema declared.
No examples provided.
channel_receive ~74
Get recently received messages from the in-memory buffer. For older messages, use channel_history instead.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max messages to return (default 20) |
| platform | string | – | Filter by platform (omit for all) |
| since | number | – | Unix timestamp (ms) — only messages after this time |
No output schema declared.
No examples provided.
channel_send ~89
Send a message to a specific platform and channel. Use channel_list to discover channel IDs first.
| Name | Type | Req | Description |
|---|---|---|---|
| channelId | string | yes | Channel/chat ID on the platform |
| platform | string | yes | Target platform |
| replyToId | string | – | Message ID to reply to |
| text | string | yes | Message text to send |
| threadId | string | – | Thread/topic ID for threaded replies |
No output schema declared.
No examples provided.
channel_status ~25
Health check for all configured messaging platforms. Call this first to see what is available.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
email_auth ~145
Generate OAuth2 authorization URL or exchange authorization code for tokens. Step 1: action="url" to get the auth URL. Step 2: action="exchange" with the code from the redirect.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | "url" to generate auth URL, "exchange" to trade code for tokens |
| clientId | string | yes | OAuth2 Client ID |
| clientSecret | string | – | OAuth2 Client Secret (required for exchange) |
| code | string | – | Authorization code (for exchange action) |
| provider | string | yes | OAuth2 provider |
| redirectUri | string | – | Redirect URI (default: http://localhost:3000/oauth/callback) |
No output schema declared.
No examples provided.
email_delete ~64
Delete an email (moves to Trash). Provider-aware: uses correct Trash folder for Gmail/Outlook/IMAP. Get UIDs from email_list.
| Name | Type | Req | Description |
|---|---|---|---|
| folder | string | – | Source folder (default: INBOX) |
| uid | number | yes | Email UID to delete |
No output schema declared.
No examples provided.
email_folders ~23
List all email folders/labels. Use folder names in other tools.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
email_forward ~92
Forward an email to another address. Includes original message as quoted text. Get UIDs from email_list.
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | – | Additional file attachments |
| folder | string | – | Folder of the original email (default: INBOX) |
| text | string | – | Optional message to prepend before the forwarded content |
| to | string | yes | Recipient email address |
| uid | number | yes | Email UID to forward |
No output schema declared.
No examples provided.
email_list ~81
List emails from a folder. Returns subject, from, date, flags. Use email_read for full body.
| Name | Type | Req | Description |
|---|---|---|---|
| folder | string | – | Folder name (default: INBOX) |
| limit | number | – | Max emails to return (default 20) |
| search | string | – | Search in subject and sender |
| unseen | boolean | – | Only unread emails |
No output schema declared.
No examples provided.
email_mark_read ~55
Mark an email as read (sets \Seen IMAP flag). Get UIDs from email_list.
| Name | Type | Req | Description |
|---|---|---|---|
| folder | string | – | Folder (default: INBOX) |
| uid | number | yes | Email UID to mark as read |
No output schema declared.
No examples provided.
email_mark_unread ~57
Mark an email as unread (removes \Seen IMAP flag). Get UIDs from email_list.
| Name | Type | Req | Description |
|---|---|---|---|
| folder | string | – | Folder (default: INBOX) |
| uid | number | yes | Email UID to mark as unread |
No output schema declared.
No examples provided.
email_move ~84
Move an email to a different folder (e.g., Archive, Trash, custom label). Use email_folders to discover available folders.
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | – | Source folder (default: INBOX) |
| to | string | yes | Destination folder (e.g., "[Gmail]/Trash", "Archive", "Important") |
| uid | number | yes | Email UID to move |
No output schema declared.
No examples provided.
email_read ~60
Read a single email by UID. Returns full body, headers, and attachment info. Get UIDs from email_list first.
| Name | Type | Req | Description |
|---|---|---|---|
| folder | string | – | Folder name (default: INBOX) |
| uid | number | yes | Email UID (from email_list) |
No output schema declared.
No examples provided.
email_reply ~103
Reply to an email by UID. Automatically sets In-Reply-To, References headers, and "Re:" subject prefix. Get UIDs from email_list.
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | – | File attachments |
| folder | string | – | Folder where the original email is (default: INBOX) |
| html | string | – | Reply HTML body |
| text | string | yes | Reply text |
| uid | number | yes | UID of the email to reply to (from email_list) |
No output schema declared.
No examples provided.
email_search ~67
Search emails by subject or sender. Uses IMAP SEARCH — works with any provider.
| Name | Type | Req | Description |
|---|---|---|---|
| folder | string | – | Folder to search (default: INBOX) |
| limit | number | – | Max results (default 20) |
| query | string | yes | Search term (matches subject and sender) |
No output schema declared.
No examples provided.
email_send ~136
Send an email. Supports Gmail OAuth2, Outlook OAuth2, and SMTP. Can include attachments (file paths on disk, up to 25MB total).
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | – | File attachments (paths on disk) |
| bcc | string | – | BCC recipients (comma-separated) |
| cc | string | – | CC recipients (comma-separated) |
| html | string | – | HTML body (optional, overrides text in rich clients) |
| replyTo | string | – | Reply-To address |
| subject | string | yes | Email subject |
| text | string | yes | Plain text body |
| to | string | yes | Recipient email address |
No output schema declared.
No examples provided.
email_setup ~217
Configure email provider. For Gmail/Outlook: provide clientId + clientSecret + refreshToken (from OAuth2 flow). For IMAP: provide host + user + password.
| Name | Type | Req | Description |
|---|---|---|---|
| clientId | string | – | OAuth2 Client ID (Gmail/Outlook) |
| clientSecret | string | – | OAuth2 Client Secret (Gmail/Outlook) |
| string | yes | Email address | |
| imapHost | string | – | IMAP host (for generic IMAP) |
| imapPass | string | – | IMAP password |
| imapPort | number | – | IMAP port (default 993) |
| imapUser | string | – | IMAP username |
| provider | string | yes | Email provider |
| refreshToken | string | – | OAuth2 Refresh Token (Gmail/Outlook) |
| smtpHost | string | – | SMTP host |
| smtpPass | string | – | SMTP password |
| smtpPort | number | – | SMTP port (default 587) |
| smtpUser | string | – | SMTP username |
No output schema declared.
No examples provided.
email_status ~24
Check email configuration status. Call this first to see if email is set up.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
email_threads ~53
Get email threads — groups related emails by References/In-Reply-To headers. Shows conversation flow.
| Name | Type | Req | Description |
|---|---|---|---|
| folder | string | – | Folder (default: INBOX) |
| limit | number | – | Max threads (default 10) |
No output schema declared.
No examples provided.
image_download ~103
Download a generated image to local filesystem. SSRF-protected: only HTTPS URLs from known image CDNs (OpenAI, fal.ai, Google) and local Gemini temp files are allowed. Default save location: ~/Downloads/ or /tmp/.
| Name | Type | Req | Description |
|---|---|---|---|
| filename | string | – | Custom filename (e.g. "my-logo.png"). Auto-generated if omitted. |
| url | string | yes | Image URL to download (from image_generate result) or local file path (Gemini) |
No output schema declared.
No examples provided.
image_edit ~103
Edit an existing image using AI. Currently only OpenAI (DALL-E 2) supports native image editing. For Flux/Gemini, use image_generate with a detailed prompt describing the desired output.
| Name | Type | Req | Description |
|---|---|---|---|
| imageUrl | string | yes | URL of the source image to edit (must be accessible via HTTPS) |
| prompt | string | yes | Description of the edit to make |
| provider | string | – | Provider to use. Currently only "openai" supports native editing. |
No output schema declared.
No examples provided.
image_generate ~219
Generate an image using AI. BYOK: configure your API keys via suite_setup(module: "image"). Providers: OpenAI DALL-E 3 (best for text/logos), Flux Pro (best for photorealistic), Gemini (versatile fallback). "auto" mode selects the best provider based on prompt content.
| Name | Type | Req | Description |
|---|---|---|---|
| prompt | string | yes | Image generation prompt. Be descriptive for best results. |
| provider | string | – | Provider to use. "auto" (default) picks based on prompt: OpenAI for text-heavy, Flux for photorealistic, Gemini as fallback. |
| quality | string | – | Image quality (OpenAI only). hd=finer detail but slower. Default: standard. |
| size | string | – | Image dimensions. square=1024x1024, landscape=1792x1024, portrait=1024x1792. Default: square. |
| style | string | – | Image style (OpenAI only). vivid=hyper-real/dramatic, natural=more subtle. Default: vivid. |
No output schema declared.
No examples provided.
search_code_context ~87
Find code examples, documentation, GitHub issues, StackOverflow threads via Exa. Best for "how do I do X in library Y" queries. Requires exaApiKey.
| Name | Type | Req | Description |
|---|---|---|---|
| maxResults | number | – | Max results (default: 10) |
| query | string | yes | Code/technical query (e.g. "how to stream tool_use responses with anthropic SDK") |
No output schema declared.
No examples provided.
search_deep ~89
Multi-round deep search. Generates multiple search angles from the query, searches in parallel, deduplicates results, and returns a comprehensive combined result set.
| Name | Type | Req | Description |
|---|---|---|---|
| maxResultsPerRound | number | – | Max results per search angle (default: 5) |
| maxRounds | number | – | Number of search angles to explore (default: 4) |
| query | string | yes | The main research query |
No output schema declared.
No examples provided.
search_images ~54
Search for images on the web. Uses SearXNG images category or Brave Image Search.
| Name | Type | Req | Description |
|---|---|---|---|
| maxResults | number | – | Max results to return (default: 10) |
| query | string | yes | Image search query |
No output schema declared.
No examples provided.
search_news ~94
Search for recent news articles. Default "auto" uses SearXNG → Brave. Pass engine="tavily" for AI-synthesized news with citations.
| Name | Type | Req | Description |
|---|---|---|---|
| engine | string | – | Provider override. "auto" (default) uses SearXNG→Brave fallback. |
| maxResults | number | – | Max results to return (default: 10) |
| query | string | yes | News search query |
No output schema declared.
No examples provided.
search_research ~173
Deep research search via Tavily — runs multiple sub-searches, scrapes top pages, returns a synthesized answer with citations. Slow (15-30s) but gives you a research-grade answer, not raw links. Requires tavilyApiKey.
| Name | Type | Req | Description |
|---|---|---|---|
| daysBack | number | – | For news topic: how many days back to search |
| depth | string | – | Search depth — advanced is slower but better (default: advanced) |
| excludeDomains | array | – | Exclude these domains |
| includeDomains | array | – | Only include these domains |
| maxResults | number | – | Max source results to cite (default: 5) |
| query | string | yes | Research question (e.g. "What are the current approaches to MCP authentication?") |
| topic | string | – | Content domain (default: general) |
No output schema declared.
No examples provided.
search_semantic ~150
Neural/semantic search via Exa — finds pages by concept similarity, not keywords. Best when you know WHAT you want but not exact keywords. Requires user to configure exaApiKey via suite_setup.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Restrict to a content category |
| excludeDomains | array | – | Exclude these domains |
| includeDomains | array | – | Only include these domains |
| includeText | boolean | – | Include 1000-char text excerpts (default: false, uses highlights only) |
| maxResults | number | – | Max results (default: 10) |
| query | string | yes | Conceptual search query (e.g. "approaches to reducing API costs in agent loops") |
No output schema declared.
No examples provided.
search_web ~97
Search the web. Default "auto" mode uses SearXNG → Brave fallback. Pass engine="exa"|"tavily" to use those providers for keyword-style web search.
| Name | Type | Req | Description |
|---|---|---|---|
| engine | string | – | Provider override. "auto" (default) uses SearXNG→Brave fallback. |
| maxResults | number | – | Max results to return (default: 10) |
| query | string | yes | Search query |
No output schema declared.
No examples provided.
suite_delete ~72
Delete your configuration and credentials. For GDPR/DSGVO compliance — removes all stored data. Specify a module or "all".
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true to confirm deletion. This action cannot be undone. |
| module | string | yes | Which module to delete, or "all" to remove everything |
No output schema declared.
No examples provided.
suite_guide ~61
Embedded documentation. Topics: quickstart, connect, email, calendar, messaging, search, image, oauth. Call this FIRST on a new connection to learn how the suite works.
| Name | Type | Req | Description |
|---|---|---|---|
| topic | string | – | Which topic to load. Default: quickstart |
No output schema declared.
No examples provided.
suite_health ~32
Run health checks on all configured modules. Tests actual connections (IMAP, Calendar API, messaging bots, search engines).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
suite_setup ~877
Configure a module. For email: just provide email_address + email_password — settings are auto-detected for 30K+ providers. For advanced/OAuth: use email_provider + manual fields. Supported modules: email, calendar, messaging, search.
| Name | Type | Req | Description |
|---|---|---|---|
| calendar_caldav_password | string | – | CalDAV password (or app-specific password for iCloud/Fastmail) |
| calendar_caldav_url | string | – | CalDAV server URL (e.g. https://caldav.icloud.com, https://cloud.example.com/remote.php/dav, https://dav.mailbox.org) |
| calendar_caldav_username | string | – | CalDAV username (usually your email address) |
| calendar_default_calendar_id | string | – | Default calendar ID. For Google: "primary". For CalDAV: the calendar URL from calendar_list_calendars. |
| calendar_oauth_access_token | string | – | Google OAuth2 access token (for Google provider) |
| calendar_oauth_client_id | string | – | Google OAuth2 client ID (for Google provider) |
| calendar_oauth_client_secret | string | – | Google OAuth2 client secret (for Google provider) |
| calendar_oauth_refresh_token | string | – | Google OAuth2 refresh token (for Google provider) |
| calendar_provider | string | – | Calendar provider: "google" (default) or "caldav" (iCloud, Nextcloud, mailbox.org, Posteo, Radicale, any CalDAV server) |
| channel_bot_token | string | – | Bot token (Telegram/Discord/Slack) |
| channel_default_id | string | – | Default channel/chat ID |
| channel_platform | string | – | Which messaging platform to configure |
| channel_signing_secret | string | – | Signing secret (Slack only) |
| email_address | string | – | Email address (e.g. info@meinefirma.de). Auto-detects IMAP/SMTP settings for 30K+ providers. Just provide this + email_password for quick setup. |
| email_from_address | string | – | Sender email address |
| email_from_name | string | – | Sender display name |
| email_imap_host | string | – | IMAP host (for IMAP provider) |
| email_imap_password | string | – | IMAP password |
| email_imap_port | number | – | IMAP port (default: 993) |
| email_imap_user | string | – | IMAP username |
| email_oauth_access_token | string | – | OAuth2 access token |
| email_oauth_client_id | string | – | OAuth2 client ID (for Gmail/Outlook) |
| email_oauth_client_secret | string | – | OAuth2 client secret (for Gmail/Outlook) |
| email_oauth_refresh_token | string | – | OAuth2 refresh token |
| email_password | string | – | Email password or app password. Used with auto-detected IMAP/SMTP settings. |
| email_provider | string | – | Email provider. Not needed if email_address is provided (auto-detected). Use for OAuth flows (gmail/outlook). |
| email_smtp_host | string | – | SMTP host (for IMAP provider) |
| email_smtp_port | number | – | SMTP port (default: 587) |
| image_flux_api_key | string | – | fal.ai API key for Flux Pro (best for photorealistic). ~$0.04/image. |
| image_gemini_api_key | string | – | Google AI API key for Gemini / Imagen 3 (versatile fallback). ~$0.04-0.30/image. |
| image_openai_api_key | string | – | OpenAI API key for DALL-E 3 image generation (best for text/logos). ~$0.04-0.12/image. |
| module | string | yes | Which module to configure |
| search_brave_api_key | string | – | Brave Search API key (2000 queries/month free) |
| search_exa_api_key | string | – | Exa API key — enables search_semantic + search_code_context (see exa.ai pricing) |
| search_searxng_url | string | – | SearXNG instance URL (self-hosted, privacy-focused) |
| search_tavily_api_key | string | – | Tavily API key — enables search_research (1000 free credits/month, advanced=2 credits/query) |
No output schema declared.
No examples provided.
suite_status ~27
Show which modules are configured and ready to use. Call this first to understand what is available.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
What is the StudioMeyer Personal Suite MCP server?
StudioMeyer Personal Suite is an MCP server listed in the public MCP registry as io.studiomeyer/personal-suite. Local-first productivity: email, calendar, messaging, search, image gen. 49 tools. BYOK. This page covers its npm package (mcp-personal-suite).
Is the StudioMeyer Personal Suite MCP server safe to use?
StudioMeyer Personal Suite scores 77 out of 100 on VerifyMCP. We recorded 5 known advisories against it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the StudioMeyer Personal Suite MCP server expose?
StudioMeyer Personal Suite exposes 49 tools: suite_guide, suite_status, suite_setup, suite_health, suite_delete, and 44 more. Their descriptions and schemas cost roughly 4,948 tokens of context every time the server is loaded.
Is the StudioMeyer Personal Suite MCP server still maintained?
StudioMeyer Personal Suite is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the StudioMeyer Personal Suite MCP server under?
StudioMeyer Personal Suite declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.