glean-tools-guide
Original:🇺🇸 English
Translated
Use when Glean MCP tools are available and you need guidance on which tool to use, how to format queries, or best practices for enterprise search. This skill provides tool selection logic and query optimization for Glean integrations. Auto-triggers when mcp__glean tools are being considered.
2installs
Sourcegleanwork/claude-plugins
Added on
NPX Install
npx skill4agent add gleanwork/claude-plugins glean-tools-guideTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Glean Tools Selection Guide
This skill provides guidance on selecting and using Glean MCP tools effectively.
Skills vs Agents vs Commands
This plugin uses three component types:
- Skills (like this one): Auto-triggered guidance that helps Claude select the right tools
- Agents (e.g., ): Autonomous workers spawned for complex multi-step tasks
enterprise-searcher - Commands (e.g., ): User-triggered structured workflows
/glean-search:search
Skills provide knowledge; agents do work; commands orchestrate workflows.
Tool Naming Convention
Glean MCP tools follow the pattern:
mcp__glean_[server-name]__[tool]Where is dynamic and configured per user (e.g., , , ). The tool suffix is always consistent. When invoking tools, use whatever Glean server is available in your tool list.
[server-name]defaultproductionacmeAvailable Tools Overview
| Tool Suffix | Purpose | Use When |
|---|---|---|
| Document discovery | Finding docs, wikis, policies, specs |
| People lookup | Finding people, org chart, teams |
| Meeting search | Finding meetings, transcripts, decisions |
| Email search | Finding emails, attachments |
| Code discovery | Finding internal code, commits |
| Activity feed | Finding your recent actions and interactions |
| Full content | Reading complete document by URL |
| AI synthesis | Complex analysis across sources |
Tool Selection Decision Tree
User question about...
├── People, "who", org chart → employee_search
├── Meetings, decisions, action items → meeting_lookup
├── Emails, attachments → gmail_search
├── Internal code, commits → code_search
├── "My activity", "what have I done", recent actions → user_activity
├── Documents, policies, specs → search
├── Need full document content → read_document (with URL)
└── Complex multi-source analysis → chatCritical Rules
1. Never Use Regular Search for People
# WRONG
search "John Smith"
# CORRECT
employee_search "John Smith"2. Search → Read Workflow
When users need document details:
- First: to find documents
search - Then: with URL from results
read_document
3. Use Chat for Synthesis
When the question requires reasoning across multiple sources:
chat "What are our authentication best practices based on recent RFCs and security policies?"Query Filter Reference
Document Search (search) - Structured Parameters
The tool uses separate parameters (not inline query filters):
search| Parameter | Type | Description |
|---|---|---|
| string | Keywords to find documents (required) |
| string | Filter by document creator ( |
| string | Filter by who updated/commented/created ( |
| string | Filter by update date ( |
| string | Documents created after date ( |
| string | Documents created before date ( |
| enum | Filter by datasource (e.g., |
| enum | Filter by type: |
| string | Filter by Slack channel name |
| boolean | Return all matching results (use for "all", "each", "every" requests) |
| boolean | Sort by newest first (only when user wants "latest" or "most recent") |
Code Search Filters (code_search) - Inline Query Syntax
Code search uses inline filters in the query string:
Person Filters:
- or
owner:"person name"- Filter by commit creatorowner:me - or
from:"person name"- Filter by code file/commit updaterfrom:me
Date Filters:
- - Filter by update date
updated:today|yesterday|past_week|past_month - - Commits/files changed after date
after:YYYY-MM-DD - - Commits/files changed before date
before:YYYY-MM-DD
Employee Search Filters (employee_search) - Inline Query Syntax
- - Find direct reports (NOT for finding who someone reports to)
reportsto:"manager name" - - People who started after date
startafter:YYYY-MM-DD - - People who started before date
startbefore:YYYY-MM-DD - - Filter by role type
roletype:"individual contributor"|"manager" - - Sort results
sortby:hire_date_ascending|hire_date_descending|most_reports
Meeting Lookup Filters (meeting_lookup) - Inline Query Syntax
Important: meeting_lookup works best with natural language queries. Date filter syntax does NOT work reliably.
Natural language dates (recommended):
- "standup last week" - Meetings from last week
- "design review past 2 weeks" - Recent meetings
- "1:1 with John tomorrow" - Future meetings
- "team sync yesterday" - Yesterday's meetings
Other filters that work:
- - Filter by attendees
participants:"name" - - Filter by meeting subject/title
topic:"subject" - - Include meeting content/transcript
extract_transcript:"true"
Note: Inline date filters (, ) do not work reliably with meeting_lookup. Use natural language dates instead.
after:before:Gmail Search Filters (gmail_search) - Inline Query Syntax
- - Filter by sender
from:"person"|"email@domain.com"|"me" - - Filter by recipient
to:"person"|"email@domain.com"|"me" - - Filter by subject line
subject:"text" - - Filter by attachment type
has:attachment|document|spreadsheet|presentation - - Filter by email status
is:important|starred|read|unread|snoozed - - Filter by folder/label
label:INBOX|SENT|TRASH|DRAFT|SPAM - /
after:YYYY-MM-DD- Date rangebefore:YYYY-MM-DD
User Activity Parameters (user_activity)
The tool uses date range parameters (not query filters):
user_activity- - Start date in YYYY-MM-DD format (inclusive, required)
start_date - - End date in YYYY-MM-DD format (exclusive, required)
end_date
Use for: standup notes, weekly summaries, 1:1 prep, finding documents you touched but forgot.
Example Tool Calls
These examples show the correct syntax for each tool type.
Search (Structured Parameters)
Pass filters as separate parameters, not in the query string:
search(query="authentication RFC", app="confluence", updated="past_month")
search(query="API design", owner="me", sort_by_recency=true)
search(query="onboarding guide", from="John Smith", after="2024-01-01")Code Search (Inline Filters)
Include filters directly in the query string:
code_search("authentication handler owner:me updated:past_week")
code_search("payment processor after:2024-06-01 before:2024-12-01")
code_search("API endpoint from:\"Jane Doe\"")Employee Search (Inline Filters)
Include filters directly in the query string:
employee_search("engineering manager reportsto:\"VP Engineering\"")
employee_search("backend engineer startafter:2024-01-01")
employee_search("data scientist roletype:\"individual contributor\"")Meeting Lookup (Natural Language + Inline Filters)
Use natural language for dates; inline filters for other criteria:
meeting_lookup("my meetings today extract_transcript:\"true\"")
meeting_lookup("standup last week participants:\"John Smith\"")
meeting_lookup("design review past 2 weeks topic:\"architecture\"")Note: Date filters (, ) are documented but don't work reliably in practice. Use natural language dates instead ("today", "yesterday", "last week", "past 2 weeks").
after:before:User Activity (Structured Parameters)
Pass date range as separate parameters:
user_activity(start_date="2024-01-08", end_date="2024-01-15")Filter Best Practices
Structured vs Inline Filters:
- uses structured parameters - pass filters as separate tool arguments
search - ,
code_search,employee_search,gmail_searchuse inline filters in the query stringmeeting_lookup
When to Use Date Filters:
- Use for relative timeframes ("last week", "past month")
updated: - Use /
after:for date ranges ("between Jan and March", "since 2024")before: - Avoid date filters for "latest" or "recent" without specific timeframe
- For , prefer natural language dates over inline filters
meeting_lookup
Person Filter Guidelines:
- Use quotes for multi-word names:
from:"John Smith" - Use for document creators,
owner:for broader involvementfrom: - Use when user refers to themselves
me
Search Strategy:
- Start broad, then narrow with filters if too many results
- For : add filter parameters to narrow results
search - For other tools: add inline filters to the query string
- Use the parameter on
exhaustivefor exhaustive results ("all", "each", "every")search
Common Pitfalls:
- Don't use with future dates
after: - For , pass
searchandchannelas separate parametersapp - Quote multi-word filter values in inline syntax:
from:"John Smith"
Best Practices
- Cite sources: Always include URLs so users can verify
- Start broad, then narrow: Use filters to refine if too many results
- Combine signals: For expertise, check code + docs + meetings
- Respect permissions: Results are filtered by user access
- Note when empty: No results is useful information
Related Commands
Point users to structured workflows when appropriate:
- - Quick search
/glean-search:search - - Expertise discovery
/glean-people:find-expert - - Return from time off
/glean-meetings:catch-up - - Meeting preparation
/glean-meetings:meeting-prep - - Stakeholder mapping
/glean-people:stakeholders - - Team onboarding
/glean-docs:onboarding - - Spec verification
/glean-docs:verify-rfc