Selaa lähdekoodia

Update Context7 plugin for v2 API

- Update skill/agent/command to use new query-docs tool (replaces get-library-docs)
- Add query parameter usage for intelligent reranking
- Add version pinning support (e.g., /vercel/next.js/v15.1.8)
- Add tools and model metadata to agent
- Simplify docs to focus on workflow, not parameter details
- Add README.md with usage examples
Fahreddin Özcan 8 kuukautta sitten
vanhempi
sitoutus
c7ba9d4c43

+ 1 - 1
external_plugins/context7/.claude-plugin/plugin.json

@@ -2,6 +2,6 @@
   "name": "context7",
   "name": "context7",
   "description": "Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.",
   "description": "Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.",
   "author": {
   "author": {
-    "name": "Upstash"
+    "name": "Upstash "
   }
   }
 }
 }

+ 119 - 0
external_plugins/context7/README.md

@@ -0,0 +1,119 @@
+# Context7 Plugin
+
+Up-to-date, version-specific documentation and code examples for any library, directly in your AI coding assistant.
+
+## What is Context7?
+
+Context7 solves the problem of outdated training data and hallucinated APIs by providing real-time library documentation. Instead of relying on potentially outdated knowledge, Context7 fetches current documentation straight from source repositories.
+
+**Without Context7:**
+- Code examples based on outdated training data
+- Hallucinated APIs that don't exist
+- Generic answers for old package versions
+
+**With Context7:**
+- Current documentation from source repositories
+- Working code examples
+- Version-specific information
+- Intelligent query-based context selection
+
+## Available Tools
+
+### `resolve-library-id`
+
+Search and resolve library names to Context7-compatible library IDs.
+
+```
+Parameters:
+- libraryName: Library name to search for (e.g., "react", "next.js")
+- query: Your question for relevance ranking
+
+Returns:
+- id: Context7-compatible ID (e.g., "/vercel/next.js")
+- title: Display name
+- description: Short description
+- totalSnippets: Documentation coverage
+- benchmarkScore: Quality indicator (0-100)
+- versions: Available versions
+```
+
+### `query-docs`
+
+Fetch documentation with intelligent, query-based reranking.
+
+```
+Parameters:
+- libraryId: Context7-compatible library ID
+  - Format: /org/project (e.g., /vercel/next.js)
+  - With version: /org/project/version (e.g., /vercel/next.js/v15.1.8)
+- query: Specific question or task
+
+Features:
+- LLM-driven reranking based on query intent
+- Deduplicated snippet selection
+- Limited to 3 calls per question
+```
+
+## Usage
+
+### Automatic (Skill)
+
+The `documentation-lookup` skill triggers automatically when you:
+- Ask "how do I..." for any library
+- Need code generation with a specific library
+- Ask about setup or configuration
+- Mention any framework (React, Next.js, Vue, etc.)
+
+### Manual (Command)
+
+Use the `/context7:docs` command:
+
+```
+/context7:docs react hooks
+/context7:docs next.js how to set up authentication
+/context7:docs /vercel/next.js/v15.1.8 app router
+```
+
+### Agent
+
+Use the `docs-researcher` agent for focused documentation lookups that don't bloat the main conversation:
+
+```
+Spawn a docs-researcher agent to find React Query mutation examples
+```
+
+## Version Pinning
+
+For consistent, reproducible results, use version-specific library IDs:
+
+```
+/vercel/next.js/v15.1.8
+/facebook/react/v18.3.0
+/prisma/prisma/v5.0.0
+```
+
+## Examples
+
+**Basic usage:**
+```
+How do I set up authentication in Next.js?
+→ Automatically fetches Next.js auth documentation
+```
+
+**With specific version:**
+```
+/context7:docs /vercel/next.js/v15.1.8 middleware
+→ Fetches Next.js 15.1.8 middleware documentation
+```
+
+**Multiple libraries:**
+```
+How do I use Prisma with Next.js API routes?
+→ Fetches relevant docs from both Prisma and Next.js
+```
+
+## Links
+
+- [Context7 Website](https://context7.com)
+- [GitHub Repository](https://github.com/upstash/context7)
+- [Upstash](https://upstash.com)

+ 11 - 21
external_plugins/context7/agents/docs-researcher.md

@@ -1,6 +1,7 @@
 ---
 ---
 description: Fetch up-to-date library documentation to answer questions. Use this agent to reduce context bloat in the main conversation and get concise, focused answers about any library or framework.
 description: Fetch up-to-date library documentation to answer questions. Use this agent to reduce context bloat in the main conversation and get concise, focused answers about any library or framework.
-capabilities: ["documentation lookup", "code examples", "API reference", "library research"]
+tools: ["resolve-library-id", "query-docs"]
+model: sonnet
 ---
 ---
 
 
 # Context7 Documentation Agent
 # Context7 Documentation Agent
@@ -14,26 +15,15 @@ Lightweight agent for fetching library documentation without bloating the main c
 - Want concise answers without polluting main context
 - Want concise answers without polluting main context
 - Questions like "how do I...", "what's the API for...", "show me examples of..."
 - Questions like "how do I...", "what's the API for...", "show me examples of..."
 
 
-## Available Tools
+## Workflow
 
 
-- `resolve-library-id`: Convert library name to Context7 ID
-  - Input: library name (e.g., "react", "next.js", "prisma")
-  - Output: Context7-compatible ID (e.g., "/vercel/next.js")
+1. Call `resolve-library-id` with the library name and user's question
+2. Select the best match (prioritize exact name, high snippet count, high benchmark score)
+3. Call `query-docs` with the library ID and specific question
+4. Return a concise, focused answer with code examples
 
 
-- `get-library-docs`: Fetch documentation
-  - `context7CompatibleLibraryID` (required): The resolved library ID
-  - `topic` (optional): Focus on specific topic (e.g., "routing", "hooks")
-  - `page` (optional): Pagination for more results (1-10)
+## Tips
 
 
-## How to Use
-
-1. Use `resolve-library-id` with the library name
-2. Use `get-library-docs` with the resolved ID and optional topic
-3. Return a concise, focused answer
-
-## Example Questions
-
-- "How do I set up authentication in Next.js?"
-- "Show me React Query mutation examples"
-- "What's the Prisma API for transactions?"
-- "How do I configure Tailwind dark mode?"
+- Use version-specific IDs for pinning: `/vercel/next.js/v15.1.8`
+- Pass user's full question as `query` for better relevance
+- Limited to 3 `query-docs` calls per question

+ 14 - 17
external_plugins/context7/commands/docs.md

@@ -1,31 +1,28 @@
 ---
 ---
 description: Fetch up-to-date documentation and code examples for any library
 description: Fetch up-to-date documentation and code examples for any library
-argument-hint: <library> [topic]
+argument-hint: <library> [query]
 ---
 ---
 
 
 # Context7 Documentation Lookup
 # Context7 Documentation Lookup
 
 
-Fetch current, version-specific documentation straight from source repositories.
+Fetch current, version-specific documentation from source repositories.
 
 
 ## Arguments
 ## Arguments
 
 
-`$ARGUMENTS` = `<library> [topic]`
+`$ARGUMENTS` = `<library> [query]`
+
+- First word: library name (or direct library ID starting with `/`)
+- Remaining: your specific question or topic
 
 
 Examples:
 Examples:
-- `react hooks` → library="react", topic="hooks"
-- `next.js routing` → library="next.js", topic="routing"
-- `prisma` → library="prisma", topic=none
+- `react hooks`
+- `next.js authentication`
+- `/vercel/next.js/v15.1.8 app router`
 
 
 ## Steps
 ## Steps
 
 
-1. Parse arguments: first word = library, remaining = topic
-2. Call `resolve-library-id` with the library name
-3. Call `get-library-docs` with:
-   - `context7CompatibleLibraryID`: the resolved ID
-   - `topic`: the topic (if provided)
-4. Present documentation with code examples
-
-## Tips
-
-- If you know the exact library ID, use it directly: `/context7:docs /vercel/next.js routing`
-- Use `page` parameter (1-10) if initial results aren't sufficient
+1. Parse arguments: first word = library, remaining = query
+2. If library starts with `/`, use it directly as library ID
+3. Otherwise, call `resolve-library-id` with library name and query
+4. Call `query-docs` with the library ID and query
+5. Present documentation with code examples

+ 11 - 21
external_plugins/context7/skills/documentation-lookup/SKILL.md

@@ -5,19 +5,7 @@ description: Use when user needs code generation, setup/configuration steps, or
 
 
 # Context7 Documentation Skill
 # Context7 Documentation Skill
 
 
-Automatically fetch up-to-date, version-specific documentation and code examples straight from the source.
-
-## Why Use This
-
-Without Context7:
-- Code examples based on outdated training data
-- Hallucinated APIs that don't exist
-- Generic answers for old package versions
-
-With Context7:
-- Current documentation from source repositories
-- Working code examples
-- Version-specific information
+Fetch up-to-date, version-specific documentation and code examples from source repositories.
 
 
 ## When to Trigger
 ## When to Trigger
 
 
@@ -27,14 +15,16 @@ With Context7:
 - User needs API reference or examples
 - User needs API reference or examples
 - User mentions any framework: React, Next.js, Vue, Svelte, Express, Prisma, Tailwind, etc.
 - User mentions any framework: React, Next.js, Vue, Svelte, Express, Prisma, Tailwind, etc.
 
 
-## Available Tools
+## Workflow
 
 
-- `resolve-library-id`: Convert library name → Context7 ID
-- `get-library-docs`: Fetch docs with optional topic filter
+1. Call `resolve-library-id` with the library name and user's question
+2. Select the best match (prioritize exact name, high `totalSnippets`, high `benchmarkScore`)
+3. Call `query-docs` with the library ID and user's question
+4. Present code examples and explanations
 
 
-## How to Use
+## Tips
 
 
-1. Identify the library from user's question
-2. Call `resolve-library-id` with library name
-3. Call `get-library-docs` with resolved ID and topic (if specific)
-4. Present code examples and explanations
+- Use version-specific IDs for pinned versions: `/vercel/next.js/v15.1.8`
+- The `query` parameter improves result relevance - pass the user's full question
+- Limited to 3 `query-docs` calls per question to prevent context bloat
+- Check `versions` field from `resolve-library-id` for available versions