The Pi MCP Adapter provides unified search across both MCP tools and Pi’s built-in tools (from extensions). This makes it easy to discover capabilities without knowing which server or extension provides them.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/nicobailon/pi-mcp-adapter/llms.txt
Use this file to discover all available pages before exploring further.
Basic search
Search for tools by name or description:Search behavior
OR matching (default)
Space-separated words are OR’d together:- Tools with “screenshot” OR
- Tools with “navigate” OR
- Tools with “click”
What gets searched
- Tool names (exact and fuzzy matches)
- Tool descriptions
- Case-insensitive
- Both MCP tools and Pi tools
No connection required: Search uses cached metadata, so it works even when servers are offline.
Advanced search
Regex patterns
Enable regex mode for complex patterns:get_file_contentsget_file_metadataget_directory_files
| Pattern | Matches |
|---|---|
^create_ | Tools starting with “create_“ |
_file$ | Tools ending with “_file” |
read|write | Tools containing “read” OR “write” |
chrome.*screenshot | ”chrome” followed by “screenshot” |
Filter by server
Limit search to a specific server:github server.
Compact results (no schemas)
Save tokens by hiding parameter schemas:Use compact mode when you need an overview. Use full mode (default) when you need to understand parameters.
Pi tools in search results
Search includes Pi’s built-in tools from extensions:- Prefixed with
[pi tool] - Listed first (before MCP tools)
- Show “No parameters (call directly)” instead of schemas
The
mcp tool itself is excluded from search results to avoid confusion.Use cases
Discover capabilities
Scenario: You want to interact with a database but don’t know which server provides that.Find tool variants
Scenario: Multiple servers provide similar functionality (e.g., screenshot tools).chrome_devtools_screenshotfirefox_screenshotplaywright_screenshot
Explore server capabilities
Scenario: You just added a new MCP server and want to see what it offers.new-server.
Tip: Use
mcp({ server: "name" }) instead for a cleaner tool list without search patterns.Check if tool exists
Scenario: You want to use a tool but aren’t sure of its exact name.github_search_repositoriesgithub_create_repositorygitlab_fork_repository
describe for details:
Tool name normalization
MCP tools often use hyphens (e.g.,resolve-library-id) but get prefixed with underscores (e.g., context7_resolve-library-id). Search handles this automatically:
Search for:
context7_resolve-library-id(original uses hyphens)context7_resolve_library_id(normalized)
Empty results
If no tools match your query:- Try broader terms (“database” instead of “postgresql”)
- Use OR terms (“read file document”)
- Check for typos
- Try regex patterns for flexible matching
Search vs List vs Describe
Choose the right mode for your needs:| Mode | When to Use | Example |
|---|---|---|
| Search | Don’t know which server has the tool | mcp({ search: "screenshot" }) |
| List | Know the server, want to see all its tools | mcp({ server: "github" }) |
| Describe | Know the tool name, need parameter details | mcp({ describe: "github_create_issue" }) |
- Search to discover → 2. Describe to understand → 3. Call to execute
Performance
Token efficiency
Search results consume tokens based on:- Number of matches
- Whether schemas are included
- Description length
| Result Type | Tokens per Tool |
|---|---|
| Compact (no schemas) | ~30-50 |
| Full (with schemas) | ~150-300 |
- 10 tools, compact: ~400 tokens
- 10 tools, full: ~2,000 tokens
Use
includeSchemas: false for initial exploration, then describe specific tools when needed.Search is instant
Search uses cached metadata, not live server connections:- No network calls
- No process spawning
- Millisecond response times
- Works offline
- At Pi startup (for eager/keep-alive servers)
- On first tool use (for lazy servers)
- Via
/mcp reconnect(manual refresh)
Integration with tool calling
After finding a tool through search, call it directly:Search with direct tools
If you’ve configured direct tools, search still includes them:- Direct tools (registered with Pi)
- Proxy tools (accessed via
mcp())
- Directly by name:
github_search_repositories({ query: "mcp" }) - Via proxy:
mcp({ tool: "github_search_repositories", args: '{"query": "mcp"}' })
Next steps:
- Learn about the mcp() proxy tool
- Configure direct tools
- Use commands to manage servers