4.6 KiB
4.6 KiB
Tool Selection Guide
MCP server selection matrix and usage patterns for research tasks.
Available Tools
context7 - Library Documentation
Official documentation retrieval.
Functions:
resolve-library-id(name)— Get documentation identifierget-library-docs(id, topic)— Retrieve focused documentation
Best for:
- API references
- Official guides
- Configuration options
- Migration documentation
Optimization tips:
- Use specific topics (e.g., "authentication", "installation")
- Avoid overly broad queries
- Check version alignment
octocode - GitHub Intelligence
Repository and code search.
Functions:
packageSearch(name)— Find repository metadatagithubSearchCode(query)— Search for code patternsgithubSearchIssues(query)— Find issues and discussionsgithubViewRepoStructure(owner/repo)— Explore repository layout
Best for:
- Real code examples
- Community solutions
- Package discovery
- Troubleshooting via issues
Optimization tips:
- Use specific search queries with language qualifiers
- Check issue status (open vs closed)
- Look at recent activity for relevance
firecrawl - Web Documentation
Web content extraction.
Functions:
search(query)— Web search for documentationscrape(url, formats=['markdown'])— Extract page contentmap(url)— Discover site structure
Best for:
- Tutorials and guides
- Stack Overflow answers
- Blog posts and articles
- Benchmark reports
Optimization tips:
- Use
onlyMainContent=trueto reduce noise - Set
maxAgefor cache efficiency - Use
mapbefore deep crawling
Selection Matrix by Use Case
| Use Case | Primary | Secondary | Tertiary |
|---|---|---|---|
| Official docs | context7 | octocode | firecrawl |
| Troubleshooting | octocode issues | firecrawl community | context7 guides |
| Code examples | octocode repos | firecrawl tutorials | context7 examples |
| Technology evaluation | All parallel | Cross-reference | Validate |
| Package discovery | octocode | context7 | firecrawl |
| Performance research | firecrawl | octocode | context7 |
Execution Patterns
Parallel Execution
Run independent queries simultaneously:
await Promise.all([
context7.resolve(name),
octocode.packageSearch(name),
firecrawl.search(query)
]).then(consolidateResults)
Use when:
- Sources are independent
- Comprehensive coverage needed
- Time is limited
Sequential with Fallback
Try sources in order, fall back on failure:
context7 fails → octocode issues → firecrawl alternatives
Empty docs → broader topic → web search
Rate limit → alternate MCP → manual search guidance
Use when:
- Primary source usually sufficient
- Need to conserve API calls
- Specific answer expected
Progressive Refinement
Start broad, narrow based on results:
1. Package discovery (octocode.packageSearch)
2. Official docs (context7.resolve + get-library-docs)
3. Code examples if needed (octocode.githubSearchCode)
4. Community solutions if stuck (firecrawl.search)
Use when:
- Exploring unfamiliar territory
- Building comprehensive understanding
- Research question is evolving
Query Formulation
For context7
Topic: "authentication" ✓ Focused
Topic: "everything" ✗ Too broad
Topic: "jwt token refresh" ✓ Specific
For octocode
Code: "useAuth hook react" ✓ Specific pattern
Code: "authentication" ✗ Too broad
Issues: "error NEXT_PUBLIC_ env" ✓ Specific error
For firecrawl
Search: "hono vs express benchmark 2024" ✓ Specific, dated
Search: "best web framework" ✗ Too generic
Search: "nextjs 14 server actions guide" ✓ Version-specific
Error Handling
| Error | Recovery |
|---|---|
| Rate limit | Wait, try alternate tool |
| Not found | Broaden query, try different tool |
| Timeout | Retry with simpler query |
| Empty results | Check query formulation, try synonyms |
Tool Combination Patterns
Library Installation Research
1. octocode.packageSearch(name) → repo info, version
2. context7.resolve-library-id(name) → doc ID
3. context7.get-library-docs(id, "installation") → official guide
Error Resolution Research
1. octocode.githubSearchIssues(error_pattern) → related issues
2. context7.get-library-docs(id, "troubleshooting") → official fixes
3. firecrawl.search(error_message) → community solutions
Technology Comparison Research
Parallel for each option:
- context7 (official docs)
- octocode (GitHub activity, issues)
- firecrawl (benchmarks, case studies)
Then: Cross-reference, create matrix