{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-apple-notes","slug":"apple-notes","name":"Apple Notes","type":"mcp","url":"https://github.com/RafalWilinski/mcp-apple-notes","page_url":"https://unfragile.ai/apple-notes","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-apple-notes__cap_0","uri":"capability://search.retrieval.hybrid.semantic.keyword.search.over.local.apple.notes","name":"hybrid semantic-keyword search over local apple notes","description":"Combines vector-based semantic search using all-MiniLM-L6-v2 embeddings stored in LanceDB with traditional full-text keyword matching to retrieve notes based on meaning and exact terms. The system generates embeddings on-device during indexing, stores them in a local vector database, and executes hybrid queries that merge both result sets for comprehensive retrieval without sending note content to external services.","intents":["Search my notes by meaning rather than exact keywords to find relevant information","Retrieve notes that match both semantic intent and specific terminology","Find notes without remembering exact titles or keywords","Enable Claude to access my personal knowledge base during conversations"],"best_for":["Individual knowledge workers maintaining personal note collections in Apple Notes","Developers building AI agents that need access to local, private knowledge bases","Users who want RAG capabilities without cloud data transmission"],"limitations":["Embedding generation uses all-MiniLM-L6-v2 model which may have lower semantic quality than larger models like OpenAI embeddings","Search performance depends on LanceDB indexing speed; large note collections (10k+ notes) may have slower initial indexing","Hybrid search requires tuning of vector/keyword result weighting; default algorithm may not optimize for all use cases","No support for searching note metadata (creation date, tags) — only full-text and semantic content search"],"requires":["Bun runtime environment","Claude Desktop application with MCP support","Apple Notes application with existing notes to index","macOS system (JXA requires native Apple automation)"],"input_types":["natural language query strings","semantic intent descriptions"],"output_types":["ranked list of note objects with content and metadata","relevance scores from vector similarity"],"categories":["search-retrieval","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-apple-notes__cap_1","uri":"capability://data.processing.analysis.on.device.embedding.generation.with.all.minilm.l6.v2.transformer","name":"on-device embedding generation with all-minilm-l6-v2 transformer","description":"Generates vector embeddings for note content using the all-MiniLM-L6-v2 transformer model executed locally via JavaScript/Node.js runtime, storing 384-dimensional vectors in LanceDB without external API calls. The embedding function processes text during the indexing phase and enables semantic similarity comparisons for search queries without requiring API keys or cloud infrastructure.","intents":["Convert note text into semantic vectors for similarity-based retrieval","Enable semantic search without relying on external embedding APIs","Maintain privacy by processing embeddings locally on the user's machine","Support RAG workflows with deterministic, reproducible embeddings"],"best_for":["Privacy-conscious users who cannot send note content to external services","Developers building offline-first AI applications","Teams with air-gapped or restricted network environments"],"limitations":["all-MiniLM-L6-v2 produces 384-dimensional embeddings which may have lower semantic quality than larger models (OpenAI's text-embedding-3-large produces 3072 dimensions)","Embedding generation adds latency during initial indexing; large note collections may require several minutes to process","Model is fixed and cannot be swapped for alternative embedding models without code changes","No support for multi-lingual embeddings; model optimized for English text"],"requires":["Bun runtime with transformer.js or equivalent ONNX runtime support","Sufficient local disk space for model weights (~100MB for all-MiniLM-L6-v2)","Adequate RAM for in-memory embedding computation during indexing"],"input_types":["plain text strings from note content"],"output_types":["384-dimensional float vectors","vector embeddings stored in LanceDB format"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-apple-notes__cap_2","uri":"capability://tool.use.integration.mcp.protocol.bridge.for.claude.desktop.integration","name":"mcp protocol bridge for claude desktop integration","description":"Implements the Model Context Protocol (MCP) server specification to expose Apple Notes tools to Claude Desktop through a standardized tool-calling interface. The server registers tool definitions via ListToolsRequestSchema, handles tool invocations through CallToolRequestSchema, and manages bidirectional communication with Claude, enabling the AI assistant to invoke note operations as native MCP tools without custom integrations.","intents":["Enable Claude to search and retrieve my notes during conversations","Expose note operations as native tools within Claude's tool-calling system","Maintain a standardized protocol interface for future AI assistant compatibility","Allow Claude to create new notes in Apple Notes programmatically"],"best_for":["Claude Desktop users who want native note integration without plugins","Developers building MCP-compatible AI applications","Teams standardizing on MCP for AI tool orchestration"],"limitations":["MCP protocol support is limited to Claude Desktop; other AI assistants (ChatGPT, Gemini) cannot use this integration","Tool definitions are static and registered at server startup; dynamic tool registration requires server restart","No built-in authentication or access control; assumes single-user local environment","Error handling relies on MCP error response format; complex errors may not propagate clearly to Claude"],"requires":["Claude Desktop application with MCP server support","Bun runtime to execute the MCP server process","MCP server configuration in Claude Desktop settings (claude_desktop_config.json)"],"input_types":["MCP tool request objects with parameters","JSON-serialized tool invocation payloads"],"output_types":["MCP tool response objects","JSON-serialized results from note operations"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-apple-notes__cap_3","uri":"capability://tool.use.integration.javascript.for.automation.jxa.bridge.to.apple.notes","name":"javascript for automation (jxa) bridge to apple notes","description":"Uses macOS JavaScript for Automation (JXA) to directly interact with the Apple Notes application, enabling programmatic note retrieval, listing, and creation without relying on file system access or reverse-engineered APIs. The JXA integration handles native Apple Events to query the Notes database and create new notes while maintaining compatibility with Apple's official automation framework.","intents":["Retrieve note content directly from Apple Notes application","List all available notes with metadata","Create new notes in Apple Notes from Claude conversations","Access notes without parsing proprietary database formats"],"best_for":["macOS users who want native integration with Apple Notes","Developers building automation workflows on Apple platforms","Users who prefer official Apple automation APIs over file system hacks"],"limitations":["JXA is macOS-only; no support for Windows or Linux systems","Apple Notes application must be running or accessible for JXA to interact with it","JXA performance is slower than direct file system access; note retrieval adds ~100-500ms per operation","No support for accessing note attachments, images, or rich formatting metadata","JXA requires user approval for automation access (macOS security prompts)"],"requires":["macOS operating system (10.14+)","Apple Notes application installed","User approval for JavaScript for Automation in System Preferences","Bun runtime with JXA execution support"],"input_types":["note identifiers or names","note content strings for creation"],"output_types":["note objects with title, content, and metadata","list of available notes"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-apple-notes__cap_4","uri":"capability://data.processing.analysis.note.indexing.and.vector.database.persistence","name":"note indexing and vector database persistence","description":"Orchestrates the indexing workflow that retrieves all notes from Apple Notes via JXA, generates embeddings for each note using all-MiniLM-L6-v2, and persists the embeddings along with note metadata in a LanceDB vector database for efficient retrieval. The indexing process is one-time or periodic, storing vector representations and note references locally to enable fast semantic search without re-embedding on each query.","intents":["Index all my notes once to enable fast semantic search","Persist embeddings locally to avoid re-computing on every search","Maintain a searchable vector database of my note collection","Support incremental indexing of new notes"],"best_for":["Users with stable note collections who want one-time indexing setup","Developers building RAG systems with local vector storage","Teams managing knowledge bases that don't change frequently"],"limitations":["Indexing is a batch operation; no real-time incremental indexing when new notes are created in Apple Notes","LanceDB persistence requires manual re-indexing to capture new notes; no automatic sync","Large note collections (10k+ notes) may require 5-10 minutes for initial indexing","Vector database file size grows linearly with note count (~1-2MB per 1000 notes)","No built-in versioning or rollback for vector database; corrupted index requires full re-indexing"],"requires":["Bun runtime with LanceDB support","Sufficient disk space for vector database file","Apple Notes application with notes to index","Initial indexing command execution"],"input_types":["note collection from Apple Notes","embedding model (all-MiniLM-L6-v2)"],"output_types":["LanceDB vector database file","indexed note metadata with embeddings"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-apple-notes__cap_5","uri":"capability://search.retrieval.note.listing.and.metadata.retrieval","name":"note listing and metadata retrieval","description":"Exposes a tool that retrieves the complete list of available notes from Apple Notes via JXA, returning note titles, identifiers, and basic metadata without requiring full content retrieval. This enables Claude to browse available notes and select specific ones for detailed retrieval, supporting note discovery workflows without loading all note content into context.","intents":["See what notes I have available without loading all content","Browse note titles to find relevant notes for a conversation","Get note identifiers for targeted retrieval","Understand the scope of my note collection"],"best_for":["Users with large note collections who want to browse before retrieving","Developers building note discovery interfaces","Workflows that need to select notes before full content retrieval"],"limitations":["Returns only note titles and identifiers; no preview of note content","Listing operation requires Apple Notes to be accessible; may fail if application is not running","No filtering or sorting options; returns all notes in default order","Performance degrades with very large note collections (1000+ notes); listing may take 1-2 seconds"],"requires":["Apple Notes application accessible via JXA","Bun runtime with JXA support"],"input_types":[],"output_types":["array of note objects with title and identifier","note metadata (creation date, modification date if available)"],"categories":["search-retrieval","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-apple-notes__cap_6","uri":"capability://search.retrieval.targeted.note.retrieval.by.identifier","name":"targeted note retrieval by identifier","description":"Retrieves the full content of a specific note by identifier from Apple Notes via JXA, enabling Claude to access detailed note content after discovery or search. The retrieval operation fetches the complete note text and metadata, making it available for Claude to reference, summarize, or use in reasoning without requiring re-indexing or vector search.","intents":["Get the full content of a specific note I've identified","Retrieve detailed note information for Claude to analyze","Access note content after discovering it via listing or search","Load note text into Claude's context for reasoning"],"best_for":["Users who want to access specific notes after discovery","Workflows combining note listing with detailed retrieval","Scenarios where full note content is needed for Claude analysis"],"limitations":["Requires knowing the note identifier; cannot retrieve by title alone","Retrieval operation is synchronous; large notes may block for 100-500ms","No support for partial retrieval; always returns full note content","Rich formatting and attachments are not retrieved; only plain text content"],"requires":["Valid note identifier from listing or search results","Apple Notes application accessible via JXA","Bun runtime with JXA support"],"input_types":["note identifier string"],"output_types":["note object with full content and metadata","plain text note content"],"categories":["search-retrieval","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-apple-notes__cap_7","uri":"capability://tool.use.integration.note.creation.from.claude.conversations","name":"note creation from claude conversations","description":"Enables Claude to create new notes in Apple Notes directly from conversations by invoking a JXA-based tool that writes note content and title to the Notes application. The creation operation accepts title and content parameters from Claude, constructs a new note object, and persists it to Apple Notes without requiring manual user interaction or file system access.","intents":["Create a new note in Apple Notes from Claude conversation","Save Claude-generated content or summaries as notes","Capture conversation insights as persistent notes","Enable Claude to write back to my note collection"],"best_for":["Users who want Claude to save insights and summaries as notes","Workflows that generate content in Claude and persist to Apple Notes","Scenarios where Claude needs write access to the note collection"],"limitations":["Created notes are plain text only; no support for rich formatting, links, or attachments","Note creation requires Apple Notes to be running and accessible","No validation of note content; Claude can create notes with any text","Created notes are not automatically indexed; require manual re-indexing to enable search","No support for creating notes in specific folders or with tags"],"requires":["Apple Notes application running and accessible via JXA","Bun runtime with JXA support","Write permissions for Apple Notes (may require user approval)"],"input_types":["note title string","note content string"],"output_types":["confirmation of note creation","new note identifier"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":26,"verified":false,"data_access_risk":"high","permissions":["Bun runtime environment","Claude Desktop application with MCP support","Apple Notes application with existing notes to index","macOS system (JXA requires native Apple automation)","Bun runtime with transformer.js or equivalent ONNX runtime support","Sufficient local disk space for model weights (~100MB for all-MiniLM-L6-v2)","Adequate RAM for in-memory embedding computation during indexing","Claude Desktop application with MCP server support","Bun runtime to execute the MCP server process","MCP server configuration in Claude Desktop settings (claude_desktop_config.json)"],"failure_modes":["Embedding generation uses all-MiniLM-L6-v2 model which may have lower semantic quality than larger models like OpenAI embeddings","Search performance depends on LanceDB indexing speed; large note collections (10k+ notes) may have slower initial indexing","Hybrid search requires tuning of vector/keyword result weighting; default algorithm may not optimize for all use cases","No support for searching note metadata (creation date, tags) — only full-text and semantic content search","all-MiniLM-L6-v2 produces 384-dimensional embeddings which may have lower semantic quality than larger models (OpenAI's text-embedding-3-large produces 3072 dimensions)","Embedding generation adds latency during initial indexing; large note collections may require several minutes to process","Model is fixed and cannot be swapped for alternative embedding models without code changes","No support for multi-lingual embeddings; model optimized for English text","MCP protocol support is limited to Claude Desktop; other AI assistants (ChatGPT, Gemini) cannot use this integration","Tool definitions are static and registered at server startup; dynamic tool registration requires server restart","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.26,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:02.370Z","last_scraped_at":"2026-05-03T14:00:15.503Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=apple-notes","compare_url":"https://unfragile.ai/compare?artifact=apple-notes"}},"signature":"CpJ11tty7FBVCFc/k7qkpZ3PJb34qtMJJzNvvZ+yCDmJfEZVUg3aRMYrOYSJBC5kWbIxBr9Xilvj+RTk7zUmAA==","signedAt":"2026-06-21T22:42:22.697Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/apple-notes","artifact":"https://unfragile.ai/apple-notes","verify":"https://unfragile.ai/api/v1/verify?slug=apple-notes","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}