Agent Skills

slack-search

Use when locating messages, files, channels, or people across Slack, or gathering context before answering, with the search MCP tools (slack_search_public, slack_search_public_and_private, slack_search_channels, slack_search_users). Covers search modifiers (in:, from:, before:), file-type filters, natural-language vs. keyword search, and reading results in context.

Install

npx skills add https://github.com/slackapi/slack-skills-plugin --skill slack-search
SKILL.md

Slack Search

This skill provides guidance for effectively searching Slack to find messages, files, and information.

When to Use

Apply this skill whenever you need to find information in Slack, including when a user asks you to locate messages, conversations, files, or people, or when you need to gather context before answering a question about what's happening in Slack.

Search Tools Overview

Tool Use When
slack_search_public Searching public channels only. Does not require user consent.
slack_search_public_and_private Searching all channels including private, DMs, and group DMs. Requires user consent.
slack_search_channels Finding channels by name or description.
slack_search_users Finding people by name, email, or role.

Search Strategy

Start Broad, Then Narrow

  1. Begin with a simple keyword or natural language question.
  2. If too many results, add filters (in:, from:, date ranges).
  3. If too few results, remove filters and try synonyms or related terms.

Choose the Right Search Mode

  • Natural language questions (e.g., "What is the deadline for project X?"): Best for fuzzy, conceptual searches where you don't know exact keywords.
  • Keyword search (e.g., project X deadline): Best for finding specific, exact content.

Use Multiple Searches

Don't rely on a single search. Break complex questions into smaller searches:

  • Search for the topic first
  • Then search for specific people's contributions
  • Then search in specific channels

Search Modifiers Reference

Location Filters

  • in:channel-name: Search within a specific channel
  • in:<#C123456>: Search in channel by ID
  • -in:channel-name: Exclude a channel
  • in:<@U123456> or in:@username: Search in DMs with a user

User Filters

  • from:<@U123456>: Messages from a specific user (by ID)
  • from:username: Messages from a user (by Slack username)
  • to:<@U123456>: Messages sent to a specific user
  • to:me: Messages sent directly to you
  • creator:@username: Canvases created by a specific person

Content Filters

  • is:thread: Only threaded messages
  • is:saved: Only your saved messages
  • has:pin: Pinned messages
  • has:link: Messages containing links
  • has:file: Messages with file attachments
  • has::emoji:: Messages with a specific reaction
  • hasmy::emoji:: Messages you reacted to with a specific reaction

Date Filters

  • before:YYYY-MM-DD: Messages before a date
  • after:YYYY-MM-DD: Messages after a date
  • on:YYYY-MM-DD: Messages on a specific date
  • during:month: Messages during a specific month (e.g., during:january)

Text Matching

  • "exact phrase": Match an exact phrase
  • -word: Exclude messages containing a word
  • wild*: Wildcard matching (minimum 3 characters before *)

File Search

To search for files, set the content_types="files" parameter and use a type: filter in the query:

  • type:images, type:documents, type:pdfs, type:spreadsheets, type:presentations
  • type:canvases, type:lists, type:emails, type:audio, type:videos

Example: content_types="files" type:pdfs budget after:2025-01-01

All the standard modifiers above (in:, from:, dates, etc.) work with file searches too.

Useful Parameters

Beyond the query string, the search tools accept parameters that materially improve results:

  • sort: score (relevance, default) or timestamp (newest first); pair with sort_dir (asc/desc).
  • content_types: messages (default) or files.
  • only_my_channels: restrict to channels you're a member of.
  • limit: results per page (capped at 20); paginate with the returned cursor.

Following Up on Results

After finding relevant messages:

  • Use slack_read_thread to get the full thread context for any threaded message.
  • Use slack_read_channel with oldest/latest timestamps to read surrounding messages for context.
  • Use slack_read_user_profile to identify who a user is when their ID appears in results.
  • Use slack_read_file to read the contents of a file surfaced by a file search.
  • Use slack_list_channel_members to see who is in a channel you found.

Common Pitfalls

  • Boolean operators don't work. AND, OR, NOT are not supported. Use spaces (implicit AND) and - for exclusion. (Repeating the same modifier, e.g. two from:, ORs those values together.)
  • Parentheses don't work. Don't try to group search terms with ().
  • Search is not real-time. Very recent messages (last few seconds) may not appear in search results. Use slack_read_channel for the most recent messages.
  • Private channel access. Use slack_search_public_and_private when you need to include private channels, but note this requires user consent.

Notes

  • Scope: this skill owns searching workspace content: messages, files, channels, and people inside Slack. To search and read the official Slack platform documentation at docs.slack.dev (conceptual and how-to questions about Slack features), use the slack:slack-docs skill instead.

Related skills

entra-app-registrationmicrosoft606KGuides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.azure-messagingmicrosoft595KTroubleshoot and resolve issues with Azure Messaging SDKs for Event Hubs and Service Bus. Covers connection failures, authentication errors, message processing issues, and SDK configuration problems. WHEN: event hub SDK error, service bus SDK issue, messaging connection failure, AMQP error, event processor host issue, message lock lost, message lock expired, lock renewal, lock renewal batch, send timeout, receiver disconnected, SDK troubleshooting, azure messaging SDK, event hub consumer, servicentra-agent-idmicrosoft328KProvision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmi_path, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmi_path token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registsupabasesupabase298KUse when doing ANY task involving Supabase. Triggers: Supabase products (Database, Auth, Edge Functions, Realtime, Storage, Vectors, Cron, Queues); client libraries and SSR integrations (supabase-js, @supabase/ssr) in Next.js, React, SvelteKit, Astro, Remix; auth issues (login, logout, sessions, JWT, cookies, getSession, getUser, getClaims, RLS); Supabase CLI or MCP server; schema changes, migrations, declarative schemas, security audits, Postgres extensions (pg_graphql, pg_cron, pg_vector); deb

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers