$npx -y skills add anthropics/knowledge-work-plugins --skill searchSearch across all connected sources in one query. Trigger with "find that doc about...", "what did we decide on...", "where was the conversation about...", or when looking for a decision, document, or discussion that could live in chat, email, cloud storage, or a project tracker.
| 1 | # Search Command |
| 2 | |
| 3 | > If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md). |
| 4 | |
| 5 | Search across all connected MCP sources in a single query. Decompose the user's question, run parallel searches, and synthesize results. |
| 6 | |
| 7 | ## Instructions |
| 8 | |
| 9 | ### 1. Check Available Sources |
| 10 | |
| 11 | Before searching, determine which MCP sources are available. Attempt to identify connected tools from the available tool list. Common sources: |
| 12 | |
| 13 | - **~~chat** — chat platform tools |
| 14 | - **~~email** — email tools |
| 15 | - **~~cloud storage** — cloud storage tools |
| 16 | - **~~project tracker** — project tracking tools |
| 17 | - **~~CRM** — CRM tools |
| 18 | - **~~knowledge base** — knowledge base tools |
| 19 | |
| 20 | If no MCP sources are connected: |
| 21 | ``` |
| 22 | To search across your tools, you'll need to connect at least one source. |
| 23 | Check your MCP settings to add ~~chat, ~~email, ~~cloud storage, or other tools. |
| 24 | |
| 25 | Supported sources: ~~chat, ~~email, ~~cloud storage, ~~project tracker, ~~CRM, ~~knowledge base, |
| 26 | and any other MCP-connected service. |
| 27 | ``` |
| 28 | |
| 29 | ### 2. Parse the User's Query |
| 30 | |
| 31 | Analyze the search query to understand: |
| 32 | |
| 33 | - **Intent**: What is the user looking for? (a decision, a document, a person, a status update, a conversation) |
| 34 | - **Entities**: People, projects, teams, tools mentioned |
| 35 | - **Time constraints**: Recency signals ("this week", "last month", specific dates) |
| 36 | - **Source hints**: References to specific tools ("in ~~chat", "that email", "the doc") |
| 37 | - **Filters**: Extract explicit filters from the query: |
| 38 | - `from:` — Filter by sender/author |
| 39 | - `in:` — Filter by channel, folder, or location |
| 40 | - `after:` — Only results after this date |
| 41 | - `before:` — Only results before this date |
| 42 | - `type:` — Filter by content type (message, email, doc, thread, file) |
| 43 | |
| 44 | ### 3. Decompose into Sub-Queries |
| 45 | |
| 46 | For each available source, create a targeted sub-query using that source's native search syntax: |
| 47 | |
| 48 | **~~chat:** |
| 49 | - Use available search and read tools for your chat platform |
| 50 | - Translate filters: `from:` maps to sender, `in:` maps to channel/room, dates map to time range filters |
| 51 | - Use natural language queries for semantic search when appropriate |
| 52 | - Use keyword queries for exact matches |
| 53 | |
| 54 | **~~email:** |
| 55 | - Use available email search tools |
| 56 | - Translate filters: `from:` maps to sender, dates map to time range filters |
| 57 | - Map `type:` to attachment filters or subject-line searches as appropriate |
| 58 | |
| 59 | **~~cloud storage:** |
| 60 | - Use available file search tools |
| 61 | - Translate to file query syntax: name contains, full text contains, modified date, file type |
| 62 | - Consider both file names and content |
| 63 | |
| 64 | **~~project tracker:** |
| 65 | - Use available task search or typeahead tools |
| 66 | - Map to task text search, assignee filters, date filters, project filters |
| 67 | |
| 68 | **~~CRM:** |
| 69 | - Use available CRM query tools |
| 70 | - Search across Account, Contact, Opportunity, and other relevant objects |
| 71 | |
| 72 | **~~knowledge base:** |
| 73 | - Use semantic search for conceptual questions |
| 74 | - Use keyword search for exact matches |
| 75 | |
| 76 | ### 4. Execute Searches in Parallel |
| 77 | |
| 78 | Run all sub-queries simultaneously across available sources. Do not wait for one source before searching another. |
| 79 | |
| 80 | For each source: |
| 81 | - Execute the translated query |
| 82 | - Capture results with metadata (timestamps, authors, links, source type) |
| 83 | - Note any sources that fail or return errors — do not let one failure block others |
| 84 | |
| 85 | ### 5. Rank and Deduplicate Results |
| 86 | |
| 87 | **Deduplication:** |
| 88 | - Identify the same information appearing across sources (e.g., a decision discussed in ~~chat AND confirmed via email) |
| 89 | - Group related results together rather than showing duplicates |
| 90 | - Prefer the most authoritative or complete version |
| 91 | |
| 92 | **Ranking factors:** |
| 93 | - **Relevance**: How well does the result match the query intent? |
| 94 | - **Freshness**: More recent results rank higher for status/decision queries |
| 95 | - **Authority**: Official docs > wiki > chat messages for factual questions; conversations > docs for "what did we discuss" queries |
| 96 | - **Completeness**: Results with more context rank higher |
| 97 | |
| 98 | ### 6. Present Unified Results |
| 99 | |
| 100 | Format the response as a synthesized answer, not a raw list of results: |
| 101 | |
| 102 | **For factual/decision queries:** |
| 103 | ``` |
| 104 | [Direct answer to the question] |
| 105 | |
| 106 | Sources: |
| 107 | - [Source 1: brief description] (~~chat, #channel, date) |
| 108 | - [Source 2: brief description] (~~email, from person, date) |
| 109 | - [Source 3: brief description] (~~cloud storage, doc name, last modified) |
| 110 | ``` |
| 111 | |
| 112 | **For exploratory queries ("what do we know about X"):** |
| 113 | ``` |
| 114 | [Synthesized summary combining information from all sources] |
| 115 | |
| 116 | Found across: |
| 117 | - ~~chat: X relevant messages in Y channels |
| 118 | - ~~email: X relevant threads |
| 119 | - ~~cloud storage: X related documents |
| 120 | - [Other sources as applicable] |
| 121 | |
| 122 | Key sources: |
| 123 | - [Most important source with link/r |