com.local-mcp/local-mcp
REMOTE · LOCAL-MCP.COM · 2 COMPONENTS · SCANNED SEP 20
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Available components
Recent critical change
Authorization (16 Sept 2026). See the changelog before you install this server.
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security97
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability0
- Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http. See how to fix → View diagnostics → Unverified
Schema Quality & AI Usability0
- Schema blocked by authentication: the endpoint requires auth we don't have to read it. See how to fix → Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Tool Safety0
- Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Capabilities0
- Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. See how to fix → Unverified
Unverified: 6 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm. Claim this server and supply a read-only token to verify it and lift the score.
How do I install the com.local-mcp/local-mcp server?
com.local-mcp/local-mcp is a hosted endpoint at https://local-mcp.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · local-mcp.com
claude mcp add --transport http com-local-mcp-local-mcp 'https://local-mcp.com/mcp'
{
"mcpServers": {
"com-local-mcp-local-mcp": {
"url": "https://local-mcp.com/mcp"
}
}
} {
"servers": {
"com-local-mcp-local-mcp": {
"type": "http",
"url": "https://local-mcp.com/mcp"
}
}
} [mcp_servers.com-local-mcp-local-mcp] url = "https://local-mcp.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-local-mcp-local-mcp": {
"type": "remote",
"url": "https://local-mcp.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-local-mcp-local-mcp --url 'https://local-mcp.com/mcp' --transport streamable-http
mcp_servers:
com-local-mcp-local-mcp:
url: "https://local-mcp.com/mcp" {
"McpServers": {
"com-local-mcp-local-mcp": {
"Transport": "http",
"Url": "https://local-mcp.com/mcp"
}
}
} assistant mcp add com-local-mcp-local-mcp -t streamable-http -u 'https://local-mcp.com/mcp'
{
"mcpServers": {
"com-local-mcp-local-mcp": {
"type": "http",
"url": "https://local-mcp.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 17 Sept 26 −41
- Endpoint reachability: reachable → behind authorisation ▼ security
- Stability: fail → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Transport: pass → unverified ▼ security
- Authorization: fail → pass ▲ security
- First check of Authorization: partial security
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 75 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- 16 Sept 26 0
- Authorization: unverified → fail ▼ critical
- 15 Sept 26 0
- Authorization: fail → unverified ▼ security
- 13 Sept 26 0
- Authorization: unverified → fail ▼ critical
- 12 Sept 26 0
- Authorization: fail → unverified ▼ security
- Tool “run_diagnostics” rewrote its description, which is the text the model reads security
- Tool “configure_clients” rewrote its description, which is the text the model reads security
- New tool “lmcp_doctor” functional
- “configure_clients” reworded the description of “client” cosmetic
- “run_diagnostics” reworded the description of “focus” cosmetic
- 11 Sept 26 0
- Tool “finder_list” rewrote its description, which is the text the model reads security
- Tool “file_write” rewrote its description, which is the text the model reads security
- Tool “file_read” rewrote its description, which is the text the model reads security
- Tool “finder_search” rewrote its description, which is the text the model reads security
- 8 Sept 26 +29
- Authorization: unverified → fail ▼ critical
- Injection markers: unverified → pass ▲ security
- Tool “excel_write_cell” rewrote its description, which is the text the model reads security
- Tool “excel_create” rewrote its description, which is the text the model reads security
- Tool “reply_email” rewrote its description, which is the text the model reads security
- Schema quality: unverified → fail ▼ functional
- Schema quality: 223 → 127 ▲ functional
- Schema quality: 223 → 125 ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Schema quality: good → excellent functional
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- “excel_read” added an optional parameter “force_download” cosmetic
- “pdf_read” added an optional parameter “force_download” cosmetic
- “ppt_read” added an optional parameter “force_download” cosmetic
- “reply_email” added an optional parameter “save_as_draft” cosmetic
- “word_read” added an optional parameter “force_download” cosmetic
- “reply_email” reworded the description of “confirm” cosmetic
- 7 Sept 26 −27
- Tool safety: pass → unverified ▼ security
- Authorization: fail → unverified ▼ security
- Schema quality: 125 → 223 ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: fail → unverified ▼ functional
- MCP protocol: fail → pass ▲ functional
- Schema quality: excellent → good functional
- Server version: e57f9d66-d10 → c2609ba9-0f4 functional
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
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 · Probed https://local-mcp.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=local-mcp.com | CN=YE1,O=Let's Encrypt,C=US | 16 Sept 2026 | 15 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 611e3e1599b7d3d83dea72ee1855d00484e |
| SANs: *.local-mcp.com, local-mcp.com | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of local-mcp.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| local-mcp.com. | present | 2371 | 13 | Verified |
| local-mcp.com. | Verified address RRset verified with the apex keys |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On connection |
| HTTP status | 401 |
WWW-Authenticate challenge Bearer realm="OAuth", resource_metadata="https://local-mcp.com/.well-known/oauth-protected-resource/mcp", error="invalid_token", error_description="Missing or invalid access token"
Bearer realm="OAuth", resource_metadata="https://local-mcp.com/.well-known/oauth-protected-resource/mcp", error="invalid_token", error_description="Missing or invalid access token" | Header | Value |
|---|---|
| strict-transport-security | max-age=15552000 |
| content-security-policy | default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' static.cloudflareinsights.com plausible.io https://*.clarity.ms https://www.googletagmanager.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https: blob:; font-src 'self' data:; connect-src 'self' https://www.local-mcp.com https://office-mcp-production.up.railway.app https://plausible.io https://static.cloudflareinsights.com https://cloudflareinsights.com https://api.npmjs.org https://*.clarity.ms https://*.google-analytics.com https://*.analytics.google.com https://www.googletagmanager.com https://cdn.growthbook.io; frame-ancestors 'none'; base-uri 'self'; form-action 'self' https://www.local-mcp.com https://chatgpt.com https://claude.ai |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=(), payment=() |
| www-authenticate | Bearer realm="OAuth", resource_metadata="https://local-mcp.com/.well-known/oauth-protected-resource/mcp", error="invalid_token", error_description="Missing or invalid access token" |
Protected resource metadata
| Document | https://local-mcp.com/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://local-mcp.com/mcp |
| Authorisation server | https://www.local-mcp.com |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://local-mcp.com/mcp | Auth required | 401 | |
| http (plaintext) | http://local-mcp.com/mcp | HTTPS enforced | 301 | https://local-mcp.com/mcp |
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 →
complete_omnifocus_task Complete OmniFocus Task ~93
Marks an OmniFocus task as complete by task ID or name. Requires confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true to complete; called without it, returns a preview. |
| task_id | string | – | Exact task id from list_omnifocus_tasks (preferred). Provide this OR task_name. |
| task_name | string | – | Task title to match when you don't have the id. |
| Name | Type | Req | Description |
|---|---|---|---|
| completed | boolean | – | – |
| id | string | – | – |
| name | string | – | – |
No examples provided.
complete_reminder Complete Reminder ~62
Marks a reminder complete in Apple Reminders (Reminders.app). Requires confirm=true. For Microsoft To Do use todo_complete_task instead.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true to complete |
| reminder_id | string | yes | Reminder ID from list_reminders |
Structured output declared, but exposes no named fields.
No examples provided.
configure_clients Configure Clients ~265
Adds Local MCP to the config of the MCP-capable AI apps installed on this Mac, from LMCP's client catalog (Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, Zed, Codex / ChatGPT desktop, Jan, LM Studio, Warp, Antigravity, Cline, Roo and more) — no manual JSON editing. Read-only PREVIEW unless confirm:true. Optionally pass a single `client` id. Reports per client whether it was set up, was already set up, can't be set up automatically (and why), or isn't installed, plus the step the user must take for the change to apply (restart the app, or open a new session). Pair with list_missing_permissions for fully agent-driven setup.
| Name | Type | Req | Description |
|---|---|---|---|
| client | string | – | Optional: configure only this client. One of: claude-desktop, claude-code, cursor, windsurf, vscode, zed, lmstudio, warp, antigravity, cline, roo, codex, jan, opencode, goose, hermes, raycast, msty,… |
| confirm | boolean | – | Must be true to write the config. Without it, returns a preview of what would change. |
Structured output declared, but exposes no named fields.
No examples provided.
connect_m365_account Connect Microsoft 365 Account ~43
Connect your Microsoft 365 account. Call once to get a login code, then call again after you've authenticated at microsoft.com/devicelogin to confirm the connection.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| message | string | – | – |
| ok | boolean | – | – |
No examples provided.
connect_todoist Connect Todoist ~53
Connect Todoist. For security your API token is entered directly in Local MCP's own settings window — never passed through the AI. Call this to get the instructions, or to check whether Todoist is already connected.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| message | string | yes | – |
| ok | boolean | yes | – |
No examples provided.
create_calendar_event Create Calendar Event ~473
Creates an event in the Mac's Calendar app (Calendar.app). Requires title, start_date, end_date. Optionally invite attendees by email (CalDAV/Exchange calendars only), or make it a repeating event with `recurrence` (daily/weekly/monthly/yearly). For Microsoft 365 use m365_create_event instead.
| Name | Type | Req | Description |
|---|---|---|---|
| attendees | array | – | List of email addresses to invite (optional, CalDAV/Exchange only) |
| calendar | string | – | Calendar name to match (optional, alternative to calendar_id) |
| calendar_id | string | – | Calendar UUID from list_calendar_names (optional, defaults to default calendar) |
| confirm | boolean | – | Must be true to create the event |
| end_date | string | yes | ISO 8601 date or datetime, same timezone rules as start_date. For an all-day event pass a bare date (end is inclusive: same date as start = a one-day all-day event; a later date spans through that da… |
| location | string | – | Location (optional) |
| notes | string | – | Event notes (optional) |
| recurrence | string | – | Make it a repeating event: 'daily', 'weekly', 'monthly', or 'yearly' (optional; omit for a one-time event). |
| recurrence_count | integer | – | Total number of occurrences (optional). Mutually exclusive with recurrence_until; if neither is given the event repeats indefinitely. |
| recurrence_interval | integer | – | Repeat every N periods (optional, default 1 — e.g. recurrence='weekly' + recurrence_interval=2 = every 2 weeks). |
| recurrence_until | string | – | ISO 8601 date the repetition stops on (optional; takes precedence over recurrence_count). |
| start_date | string | yes | ISO 8601 date or datetime. With a time (2026-06-27T09:00:00) the event is timed; a time with NO timezone is read in the Mac's LOCAL zone, append Z or an offset (2026-06-27T09:00:00Z, or +02:00) to pi… |
| title | string | yes | Event title |
| Name | Type | Req | Description |
|---|---|---|---|
| attendees_note | string | – | – |
| attendees_requested | array | – | – |
| created | boolean | – | – |
| end | string | – | – |
| id | string | – | – |
| recurrence | string | – | Present when the event repeats (human-readable summary) |
| start | string | – | – |
| title | string | – | – |
No examples provided.
create_draft Create Draft ~566
Saves an email to the Mail.app Drafts folder for the user to review and send manually — it never sends. Compose a new draft with `to`/`subject` and `body` or `html_body`, or save a native reply with `reply_to_message_id`, `reply_all`, and `body` or `html_body`; the response names the Drafts mailbox and subject. A reply draft's response includes `threaded`: true means the saved draft was read back and its headers reference the source message (it will appear inside the conversation); false means it saved WITHOUT threading headers (relay the warning to the user); "unconfirmed" means it could not be read back in time (e.g. Exchange sync lag). On a multi-account Mac, pass `account` (an account name from list_email_accounts) or `from` (a sender address) to place the draft in that account's Drafts; otherwise it lands in the default account. Attach files by passing `attachments` (comma-separated absolute file paths, e.g. a PDF quote) — they are attached to the saved draft. Use this for the cautious user who wants AI-composed mail but insists on sending it themselves. Requires confirm=true to actually save it — without it, returns a preview without touching Mail.app.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Account name (from list_email_accounts) whose Drafts folder receives the draft. Alternative to `from`. |
| attachments | string | – | Files to attach, as comma-separated absolute paths (e.g. a PDF). |
| bcc | string | – | BCC address(es), comma-separated. |
| body | string | – | Plain-text body of the draft. |
| cc | string | – | CC address(es), comma-separated. |
| confirm | boolean | – | Must be true to actually save the draft. Without it, returns a preview of the recipient/sender, subject, and that the body will be saved. |
| from | string | – | Sender address — on a multi-account Mac, selects which account's Drafts to use. Alternative to `account`. |
| html_body | string | – | HTML body of the draft. Takes precedence over `body` when both are given. |
| reply_all | boolean | – | For a reply draft, include all original recipients (reply-all) instead of just the sender. |
| reply_to_message_id | string | – | Message id (from list_emails/search_emails) to draft a reply to, instead of a new message. |
| subject | string | – | Subject line for a new draft. Ignored for reply drafts (they inherit the original subject). |
| to | string | – | Recipient address(es) for a new draft, comma-separated. Omit for a reply draft (uses reply_to_message_id). |
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | – |
| attachments | array | – | – |
| attachments_failed | array | – | – |
| from | string | – | – |
| kind | string | – | – |
| mailbox | string | – | – |
| reply_to_message_id | string | – | – |
| saved_draft | boolean | – | – |
| subject | string | – | – |
| to | string | – | – |
No examples provided.
create_email_folder Create Email Folder ~53
Creates a new mailbox folder in Mail.app.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Account name (optional, uses default) |
| confirm | boolean | – | Must be true to create |
| name | string | yes | Folder name |
| Name | Type | Req | Description |
|---|---|---|---|
| created | boolean | yes | – |
| name | string | yes | – |
No examples provided.
create_note Create Note ~83
Creates a new note in Apple Notes. The body accepts Markdown (headings, bold/italic, bullet/numbered lists, links, inline code) — it's converted to Apple Notes' native formatting. Requires confirm=true to execute.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | yes | – |
| confirm | boolean | – | – |
| folder | string | – | – |
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| created | boolean | – | – |
| id | string | – | – |
| name | string | – | – |
No examples provided.
create_omnifocus_task Create OmniFocus Task ~147
Creates a new task in OmniFocus. Requires confirm=true to execute.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true to create; called without it, returns a preview. |
| defer_date | string | – | Defer/start date, ISO 8601 — the task stays hidden until then. |
| due_date | string | – | Due date, ISO 8601 (YYYY-MM-DD or full timestamp). |
| flagged | boolean | – | Create the task flagged. |
| name | string | yes | The task title. |
| note | string | – | Longer note/body for the task. |
| project | string | – | Project to file the task under (name). Omit for the inbox. |
| Name | Type | Req | Description |
|---|---|---|---|
| created | boolean | – | – |
| id | string | – | – |
| name | string | – | – |
No examples provided.
create_referral_invites Create Referral Invites ~132
Records referral invites for the colleagues a user chose to invite and returns a unique referral link per person, so the user can later see who installed or activated LMCP. It does not send anything itself — each returned link can be included in an email or message to that person. `lang` records the language the invite is written in (e.g. "es", "en").
| Name | Type | Req | Description |
|---|---|---|---|
| lang | string | – | ISO language of the invite you're writing (the user's conversation language, e.g. 'es', 'en'). Defaults to the Mac's language. |
| recipients | array | yes | The picked recipients. |
| Name | Type | Req | Description |
|---|---|---|---|
| invites | array | – | – |
| next | string | – | – |
No examples provided.
create_reminder Create Reminder ~94
Creates a reminder in Reminders.app.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true to create |
| due_date | string | – | ISO 8601 date (optional) |
| list_name | string | – | Reminder list name (optional) |
| notes | string | – | Notes (optional) |
| priority | string | – | Priority: none | low | medium | high (optional) |
| title | string | yes | Reminder title |
Structured output declared, but exposes no named fields.
No examples provided.
create_reminder_list Create Reminder List ~52
Creates a new list in Apple Reminders (Reminders.app). Requires confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true to create |
| name | string | yes | Name for the new reminder list |
Structured output declared, but exposes no named fields.
No examples provided.
daily_brief Daily Brief ~125
Returns a single morning briefing combining today's calendar events, overdue and due-today reminders, unread inbox email count + subjects, and — when a location is provided — today's weather. Perfect for starting each day: one call gives you everything on your plate.
| Name | Type | Req | Description |
|---|---|---|---|
| include_emails | boolean | – | Include unread email summary from Mail.app (default true, skipped gracefully if Mail is not running) |
| location | string | – | Optional city name or 'lat,lon' to include today's weather in the brief (e.g. 'London', 'San Francisco'). Omitted if not provided. |
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | yes | Today's date (YYYY-MM-DD). |
| emails | object|null | yes | Unread email summary (unread_count + recent_unread), or {skipped} / {error}, or null when not requested. |
| events | array | yes | Today's calendar events. |
| incomplete | array | – | Sections that could NOT be read this time (each step has its own ceiling). An empty/absent list means every section was actually read; a section named here means its data is missing, NOT that it is e… |
| note | string | – | Onboarding enrichment shown when nothing is scheduled. |
| reminders | array | yes | Reminders due today or overdue. |
| weather | object | – | Today's weather (current conditions + forecast), only present when a location was provided. |
No examples provided.
delete_calendar_event Delete Calendar Event ~136
Deletes an event from the Mac's Calendar app (Calendar.app) by ID. Requires confirm=true. For a repeating event, pass span='future' to delete the whole series (this and all following occurrences); the default deletes only the single occurrence. For Microsoft 365 use m365_delete_event instead.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true to delete |
| event_id | string | yes | Event identifier from list_calendar_events |
| span | string | – | For a recurring event: 'this' (default — only this occurrence) or 'future' (this and all following occurrences). Ignored for non-recurring events. |
Structured output declared, but exposes no named fields.
No examples provided.
delete_note Delete Note ~175
Deletes a note from Apple Notes, by ID or exact title. Like deleting it in the app, the note goes to "Recently Deleted" and Apple purges it after 30 days — the user can still recover it there. Requires confirm=true. The result is VERIFIED: the tool re-reads the note after deleting and reports the deletion as unverified if it is still where it was, so a success here means the note is really gone from list_notes/search_notes/read_note. Find note_id with list_notes or search_notes.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | – |
| note_id | string | – | The note's id, as list_notes/search_notes report it. |
| note_name | string | – | Exact title, when you don't have the id. If several notes share it, the first match is deleted — prefer note_id. |
| Name | Type | Req | Description |
|---|---|---|---|
| deleted | boolean | – | True only when the deletion was VERIFIED by re-reading the note |
| folder_after | string | – | Where it ended up (present when it moved instead of vanishing) |
| folder_before | string | – | The folder the note was in before deleting |
| id | string | – | – |
| in_trash | boolean | – | The note moved to Recently Deleted (Apple purges it after 30 days) rather than vanishing outright |
| name | string | – | – |
| next_actions | array | – | – |
| verified | boolean | – | The note was re-read after deleting and is no longer where it was |
No examples provided.
delete_reminder Delete Reminder ~65
Permanently deletes a reminder in Apple Reminders (Reminders.app) by ID. Get the reminder_id from list_reminders. Requires confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true to delete |
| reminder_id | string | yes | Reminder identifier from list_reminders |
Structured output declared, but exposes no named fields.
No examples provided.
delete_reminder_folder Delete Reminder Folder ~93
Deletes an Apple Reminders list AND all reminders inside it — cannot be undone. Pass the list name (or list_id from get_reminder_folders). Requires confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true to delete |
| list_id | string | – | List identifier from get_reminder_folders (alternative to name) |
| name | string | – | List name to delete (or pass list_id) |
Structured output declared, but exposes no named fields.
No examples provided.
disconnect_m365_account Disconnect Microsoft 365 Account ~21
Disconnect your Microsoft 365 account and remove stored tokens.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| message | string | – | – |
| ok | boolean | – | – |
No examples provided.
disconnect_todoist Disconnect Todoist ~20
Disconnect Todoist and remove the stored API token.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| message | string | yes | – |
| ok | boolean | yes | – |
No examples provided.
excel_create Excel Create ~146
Creates a new Excel spreadsheet (.xlsx file) with headers and optional data rows. JSON numbers (integers and decimals) are written as numbers, so SUM() and charts work on them; JSON strings always stay text even when they look numeric ("007", "1e3", or " 42"), as do integer values longer than 10 digits because they are identifiers like a CUIT, CBU or phone number rather than quantities.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true to create |
| headers | array | yes | Column headers |
| path | string | yes | Output path for the .xlsx file |
| rows | array | – | Array of row arrays with data (optional) |
| Name | Type | Req | Description |
|---|---|---|---|
| created | boolean | yes | True when the file was created |
| headers | array | yes | Column headers written |
| path | string | yes | Path of the created .xlsx file |
| rows | integer | yes | Number of data rows written |
No examples provided.
excel_read Excel Read ~173
Reads data from an Excel spreadsheet (.xlsx file). Returns the first row as `headers` and the remaining data rows as `rows` — mirroring excel_create's `headers`/`rows` params, so a read→create round-trip needs no manual row-0 handling.
| Name | Type | Req | Description |
|---|---|---|---|
| force_download | boolean | – | If the file is stored in the cloud and evicted from this Mac (dataless), request the download and wait for it instead of failing. Off by default: a download can take minutes and use metered data, so… |
| max_rows | integer | – | Max rows to return (default 100) |
| path | string | yes | Absolute path to the .xlsx file |
| sheet_name | string | – | Sheet name to read (optional, reads first sheet) |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | Number of DATA rows returned (excludes the header row) |
| headers | array | yes | The first row, as column headers — mirrors excel_create's `headers` param |
| rows | array | yes | Data rows AFTER the header row; numeric cells are numbers and text cells are strings — feeds straight into excel_create's `rows` |
| sheet | string | yes | Name of the sheet that was read |
| sheets | array | yes | All sheet names in the workbook |
| sparse_cells | array | – | Present only when the sheet has cells far outside the table (beyond column 64): each is {row, col, value} with REAL 1-based indices. Kept out of `rows` so one stray cell can't pad every row — but nev… |
No examples provided.
excel_write_cell Excel Write Cell ~202
Writes a value to a specific cell in an Excel file. Numeric-looking value strings are written as numbers only when they round-trip exactly; otherwise they stay text. Address the cell either with `cell` in A1 notation (e.g. "B2") or with `row`+`column` as 1-based integers.
| Name | Type | Req | Description |
|---|---|---|---|
| cell | string | – | Cell in A1 notation, e.g. "B2" (alternative to row+column) |
| column | integer | – | Column number (1-based) — use with `row`, or use `cell` instead |
| confirm | boolean | – | Must be true to modify |
| path | string | yes | Path to the .xlsx file |
| row | integer | – | Row number (1-based) — use with `column`, or use `cell` instead |
| sheet_name | string | – | Sheet name (default: first sheet) |
| value | string | yes | Value to write |
| Name | Type | Req | Description |
|---|---|---|---|
| col | integer | yes | Column that was written (1-based) |
| row | integer | yes | Row that was written (1-based) |
| value | string | yes | Value written to the cell |
| written | boolean | yes | True when the cell was written |
No examples provided.
file_list File List ~96
Lists files and folders in a local directory. Defaults to the user's home directory. Returns name, path, type (file/directory), size, and modification date for each item. Sorted: directories first, then files, both alphabetically.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | – | Absolute path to the directory. Defaults to the home directory (~) if omitted. |
| show_hidden | boolean | – | Include hidden files (starting with '.'). Default false. |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | – |
| dirs | integer | – | – |
| files | integer | – | – |
| items | array | – | – |
| path | string | – | – |
No examples provided.
file_read File Read ~242
Reads a plain text file from the local filesystem by its absolute path — the primary, default tool for reading a local text file (use this unless the file is a PDF, Word, Excel, or PowerPoint document, which have their own readers). Reads anywhere on this Mac — home, external disks, cloud drives, /tmp — with one exception: credential and identity locations (keychains, ~/.ssh, ~/.aws, browser logins, another user's home, Time Machine backups) are never read. Supports .txt, .md, .csv, .json, .xml, .log, .yaml, .toml and common code file types; auto-detects UTF-8 with Latin-1/Windows-1252 fallback. For files in OneDrive use onedrive_read_file, in Google Drive gdrive_read_file; for PDFs pdf_read, Word word_read, Excel excel_read.
| Name | Type | Req | Description |
|---|---|---|---|
| max_bytes | integer | – | Maximum bytes to read (default 1 MB, max 10 MB) |
| offset | integer | – | Start reading at this byte offset (default 0) |
| path | string | yes | Absolute path to the file |
| Name | Type | Req | Description |
|---|---|---|---|
| bytes | integer | yes | Total file size in bytes |
| content | string | yes | Decoded file text content |
| encoding | string | – | Encoding used to decode (utf8 | cp1252 | latin1) |
| offset | integer | – | Byte offset the read started at |
| path | string | yes | Resolved absolute path of the file |
| truncated | boolean | – | True if more content remains beyond what was returned |
No examples provided.
file_search File Search ~134
Searches for files and folders by name (case-insensitive, partial match) starting from a root directory. Defaults to the home directory. Returns matching items with path, type, and size.
| Name | Type | Req | Description |
|---|---|---|---|
| file_type | string | – | Filter by extension, e.g. 'pdf', 'docx', 'xlsx'. Omit for all types. |
| max_results | integer | – | Maximum number of results to return. Default 50, max 200. |
| query | string | yes | Filename pattern to search for (partial, case-insensitive) |
| root | string | – | Root directory to search from. Defaults to home directory (~). |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | – |
| query | string | – | – |
| results | array | – | – |
| root | string | – | – |
No examples provided.
file_write File Write ~200
Writes text to a local file — create, overwrite, or append. For .txt/.md/.csv/.json/.log and any plain-text or code file. (For Word use word_create, Excel excel_create, PowerPoint ppt_create.) Writes anywhere on this Mac, with two exceptions: files your machine runs by itself (shell startup files, LaunchAgents, git hooks, AI-client configs) and credential locations are never written. Overwriting an existing file requires confirm=true (the first call returns a preview instead); append=true adds to the end and never needs confirm. Missing parent folders are created.
| Name | Type | Req | Description |
|---|---|---|---|
| append | boolean | – | Append to the end instead of overwriting (default false) |
| confirm | boolean | – | Required (true) to OVERWRITE an existing file. Not needed to create a new file or to append. |
| content | string | yes | Text content to write |
| path | string | yes | Absolute path to the file to write |
Structured output declared, but exposes no named fields.
No examples provided.
finder_list Finder List ~81
Lists files and folders in a directory (Spotlight-free). Lists any folder on this Mac. Credential and identity locations (keychains, ~/.ssh, browser login stores, another user's home, Time Machine backups) are refused.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max items (default 100) |
| path | string | – | Absolute path to list (default: ~) |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | Items returned in this response. |
| items | array | – | – |
| note | string | – | – |
| path | string | – | – |
| total | integer | – | Total items when the listing was truncated. |
| truncated | boolean | – | – |
No examples provided.
finder_search Finder Search ~83
Searches for files by name anywhere on this Mac (uses mdfind/Spotlight); pass path= to scope it to one folder. Credential and identity locations are refused.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max results (default 50) |
| path | string | – | Limit search to this directory (optional) |
| query | string | yes | Filename or content to search for |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | – |
| query | string | yes | – |
| results | array | yes | – |
No examples provided.
gdrive_delete_file Gdrive Delete File ~136
Deletes a file or an empty folder from the synced Google Drive folder — Google Drive for Desktop syncs the deletion to the cloud (the item lands in Drive's trash). Deleting a .gdoc/.gsheet/.gslides pointer removes the real Google Doc/Sheet/Slides. Never deletes a folder that still has contents. First call returns a preview of what was actually found at that path; pass confirm=true to delete.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true to actually delete |
| path | string | yes | Absolute path under a Google Drive mount (use gdrive_root / gdrive_list_files to get one) |
| Name | Type | Req | Description |
|---|---|---|---|
| deleted | boolean | yes | True only when the folder listing no longer shows the item |
| path | string | yes | – |
| type | string | yes | What was deleted: file, folder, or google_doc_pointer |
No examples provided.
gdrive_file_info Gdrive File Info ~50
Metadata for a file/folder in the synced Google Drive: size, dates, type. Cheaper than listing the whole directory.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | Absolute path to the file or folder |
| Name | Type | Req | Description |
|---|---|---|---|
| created | string | – | – |
| modified | string | – | – |
| name | string | – | – |
| path | string | – | – |
| size | integer | – | – |
| size_human | string | – | – |
| type | string | – | – |
No examples provided.
gdrive_list_files Gdrive List Files ~96
Lists files and folders in a Google Drive path (the locally-synced folder). Use gdrive_root first for valid roots — 'My Drive' and 'Shared drives' live inside each mount. Returns up to `limit` entries (default 1000).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max entries (default 1000, max 5000) |
| path | string | yes | Absolute path to the Google Drive folder |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | – |
| items | array | – | – |
| note | string | – | – |
| total | integer | – | – |
| truncated | boolean | – | – |
No examples provided.
gdrive_read_file Gdrive Read File ~175
Reads a text file from the synced Google Drive folder (.txt, .md, .csv, .json, code files...). Note: native Google Docs/Sheets/Slides sync as .gdoc/.gsheet pointers, not real files — export them from Drive or read Office/PDF copies instead. Auto-detects UTF-8 with Latin-1/CP1252 fallback. For files outside Google Drive, use file_read.
| Name | Type | Req | Description |
|---|---|---|---|
| encoding | string | – | 'auto' (default), 'utf8', 'latin1', 'cp1252', 'ascii', 'utf16' |
| max_bytes | integer | – | Max bytes (default 1MB, cap 10MB) |
| offset | integer | – | Start byte offset (default 0) |
| path | string | yes | Absolute path to the file |
| Name | Type | Req | Description |
|---|---|---|---|
| bytes | integer | yes | Total file size in bytes |
| bytes_read | integer | – | Number of bytes read in this slice |
| content | string | yes | Decoded file text content |
| encoding | string | – | Encoding used to decode (utf8 | cp1252 | latin1 | ascii | utf16) |
| offset | integer | – | Byte offset the read started at |
| path | string | yes | Absolute path of the file |
| truncated | boolean | – | True if more content remains beyond what was returned |
No examples provided.
gdrive_root Gdrive Root ~61
Lists the Google Drive folders synced on this Mac (My Drive, Shared drives, per-account mounts). Start here to get valid paths for the other gdrive_* tools. Reads the folder Google Drive for Desktop already syncs — no Google API, no OAuth.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| roots | array | – | – |
No examples provided.
gdrive_search_files Gdrive Search Files ~80
Searches the synced Google Drive folder for files by name (recursive). Returns up to max_results matches (default 50).
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | – | Maximum results (default 50) |
| query | string | yes | Filename pattern to search for |
| root | string | – | Restrict to this Drive path (optional - defaults to all mounts) |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | – |
| query | string | – | – |
| results | array | – | – |
No examples provided.
gdrive_write_file Gdrive Write File ~82
Writes or overwrites a text file in the synced Google Drive folder — it uploads automatically via the official client. First call returns a preview; pass confirm=true to write.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true to actually write |
| content | string | yes | Text content to write |
| path | string | yes | Absolute path under a Google Drive mount |
| Name | Type | Req | Description |
|---|---|---|---|
| bytes | integer | yes | – |
| overwrote | boolean | yes | – |
| path | string | yes | – |
| written | boolean | yes | – |
No examples provided.
get_audit_log Get Audit Log ~113
Returns recent LMCP tool call history from the local audit log. Each entry shows timestamp, tool name, call source (local/cloud), success status, and duration. Useful for GDPR Article 30 compliance reporting and debugging.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of recent entries to return (default 50, max 200) |
| ok | boolean | – | Filter to successes (true) or failures (false) only (optional) |
| tool | string | – | Filter to entries for a specific tool name (optional) |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | – |
| entries | array | – | – |
No examples provided.
get_config Get Config ~19
Returns the current LMCP configuration (api_key masked).
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
get_contact Get Contact ~121
Gets a contact from the Mac's Contacts app (Contacts.app) by name or ID. Pass `name` to look up directly by name (no need to search_contacts first — if several people match it returns a compact list to choose from), or `contact_id` for an exact lookup. For Microsoft 365 use m365_get_contact instead.
| Name | Type | Req | Description |
|---|---|---|---|
| contact_id | string | – | Exact identifier from list_contacts/search_contacts. Provide this OR name. |
| name | string | – | Full or partial contact name — the one-step path. Provide this OR contact_id. |
Structured output declared, but exposes no named fields.
No examples provided.
get_datetime Get Datetime ~73
Get the current date and time of the machine where LMCP runs — with timezone and UTC offset. Call this whenever you need the real 'now' on the user's computer: before creating calendar events or reminders, resolving relative dates like 'today'/'tomorrow'/'next Friday', or timestamping. Takes no arguments.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| epoch_seconds | integer | yes | Unix epoch seconds. |
| human | string | yes | Human-readable local date/time. |
| iso_local | string | yes | Current time in ISO 8601 with the machine's local UTC offset. |
| iso_utc | string | yes | Current time in ISO 8601, UTC. |
| timezone | string | yes | IANA timezone identifier. |
| utc_offset | string | yes | UTC offset like +02:00. |
| weekday | string | yes | – |
No examples provided.
get_m365_person Get Microsoft 365 Person ~95
Get detailed information about a specific person in your Microsoft 365 directory by their user ID or email address. Use 'me' to get the currently authenticated user's profile.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | User ID (GUID), email address (UPN), or 'me' for the authenticated user, e.g. 'sarah@contoso.com', 'a1b2c3d4-...', or 'me' |
| Name | Type | Req | Description |
|---|---|---|---|
| department | string | – | – |
| string | – | – | |
| id | string | – | – |
| mobile | string | – | – |
| name | string | – | – |
| office | string | – | – |
| phones | array | – | – |
| title | string | – | – |
| upn | string | – | – |
No examples provided.
get_reminder_folders Get Reminder Folders ~92
Lists the lists (folders) in Apple Reminders (Reminders.app) on this Mac. Every answer carries as_of (when the list snapshot was read) and cache_age_seconds; if cache_age_seconds is above 0 the snapshot is that many seconds old and a list created since then may be missing — call again to force a re-read. For Microsoft To Do use todo_get_folders instead.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | – | ISO 8601 UTC instant when this list snapshot was read from EventKit (not when iCloud last synced). |
| cache_age_seconds | integer | – | Age of the snapshot. 0 means it was read fresh for this call. |
| count | integer | – | – |
| lists | array | – | – |
| note | string | – | Present only when the snapshot is not fresh: says how old it is and what may be missing. |
No examples provided.
get_weather Get Weather ~132
Gets the current weather and a short daily forecast for a location. Pass a city name ('London', 'San Francisco', 'Tokyo,JP') or 'lat,lon' coordinates. Uses Open-Meteo — no API key required. Location must be provided (there is no device-location access).
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Number of forecast days, 1-7 (default 3) |
| location | string | yes | City name (e.g. 'London', 'Buenos Aires', 'Tokyo,JP') or 'lat,lon' coordinates (e.g. '40.71,-74.01') |
Structured output declared, but exposes no named fields.
No examples provided.
list_accounts List Accounts ~141
Lists Mail.app email accounts WITH each account's email addresses, server_name and type. type is whatever Mail reports — imap | pop | iCloud | smtp | unknown — and Mail's scripting dictionary has NO Exchange value, so Exchange (EWS) accounts always come back as unknown, flagged with type_undetermined: true and a type_note; for those read the mailbox through the m365_* tools (or outlook_diagnose) instead of routing by type. Slower — queries Mail directly. For just the account NAMES (to pass to list_emails(account=...)), prefer list_email_accounts: it's faster (cached, no Mail lock).
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| accounts | array | yes | – |
| count | integer | yes | – |
| note | string | – | Present when some account's type could not be determined: how many, and what to do. |
No examples provided.
list_calendar_events List Calendar Events ~315
Lists events from the Mac's Calendar app (Calendar.app, local/iCloud calendars) in a date range, or reads ONE event in full via event_id. List entries preview notes (200 chars, notes_truncated flag) and cap attendees; pass event_id to get the complete notes and full roster. Defaults to today + 7 days. For a Microsoft 365 calendar use m365_list_events instead.
| Name | Type | Req | Description |
|---|---|---|---|
| calendar | string | – | Filter by calendar name — partial, case-insensitive (optional). To pick one of several same-titled calendars, qualify it as "Account/Calendar" (e.g. "Exchange/Calendario") using the source from list_… |
| calendar_id | string | – | Filter by a single calendar UUID from list_calendar_names (optional). |
| calendar_ids | array | – | Filter by multiple calendar UUIDs (optional). |
| end_date | string | – | ISO 8601 date (YYYY-MM-DD). Defaults to start_date + 7 days. |
| event_id | string | – | Read exactly ONE event by its id (from a previous list) with FULL notes and the complete attendee roster — required before editing notes of an event whose list entry says notes_truncated. When set, a… |
| limit | integer | – | Max number of events to return (most recent first within the range). Optional; defaults to all in range. |
| start_date | string | – | ISO 8601 date (YYYY-MM-DD). Defaults to today. |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | – |
| end_date | string | – | – |
| events | array | – | – |
| start_date | string | – | – |
No examples provided.
list_calendar_names List Calendar Names ~39
Lists the calendars in the Mac's Calendar app (Calendar.app, local/iCloud). For Microsoft 365 calendars use the m365 calendar tools instead.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| calendars | array | – | – |
| count | integer | – | – |
No examples provided.
list_contacts List Contacts ~52
Lists contacts from the macOS Contacts app. Optionally filter by group.
| Name | Type | Req | Description |
|---|---|---|---|
| group_name | string | – | Filter by group name (optional) |
| limit | integer | – | Max contacts to return (default 100) |
| Name | Type | Req | Description |
|---|---|---|---|
| contacts | array | yes | – |
| count | integer | yes | – |
No examples provided.
list_displays List Displays ~74
Lists connected displays with bounds (global space, top-left origin, points), backing scale_factor, and which is main. display_id is the CGDirectDisplayID — the SAME value list_windows reports for each window's display_id, so you can map a window to its display. Stable for the session. No permission required.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_email_accounts List Email Accounts ~80
Lists all Mail.app account NAMES (fast — cached, no Mail lock). This is the preferred way to get account names: call it first to discover them, then use list_emails(account=name) to fetch messages from a specific account. If you also need each account's email addresses or type (imap/pop/iCloud), use list_accounts instead.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| accounts | array | – | Mail.app accounts, by name. |
| count | integer | – | Number of accounts. |
| tip | string | – | – |
No examples provided.
list_email_folders List Email Folders ~176
Lists the full folder (mailbox) tree for Apple Mail (Mail.app) accounts, including nested subfolders. Use this to discover the exact folder names that move_email(target_mailbox=...) and list_emails(mailbox=...) expect. Outlook.com, Exchange, Gmail, iCloud and IMAP accounts added to Mail.app are all included. For a Graph-only Microsoft 365 mailbox not added to Mail.app, use m365_list_emails instead. Pass account=<name> (from list_email_accounts) to enumerate one account fully; without it, every account is walked which can be slow on macOS 15+. Message counts are off by default (slow on IMAP) — pass include_counts=true to add unread/total per folder.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | – |
| include_counts | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| account_count | integer | – | – |
| accounts | array | – | – |
| folder_count | integer | – | – |
| next_actions | array | – | – |
| truncated | boolean | – | – |
No examples provided.
What is the com.local-mcp/local-mcp server?
com.local-mcp/local-mcp is listed in the public MCP registry as com.local-mcp/local-mcp. Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free. This page covers its hosted endpoint (https://local-mcp.com/mcp).
Is the com.local-mcp/local-mcp server safe to use?
com.local-mcp/local-mcp scores 39 out of 100 on VerifyMCP. 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 com.local-mcp/local-mcp server expose?
com.local-mcp/local-mcp exposes 204 tools: setup_install, complete_omnifocus_task, complete_reminder, configure_clients, connect_m365_account, and 199 more. Their descriptions and schemas cost roughly 25,946 tokens of context every time the server is loaded.
Does the com.local-mcp/local-mcp server require authentication?
Yes. com.local-mcp/local-mcp asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the com.local-mcp/local-mcp server still maintained?
com.local-mcp/local-mcp 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.