| name | context7 |
| description | Retrieve up-to-date documentation for software libraries, frameworks, and components via the Context7 API. This skill should be used when looking up documentation for any programming library or framework, finding code examples for specific APIs or features, verifying correct usage of library functions, or obtaining current information about library APIs that may have changed since training. |
Context7
Overview
This skill enables retrieval of current documentation for software libraries and components. Prefer the Context7 MCP tools (mcp__plugin_compound-engineering_context7__resolve-library-id and mcp__plugin_compound-engineering_context7__query-docs) when they are available — they handle auth, rate limits, and error handling natively. Use the curl workflow below only when the MCP tools are not loaded.
Workflow
Step 1: Search for the Library
To find the Context7 library ID, query the search endpoint:
curl -s "https://context7.com/api/v2/libs/search?libraryName=LIBRARY_NAME&query=TOPIC" | jq '.results[0]'
Parameters:
libraryName (required): The library name to search for (e.g., "react", "nextjs", "fastapi", "axios")
query (required): A description of the topic for relevance ranking
Response fields:
id: Library identifier for the context endpoint (e.g., /websites/react_dev_reference)
title: Human-readable library name
description: Brief description of the library
totalSnippets: Number of documentation snippets available
After step 1: verify the results array is non-empty before proceeding. If jq '.results' returns [] or null, the library was not found — try a different libraryName or broader query instead of proceeding with a null ID.
Step 2: Fetch Documentation
To retrieve documentation, use the library ID from step 1:
curl -s "https://context7.com/api/v2/context?libraryId=LIBRARY_ID&query=TOPIC&type=txt"
Parameters:
libraryId (required): The library ID from search results
query (required): The specific topic to retrieve documentation for
type (optional): Response format - json (default) or txt (plain text, more readable)
Examples
React hooks documentation
curl -s "https://context7.com/api/v2/libs/search?libraryName=react&query=hooks" | jq '.results[0].id'
curl -s "https://context7.com/api/v2/context?libraryId=/websites/react_dev_reference&query=useState&type=txt"
Next.js routing documentation
curl -s "https://context7.com/api/v2/libs/search?libraryName=nextjs&query=routing" | jq '.results[0].id'
curl -s "https://context7.com/api/v2/context?libraryId=/vercel/next.js&query=app+router&type=txt"
FastAPI dependency injection
curl -s "https://context7.com/api/v2/libs/search?libraryName=fastapi&query=dependencies" | jq '.results[0].id'
curl -s "https://context7.com/api/v2/context?libraryId=/fastapi/fastapi&query=dependency+injection&type=txt"
Tips
- Use
type=txt for more readable output
- Use
jq to filter and format JSON responses
- Be specific with the
query parameter to improve relevance ranking
- If the first search result is not correct, check additional results in the array
- URL-encode query parameters containing spaces (use
+ or %20)
- No API key is required for basic usage (rate-limited)