Skip to main content
Glama
krisxsee

Apple Notes on Steroids

by krisxsee

Apple Notes on Steroids

An MCP server for Apple Notes. Read, search, write and sync notes at full fidelity, including the styles Apple's own import path throws away.

Requirements

macOS with Apple Notes, Node 18 or newer, and up to three permission grants:

Grant

Buys

Needed

Automation

talking to Notes at all

always, prompted on first run

Accessibility

true styles and attachments on write

optional

Full Disk Access

reading Notes' own store: checked state, quotes, link targets, highlights. Also how a note holding attachments is safely updated, since the store says where they sit

optional

The server works with Automation alone, at reduced fidelity, and says so in its answers. The optional two are granted in System Settings, Privacy & Security, to the exact app running the server, so they need re-granting after that app updates.

Related MCP server: Apple Notes MCP

Install

No terminal needed.

Claude Desktop. Download the .mcpb from the latest release, double-click it, install.

ChatGPT. add marketplace krisxsee/apple-notes-on-steroids in Plugins.

Claude Code / Codex. It is a plugin:

claude plugin marketplace add krisxsee/apple-notes-on-steroids
claude plugin install apple-notes-on-steroids

Connect

Any MCP client that runs local stdio servers works: Cursor, Zed, Codex CLI and the rest. The one constraint is that the server must run on the Mac where Notes lives.

{ "mcpServers": { "apple-notes-on-steroids": { "command": "npx", "args": ["-y", "github:krisxsee/apple-notes-on-steroids"] } } }

From source: npm install && npm run build, then point the client at dist/index.js. To sync, set APPLE_NOTES_MD_DIR to the folder of .md files, or pass dir per call.

Verify

npm run verify

Creates one note in "MCP Tests" holding every style the server claims to write, reads it back character for character, and never touches a note that existed before.

Tools

Tool

What it does

list_folders

Every folder with path and note count.

list_notes

Notes, newest first. Optional folder, limit.

search_notes

Titles by default; search_body: true also scans bodies, capped at 300 notes.

get_note

One note by id or name. format: "markdown" reads Notes' own store, the only place checked state, quotes, link targets and highlights exist; when the store is out of reach it falls back to the HTML and says so with rich: false. format: "html" gives the raw HTML.

create_note

New note from a Markdown body. attach puts files in it; true_styles applies what the importer cannot.

append_note

Adds to the end. true_styles pastes at the caret instead of rewriting the body.

update_note

Replaces a note's body, keeping its attachments. attach adds more. Destructive for that note.

list_attachments

What a note carries besides text, one entry per mark and in the same order.

get_attachment

One attachment as an image, by index. Drawings come back as Notes' own render.

sync_now

One pass over a folder of Markdown files. dry_run reports without writing. See Sync.

export_note

Writes a note to a new .md file with its media. Creates only.

import_note

Creates a note from a .md file. Creates only.

No delete tool, on purpose.

Formatting

Bodies are Markdown, both ways. Two write paths produce a note: the HTML importer takes everything it can, instantly and silently, and a pasteboard hand-off supplies what it cannot.

Feature

State

Bold, italic, strikethrough, underline

both ways

Inline code

both ways, at the size of the line around it

Links, bare and labelled

both ways

Nested bullet and numbered lists

both ways, four spaces per level

Tables

both ways

Headings

both ways. # is Title, ## Heading, ### Subheading; deeper collapses to Subheading

Code fences

both ways. Notes cannot hold the language tag, but a pull keeps the one the file already has

Block quote

both ways, single level, which is all Notes has

==highlight==

both ways, orange, with inline code in mint so the two never read alike

- [ ], - [x], nested

both ways, checked state included

Horizontal rule

both ways, written as em dashes because Notes has no rule

Images, drawings, scans, any file

read fully; written by pasting the file, since the importer cannot make one

[[Wikilinks]]

a real note-link pill when the name matches exactly one note, literal text otherwise, so it becomes a link the day that note exists. Pulled back as [[title]]

Callouts, footnotes

plain text, no Notes equivalent

Sync

One direction per file, and Notes is the centre. A file's own name says which note it belongs to, and one property says which way it flows.

apple-note-sync

Direction

What happens

push

file → note

the note's body is replaced from the file

pull

file ← note

the file's body is replaced from the note, media included

off

paused

nothing

A pass only touches notes that already exist. A name matching no note, or more than one, is reported and neither side is written. Rename a note and the pair is lost until you rename the file to match.

One direction cannot have a conflict, so there is no conflict resolution. One guard: a pull that finds the file edited since the last pull refuses and reports it conflicted, both sides left standing; merge, push once, flip back. .apple-notes-sync.json is a cache used only to skip work; delete it and the next pass reaches the same place.

Media pulls in beside the .md file that links it, with ordinary Markdown. A push reconciles those links against the note: a link added attaches the file, one removed detaches it. A drawing is never removed, because nothing outside Notes reads its strokes.

export_note and import_note create the other side. Both refuse to overwrite.

Safety

  • No delete tool.

  • Sync never propagates deletions.

  • Notes in "Recently Deleted" are excluded from listings, search and folder resolution, and are never written to.

  • Locked notes: metadata reads, body reads return a placeholder, writes fail with LOCKED.

  • Ambiguous names return candidates rather than a guess.

  • The live check works only on notes it created.

  • The store is opened read-only. Writing goes through Notes itself, always.

Design

Four ideas hold it together.

Nothing is addressed by position. A position is a second model of the note kept beside the note, and it drifts. Text is what both sides can see.

The store is the only witness. A paste changes what a paragraph is and not one character of what it says, so the editor proves nothing.

Losing state must never read as having no state. Empty is a fact about the world; unreadable is a fact about this pass. Conflating them lets one side overwrite the other.

Never destroy what cannot be put back. An image removed still exists as a file. A drawing does not.

Development

npm test

npm run verify covers what only macOS can answer.

Available Tools

13 tools
append_noteA

Append to the end of an existing note. The text is Markdown, like create_note's body. The rest of the note is untouched: the fragment is pasted at the caret, so the note's own styles and attachments stay as they are.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoNote id from list/search results. Wins over name.
nameNoNote title. Must match one note; ambiguity returns candidates.
textYesMarkdown to append.
folderNoFolder name or path to narrow a name lookup.
true_stylesNoPaste the fragment with its true styles, leaving the rest of the note untouched. Default true. Needs Accessibility and Full Disk Access; Notes fronts for a few seconds. Set false to rewrite through the importer instead, which flattens true styles to look-alikes.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses that the fragment is pasted at the caret, the rest of the note is untouched, and styles/attachments are preserved. It also hints at the true_styles behavior by contrasting with an alternative rewrite path, adding valuable behavioral context beyond a basic 'append' statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose and immediately clarifying scope. No redundant wording; every clause adds meaning (Markdown format, preservation, caret behavior). It is appropriately sized for a moderately complex tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 params, no annotations, no output schema), the description covers the key usage context and behavioral nuances. The schema fills in parameter details, and the description clarifies the core append semantics and preservation guarantees. It could mention return values or error handling, but the lack of an output schema makes that less critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds minimal semantic value beyond the schema, only noting that the text is Markdown 'like create_note's body,' which helps clarify the text parameter but doesn't significantly compensate for the other parameters. The schema itself already provides detailed descriptions, especially for true_styles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (append to the end of an existing note) with a specific verb and resource. It also distinguishes from siblings by emphasizing that the rest of the note is untouched and that the text is Markdown like create_note's body, which differentiates it from update_note and create_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use this tool (appending to an existing note while preserving existing content) but does not explicitly name alternatives or state when not to use it. The mention of 'like create_note's body' implies consistency with create_note, but explicit exclusions are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_noteA

Create a new note. Title becomes the first line. The body is Markdown: inline styles, links, lists, tables, code fences, quotes, ==highlights==, and '- [ ]' checklists are converted.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesMarkdown body. Plain text passes through unchanged.
titleYesNote title.
attachNoAbsolute paths of files to attach: images, PDFs, audio, anything. The body cannot carry one, because Notes' importer discards it; these are pasted in afterwards. Put a Markdown image link on its own line where each should sit, in the same order, or they land at the end. Needs the Accessibility permission.
folderNoTarget folder. Default: the Notes folder of the default account.
true_stylesNoApply true paragraph styles (headings, code blocks, quotes, ==highlights==, checklists) by briefly driving the Notes app. Default true; the paste only happens when the note carries something the importer cannot make. Needs the Accessibility permission; Notes fronts for a few seconds and focus returns. Set false for headless or bulk runs: the note renders look-alike styles instead.
create_folderNoCreate the folder when it does not exist. Default false.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It does add useful context about title handling and Markdown conversion, but it omits other behavioral traits like potential side effects (e.g., driving the Notes app, creating folders) or permission requirements, which are only in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two short sentences, front-loaded with the primary purpose. Every word adds value, and there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description is minimal, the rich schema descriptions for all six parameters fill in necessary details like attachment handling, folder behavior, and automation side effects. The description itself covers the core creation and formatting behavior, so combined with the schema it is largely complete, though it lacks high-level context about when this tool is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description goes further by describing how 'title' becomes the first line and detailing the Markdown features supported in 'body', adding meaning beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new note' with specific behaviors (title becomes first line, body as Markdown). It clearly identifies the action and resource, though it does not explicitly contrast with siblings like append_note or import_note, so it misses a point on differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as append_note, update_note, or import_note. It only states what it does, not the circumstances that make it the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_noteA

Write an existing note to a new Markdown file, with its images, scans and drawings written beside it and linked. The one way attachment bytes reach disk. Rewrites a file it wrote before, refuses any other existing file rather than overwriting it. The file is stamped for pull, so later passes keep it up to date.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoNote id from list/search results. Wins over name.
dirNoFolder of .md files to work in. A bare name is a folder inside the vault. Default: the vault itself, from the APPLE_NOTES_MD_DIR environment variable or failing that the open Markdown vault.
fileNoPath for the new file, relative to the root. Default: the note's name, which is what later passes match on.
nameNoNote title. Must match one note; ambiguity returns candidates.
folderNoFolder name or path to narrow a name lookup.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It explicitly states that the tool rewrites only files it previously wrote, refuses any other existing file rather than overwriting it, and stamps files for `pull` to keep them updated. These are crucial behavioral traits that inform the agent about safety and idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, with the core action front-loaded in the first sentence. Each subsequent sentence adds meaningful detail about attachment handling, overwrite safety, and the pull stamp, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential aspects: purpose, attachment persistence, overwrite behavior, and the update stamp. The only missing piece is a description of return values or error handling, but since no output schema is provided, this is a minor gap for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of the parameters with descriptions, so the tool description does not need to add much parameter-specific meaning. The description does not delve into how id/name/dir/file interact, but the schema descriptions already provide sufficient semantics for each field. Thus, the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Write' a note to 'a new Markdown file') and names the resource directly, making the tool's purpose unambiguous. It also distinguishes itself from siblings by claiming to be 'the one way attachment bytes reach disk,' which highlights its unique niche.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'The one way attachment bytes reach disk' explicitly tells the agent when to use this tool—any time attachments must be persisted to disk, there is no alternative. 'Later passes keep it up to date' also indicates that this tool is suitable for ongoing export/sync workflows. Although it doesn't name sibling tools, it provides a clear when-to-use directive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_attachmentA

Fetch one attachment of a note by its index in list_attachments. Bytes as Notes holds them, under their own name and type. A drawing has no original, so it comes back as the picture Notes renders of it, which is the only form it exists in.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoNote id from list/search results. Wins over name.
nameNoNote title. Must match one note; ambiguity returns candidates.
indexYesPosition in list_attachments, starting at 0.
folderNoFolder name or path to narrow a name lookup.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavior. It discloses that bytes are returned exactly as Notes holds them, with original name/type, and explains how drawings are rendered. This goes beyond a generic 'fetch' but stops short of detailing error behavior or response wrapping.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main action and context, and the second sentence adds an important edge-case behavior. Every sentence contributes value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple fetch tool with no output schema or annotations, it covers the core return semantics (bytes, name/type, drawing behavior) and references the prerequisite list_attachments. Missing details include how errors are surfaced and whether bytes are encoded, but the description is reasonably complete for its scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reinforces that 'index' is a position in list_attachments, which is already in the schema, and adds little new parameter-level meaning. It does not clarify id/name/folder roles beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetch') and resource ('attachment of a note') with a clear scope ('by its index in list_attachments'). It distinguishes itself from siblings like list_attachments and get_note by focusing on fetching one attachment's byte content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the intended workflow: first call list_attachments to obtain the index, then call get_attachment with that index. It does not explicitly list alternatives or exclusions, but the mention of list_attachments provides clear context on when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_noteA

Read one note by id (preferred) or by title. The body comes back as Markdown and never repeats the title, which is already the note's name. The default reads the note's own store, so checked boxes, block quotes, link targets and highlights come back intact; rich:false means the store was out of reach and the body degraded to the exported HTML, which carries none of those. format=html returns the raw HTML. Attachments appear as placeholder marks, never bytes: to copy a note to disk or a vault, use export_note, which writes the images as files too.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoNote id from list/search results. Wins over name.
nameNoNote title. Must match one note; ambiguity returns candidates.
folderNoFolder name or path to narrow a name lookup.
formatNoBody format, default markdown: the full-fidelity store read. html returns Notes' exported body.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description reveals critical behavior: Markdown body never repeats the title, rich:false indicates degraded format, attachments appear as placeholders never bytes, and format=html switches to raw HTML. This is thorough and goes well beyond a simple 'read' statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact but information-dense. Every sentence serves a purpose: identification, return format, degraded behavior, attachment handling, and export alternative. No redundant phrases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with four optional parameters and no output schema, the description covers identification methods, body format, failure mode (rich:false), attachment limitations, and a relevant alternative. It is entirely self-sufficient for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema covers all four parameters, the description adds meaning: clarifies id over name, mentions 'ambiguity returns candidates' for name, and explains format options (markdown full-fidelity store read vs html exported body). This significantly enhances understanding of how parameters affect output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Read one note by id (preferred) or by title' – a specific verb and resource. It distinguishes from siblings by focusing on reading a single note and explicitly names export_note for copying, avoiding overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit preference ('by id (preferred)'), notes ambiguity handling ('ambiguity returns candidates'), and directs users to export_note for copying attachments to disk/vault. This constitutes clear when-to-use and an explicit alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_noteA

Create a new note from a Markdown file. Its image links become real attachments. Creates only: a name that already exists in Notes is refused, so nothing is overwritten.

ParametersJSON Schema
NameRequiredDescriptionDefault
dirNoFolder of .md files to work in. A bare name is a folder inside the vault. Default: the vault itself, from the APPLE_NOTES_MD_DIR environment variable or failing that the open Markdown vault.
fileYesPath to the file, relative to the root.
folderNoTarget folder. Default: the Notes folder of the default account.
create_folderNoCreate the folder when it does not exist. Default false.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It discloses two important behaviors: image links become real attachments, and an existing name is refused (no overwrite). It omits details about source file handling or return values, but the core safety profile is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with the core action. Each sentence adds meaningful information without wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating import tool with no annotations, the description covers purpose, key transformations, and safety constraints. It avoids explaining return values (no output schema) and relies on the schema for parameter details, which is acceptable. The sibling context clarifies the tool's place among other note operations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides descriptions for all four parameters, so the description does not need to repeat them. The description adds no parameter-specific meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Create') and resource ('a new note'), and adds the source material ('Markdown file'). It also highlights unique features (image links become attachments, refusal on existing names) that distinguish it from sibling tools like create_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for importing a Markdown file into a note, but it does not explicitly state when to prefer this over alternatives like create_note or append_note. No exclusions or alternative tool references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_attachmentsA

What a note carries besides text: images, scans, drawings, files. One entry per mark in the note's Markdown, in the same order, so mark n and attachment n are the same thing. A table is not listed: its mark became the pipe rows in the body. Use get_attachment to look at one.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoNote id from list/search results. Wins over name.
nameNoNote title. Must match one note; ambiguity returns candidates.
folderNoFolder name or path to narrow a name lookup.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description takes on the full transparency burden. It discloses ordering semantics (entry n corresponds to mark n), the table exclusion, and implies a one-to-one mapping. It does not explicitly state read-only behavior or error handling, but the core behavioral traits are conveyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences: definition, ordering rule, and exclusion/alternative. Every sentence contributes meaningful information with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list operation with no output schema or annotations, the description covers the essential context: what is listed, how entries map to marks, what is excluded, and a pointer to get_attachment. It lacks an explicit return shape but is sufficient for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: all three parameters (id, name, folder) are already well-described, including priority and disambiguation. The description adds no parameter-specific semantics, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: enumerating a note's non-text attachments (images, scans, drawings, files). It differentiates from siblings by explaining the per-mark correspondence and explicitly pointing to get_attachment for individual access, making the purpose specific and distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage context, including an important exclusion (tables are not listed because their mark becomes pipe rows) and names get_attachment as the alternative for examining one attachment. This tells the agent when to use this tool vs. the sibling tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_foldersA

List every Apple Notes folder with its path and note count.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral transparency burden. It does disclose the output scope ('every folder') and includes return details ('path and note count'), which is helpful. However, it does not explicitly state that the operation is read-only, has no side effects, or what happens with empty folders or errors, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that communicates the core purpose and key output fields. It is front-loaded and free of filler, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description provides sufficient context: it enumerates folders and specifies the returned fields. It could enhance completeness by noting whether folders are nested or whether the count includes subfolders, but for a basic listing tool it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is trivially complete. The description does not need to explain parameters, and the baseline for no-parameter tools is 4. It appropriately focuses on the return value instead, adding meaning about what the result contains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'List every Apple Notes folder with its path and note count.' It uses a specific verb (List) and resource (Apple Notes folder), and the inclusion of 'path' and 'note count' distinguishes it from sibling tools like list_notes, which lists notes rather than folders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: an agent would call this when needing to enumerate folders. However, it does not explicitly mention alternatives or when not to use it, such as if only a specific folder is needed. This falls short of the explicit guidance seen in higher-scoring tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_notesA

List notes, newest first. Optionally scoped to one folder. Trash is excluded.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows, default 25.
folderNoFolder name or path from list_folders.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses ordering and trash exclusion, adding useful behavior beyond a bare 'list notes.' However, it doesn't describe return format or pagination behavior beyond limit parameter in schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each adds distinct information: action+ordering, optional scoping, trash exclusion. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with two optional params and no output schema, the description covers the core behavior well. Missing details like returned fields, but the sibling get_note implies list returns summaries; still, the description is fairly complete for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema provides complete descriptions for both parameters (limit: max rows/default 25; folder: from list_folders), giving 100% schema coverage. The description's mention of folder scoping adds only slight emphasis but no new parameter-specific meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'List' with resource 'notes', states ordering ('newest first') and scope ('Optionally scoped to one folder'). This clearly distinguishes from siblings like get_note (single note) and search_notes (search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Conveys clear context: lists notes with optional folder scoping and trash excluded. However, it does not explicitly name alternatives or state when not to use (e.g., for full-text search use search_notes).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_notesA

Search notes by title, or by title and body with search_body=true (slower, capped scope). total is how many matched, notes the first limit of them, whichever mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results, default 20.
queryYesCase-insensitive substring.
folderNoRestrict search to one folder.
search_bodyNoAlso scan note bodies. Default false.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses that body search is slower, refers to a 'capped scope', and clarifies the output fields (total and notes). This adds useful behavioral context beyond a simple 'search' statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the purpose and then clarify the output shape. No redundant information; every clause serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is largely complete for a search tool: it explains the two modes, output structure, and performance implications. However, the phrase 'capped scope' is ambiguous, and since there's no output schema, the return format is only briefly described, leaving minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers all four parameters with descriptions, but the description adds meaning by explaining the effect of search_body (slower, capped scope) and how limit relates to the returned notes array. This goes beyond the schema's raw parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches notes by title, with an optional body mode. It distinguishes from siblings by specifying search semantics (title vs body) and output structure, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for searching notes when you need to find specific content, but it does not explicitly compare with list_notes or other alternatives. It provides a condition (search_body=true) and performance caveat, but no when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_nowA

One pass over a folder of .md files, one direction per file. A file opts in with frontmatter apple-note-sync: push sends the file into the note, pull brings the note into the file, off pauses. The file's own name says which note, and it must match exactly one: a name matching none or several is reported and neither side is touched. Rename the note in Notes and the pair is lost until the file is renamed to match. Pass folder to mirror a whole Notes folder: notes there with no file yet are created as pull files, attachments written beside them, so one call covers everything. Deletions never propagate.

ParametersJSON Schema
NameRequiredDescriptionDefault
dirNoFolder of .md files to work in. A bare name is a folder inside the vault. Default: the vault itself, from the APPLE_NOTES_MD_DIR environment variable or failing that the open Markdown vault.
folderNoA Notes folder to mirror: its notes without a file yet are created as pull files in a subfolder named after it.
true_stylesNoApply true styles to pushed notes. Default true.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully covers behavioral details: opt-in via frontmatter, name matching requirement, consequences of renaming, folder mirroring behavior, attachment handling, and a clear statement that 'Deletions never propagate.' This goes beyond typical tool descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise yet comprehensive, opening with a succinct high-level summary ('One pass over a folder of .md files, one direction per file') and then adding necessary detail without redundancy. Every sentence contributes essential information about sync behavior, edge cases, or options.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no output schema), the description covers all critical aspects: sync direction, frontmatter control, name matching, failure reporting, folder mirroring, and deletion policy. It leaves no major behavioral gaps for an AI agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter already well-described. The tool description adds process context but not additional per-parameter details beyond what the schema provides. For example, the description explains the folder parameter's behavior, but the schema already states that notes without a file are created as pull files.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's primary function: 'One pass over a folder of .md files, one direction per file.' It specifies the resource (folder of .md files) and verb (sync) with operational detail, and the frontmatter-driven direction distinguishes it from siblings like get_note or update_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (e.g., to sync markdown files with Notes) and even explains the folder mirroring use case. However, it does not explicitly contrast with sibling tools like sync_status, which might be the alternative for checking sync state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_statusA

Dry-run of sync_now: reports what would be pushed, pulled or created, without writing anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
dirNoFolder of .md files to work in. A bare name is a folder inside the vault. Default: the vault itself, from the APPLE_NOTES_MD_DIR environment variable or failing that the open Markdown vault.
folderNoA Notes folder to mirror, as in sync_now.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the key non-destructive behavior ('without writing anything'), which is critical. However, it doesn't mention whether the dry-run still makes remote reads, requires authentication, or how the report is structured, leaving some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence. The key qualifier 'Dry-run' is front-loaded, and every word adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two optional parameters and no output schema, the description adequately conveys the purpose and the critical no-write guarantee. It could benefit from a small note on the report format, but the phrase 'reports what would be pushed, pulled or created' provides sufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters ('dir' and 'folder') are already fully documented in the input schema. The description adds no additional parameter semantics, which is acceptable given the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('reports') with a clear resource ('what would be pushed, pulled or created') and explicitly identifies as a dry-run of sync_now, clearly distinguishing it from the execution sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Dry-run of sync_now' signals this is a preview companion to sync_now, implying it should be used to check effects before executing. It doesn't explicitly state exclusions or name alternatives, but the relationship is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_noteA

Replace a note's body. Destructive for that note: the old body is overwritten. Title is kept unless a new one is given. The body is Markdown, like create_note.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoNote id from list/search results. Wins over name.
bodyYesNew Markdown body.
nameNoNote title. Must match one note; ambiguity returns candidates.
titleNoNew title. Default: keep the current title.
attachNoAbsolute paths of files to attach: images, PDFs, audio, anything. The body cannot carry one, because Notes' importer discards it; these are pasted in afterwards. Put a Markdown image link on its own line where each should sit, in the same order, or they land at the end. Needs the Accessibility permission.
folderNoFolder name or path to narrow a name lookup.
true_stylesNoApply true paragraph styles (headings, code blocks, quotes, ==highlights==, checklists) by briefly driving the Notes app. Default true; the paste only happens when the note carries something the importer cannot make. Needs the Accessibility permission; Notes fronts for a few seconds and focus returns. Set false for headless or bulk runs: the note renders look-alike styles instead.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It explicitly discloses that the old body is overwritten (destructive) and that the title is preserved unless a new one is provided. It does not mention the behavioral caveats of the attach and true_styles parameters, but those are well-documented in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: it states the core action and key side effects in four short sentences. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives a solid high-level overview covering the destructive nature and title behavior, but it omits mention of optional behaviors like attachments or true paragraph styles. However, the schema provides those details, so the description is sufficiently complete for an agent that reads the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are fully described. The description only reiterates that the body is Markdown, which the schema already states. It adds no additional semantic value beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Replace') with a clear resource ('a note's body'), immediately distinguishing it from append_note or create_note. It also states the destructive side effect, which gives a unique purpose signature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly conveys when to use this tool: to overwrite a note's body while optionally changing the title. It mentions Markdown compatibility with create_note, but does not explicitly contrast with append_note or list exclusions, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.9.1
    • Changedappend_note1 field changed
      • changedInput schema / properties / true_styles / description
        Previous value: -"Restore the note's own paragraph styles after the append, so headings, checklists, quotes and highlights survive. Needs Accessibility and Full Disk Access; Notes fronts for a few seconds. Default false."New value: +"Paste the fragment with its true styles, leaving the rest of the note untouched. Default true. Needs Accessibility and Full Disk Access; Notes fronts for a few seconds. Set false to rewrite through the importer instead, which flattens true styles to look-alikes."
    • Changedcreate_note1 field changed
      • changedInput schema / properties / true_styles / description
        Previous value: -"Also apply true paragraph styles (headings, code blocks, quotes, ==highlights==, checklists) by briefly driving the Notes app. Needs the Accessibility permission; Notes fronts for a few seconds and focus returns. Default false: the note still renders look-alike styles."New value: +"Apply true paragraph styles (headings, code blocks, quotes, ==highlights==, checklists) by briefly driving the Notes app. Default true; the paste only happens when the note carries something the importer cannot make. Needs the Accessibility permission; Notes fronts for a few seconds and focus returns. Set false for headless or bulk runs: the note renders look-alike styles instead."
    • Changedexport_note1 field changed
      • changedInput schema / properties / dir / description
        Previous value: -"Folder of .md files to work in. Default: the APPLE_NOTES_MD_DIR environment variable, or failing that the open Obsidian vault."New value: +"Folder of .md files to work in. A bare name is a folder inside the vault. Default: the vault itself, from the APPLE_NOTES_MD_DIR environment variable or failing that the open Markdown vault."
    • Changedget_note2 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"Body format, default markdown: the full-fidelity store read. text is Markdown from the exported HTML alone, no store read."New value: +"Body format, default markdown: the full-fidelity store read. html returns Notes' exported body."
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "text",
        -  "html",
        -  "both",
        -  "markdown"
        -]New value: +[
        +  "markdown",
        +  "html"
        +]
    • Changedimport_note1 field changed
      • changedInput schema / properties / dir / description
        Previous value: -"Folder of .md files to work in. Default: the APPLE_NOTES_MD_DIR environment variable, or failing that the open Obsidian vault."New value: +"Folder of .md files to work in. A bare name is a folder inside the vault. Default: the vault itself, from the APPLE_NOTES_MD_DIR environment variable or failing that the open Markdown vault."
    • Changedsync_now1 field changed
      • changedInput schema / properties / dir / description
        Previous value: -"Folder of .md files to work in. Default: the APPLE_NOTES_MD_DIR environment variable, or failing that the open Obsidian vault."New value: +"Folder of .md files to work in. A bare name is a folder inside the vault. Default: the vault itself, from the APPLE_NOTES_MD_DIR environment variable or failing that the open Markdown vault."
    • Changedsync_status1 field changed
      • changedInput schema / properties / dir / description
        Previous value: -"Folder of .md files to work in. Default: the APPLE_NOTES_MD_DIR environment variable, or failing that the open Obsidian vault."New value: +"Folder of .md files to work in. A bare name is a folder inside the vault. Default: the vault itself, from the APPLE_NOTES_MD_DIR environment variable or failing that the open Markdown vault."
    • Changedupdate_note1 field changed
      • changedInput schema / properties / true_styles / description
        Previous value: -"Also apply true paragraph styles (headings, code blocks, quotes, ==highlights==, checklists) by briefly driving the Notes app. Needs the Accessibility permission; Notes fronts for a few seconds and focus returns. Default false: the note still renders look-alike styles."New value: +"Apply true paragraph styles (headings, code blocks, quotes, ==highlights==, checklists) by briefly driving the Notes app. Default true; the paste only happens when the note carries something the importer cannot make. Needs the Accessibility permission; Notes fronts for a few seconds and focus returns. Set false for headless or bulk runs: the note renders look-alike styles instead."
  2. 13 tool updatesv0.8.0
    • First observedappend_note
    • First observedcreate_note
    • First observedexport_note
    • First observedget_attachment
    • First observedget_note
    • First observedimport_note
    • First observedlist_attachments
    • First observedlist_folders
    • First observedlist_notes
    • First observedsearch_notes
    • First observedsync_now
    • First observedsync_status
    • First observedupdate_note

TDQS

A3.9/5.0

Scored across 13 tools

Disambiguation4/5

Most tools are cleanly separated by resource and action, and list/search/read/write distinctions are clear. The only real ambiguity is among export_note, import_note, and sync_now, which all move markdown/attachments between Notes and disk, so agents must carefully compare one-off conversion vs batch sync.

Naming Consistency4/5

The dominant verb_noun pattern (list_notes, get_attachment, create_note, update_note, export_note) is consistent and readable. sync_now and sync_status are the only slight deviations, but they still read as a paired sync family rather than arbitrary names.

Tool Count5/5

At 13 tools, the server is well within the ideal scope and has no redundant entries. Each tool addresses a distinct operation: reading, writing, searching, attachments, import/export, or sync.

Completeness3/5

The content lifecycle is mostly covered with list/search/get/create/append/update and strong attachment/sync support. However, there is no delete/trash tool and no folder creation/move or ability to create a note in a chosen folder, which are notable gaps. These omissions create dead ends for cleanup and organizational workflows.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Appeared in Searches