{
  "markdown": "<p align=\"center\">\n  <a href=\"https://docfork.com\">\n    <picture>\n      <source srcset=\"logo_light.png\" media=\"(prefers-color-scheme: dark)\">\n      <source srcset=\"logo_dark.png\" media=\"(prefers-color-scheme: light)\">\n      <img src=\"logo_dark.png\" alt=\"Docfork\" height=\"40\" />\n    </picture>\n  </a>\n</p>\n\n> [!CAUTION]\n> **Docfork has shut down as of June 14, 2026.**\n> The MCP server, CLI, and all hosted endpoints are offline and will not return. API keys no longer work, and `npx dgrep setup` will fail. Thank you to everyone who used the service.\n\n<p align=\"center\">Up-to-date docs for AI coding agents.</p>\n\nAI agents hallucinate APIs, bloat context with stale docs, and write code against outdated signatures. Docfork serves up-to-date documentation directly in Cursor, Claude Code, and Windsurf.\n\n### Without Docfork\n\n```diff\n  app.use('/api/*', jwt({ secret: ... }))\n-                       ^^^ removed in Hono v4\n```\n\n### With Docfork\n\n```diff\n  app.use('/api/*', bearerAuth({ verifyToken: ... }))\n+                       ^^^ current API, Hono v4.2\n```\n\n## Get Started\n\n```bash\nnpx dgrep setup\n```\n\nInstalls the Docfork MCP server in your IDE. Detects your installed agents and writes the config file; sign in to Docfork on first use, no API key needed. Target one with `--agent claude-code` (also: cursor, codex, opencode, vscode, windsurf, amp, factory, zed).\n\nYour agent now has two tools:\n\n| Tool          | Returns                                                                |\n| ------------- | ---------------------------------------------------------------------- |\n| `search_docs` | Ranked documentation sections with titles, URLs, and relevance scores. |\n| `fetch_doc`   | Full rendered markdown content from a documentation URL.               |\n\nNo prompt suffix needed:\n\n```\nSet up server-side rendering with Next.js App Router.\n```\n\nOr search from the terminal:\n\n```bash\ndgrep search \"middleware redirect based on authentication\" -l vercel/next.js\ndgrep search \"server actions with forms\" -l vercel/next.js\n```\n\n[Quickstart →](https://docfork.com/docs/quickstart) · [dgrep docs →](https://docfork.com/docs/dgrep) · [CLI reference →](https://docfork.com/docs/reference/cli)\n\n### Your own docs\n\nIndex any public or private GitHub repository as a [custom library](https://docfork.com/docs/libraries#custom-libraries). Your internal APIs, SDKs, and runbooks become searchable by your agents — same pipeline as public libraries. [GitHub integration setup →](https://docfork.com/docs/integrations)\n\n## Teams\n\nFree: 1,000 requests/month per organization. For team rollout, commit the MCP config to your repo:\n\n```json\n// .cursor/mcp.json (committed to git, picked up by every engineer)\n{\n  \"mcpServers\": {\n    \"docfork\": {\n      \"url\": \"https://mcp.docfork.com/mcp\",\n      \"headers\": {\n        \"DOCFORK_API_KEY\": \"YOUR_TEAM_API_KEY\"\n      }\n    }\n  }\n}\n```\n\nShare API keys and [Cabinets](https://docfork.com/docs/cabinets) across your organization. Docfork doesn't store your code or prompts. [Security →](https://docfork.com/security) · [Pricing →](https://docfork.com/pricing)\n\n## MCP Setup\n\n> [!TIP]\n> Run `npx dgrep setup` to install automatically (use `--agent claude-code` to target one). Manual config below for other clients.\n\n**Cursor** — <a href=\"https://cursor.com/en/install-mcp?name=docfork&config=eyJ1cmwiOiJodHRwczovL21jcC5kb2Nmb3JrLmNvbS9tY3AifQ%3D%3D\"><img src=\"https://cursor.com/deeplink/mcp-install-dark.svg\" height=\"20\" alt=\"Add to Cursor\"/></a>\n\n```json\n{\n  \"mcpServers\": {\n    \"docfork\": {\n      \"url\": \"https://mcp.docfork.com/mcp\",\n      \"headers\": {\n        \"DOCFORK_API_KEY\": \"YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\n**Claude Code**\n\n```bash\nclaude mcp add --transport http docfork https://mcp.docfork.com/mcp/oauth\n```\n\n**OpenCode**\n\n```jsonc\n{\n  \"mcp\": {\n    \"docfork\": {\n      \"type\": \"remote\",\n      \"url\": \"https://mcp.docfork.com/mcp\",\n      \"headers\": { \"DOCFORK_API_KEY\": \"YOUR_API_KEY\" },\n      \"enabled\": true,\n    },\n  },\n}\n```\n\nDon't see your client? [Setup guides for all 29 supported clients →](https://docfork.com/docs/mcp/setup)\n\n**OAuth Authentication**\n\nDocfork supports [MCP OAuth specs](https://modelcontextprotocol.io/specification/latest/basic/authorization). Change your endpoint to use OAuth:\n\n```diff\n- \"url\": \"https://mcp.docfork.com/mcp\"\n+ \"url\": \"https://mcp.docfork.com/mcp/oauth\"\n```\n\n_Note: OAuth is for remote HTTP connections only. [View full OAuth guide →](https://docfork.com/docs/authentication#oauth-20)_\n\n## Agent Rule\n\nAdd a rule so your agent calls Docfork MCP automatically. [Full rule and IDE-specific setup →](https://docfork.com/docs/mcp/best-practices)\n\n> [!NOTE]\n> **[Add Rule to Cursor (One-Click)](https://cursor.com/link/rule?name=docfork-policy&text=When%20writing%20or%20debugging%20code%20that%20involves%20third-party%20libraries%2C%20frameworks%2C%20or%20APIs%2C%20use%20Docfork%20MCP%20%60search_docs%60%20and%20%60fetch_doc%60%20tools%20rather%20than%20relying%20on%20training%20data.%0A%0A%2A%2ATwo%20defaults%20to%20follow%20every%20time%3A%2A%2A%0A-%20Start%20%60library%60%20with%20a%20short%20name%20or%20keyword%20%28e.g.%2C%20%60nextjs%60%2C%20%60zod%60%29.%20Use%20the%20%60owner%2Frepo%60%20from%20the%20result%20URL%20for%20follow-up%20calls%2C%20never%20guess%20it%20upfront.%0A-%20After%20finding%20a%20relevant%20result%2C%20call%20%60fetch_doc%60%20to%20get%20the%20full%20content.%20Search%20results%20are%20summaries%20only.%0A%0ASkip%20Docfork%20when%3A%0A-%20Language%20built-ins%2C%20general%20algorithms%2C%20syntax%20stable%20across%20versions%0A-%20Code%20or%20docs%20the%20user%20has%20already%20provided%20in%20context%0A%0AWhen%20uncertain%2C%20default%20to%20using%20Docfork.)**\n\n**Claude Code** — add to your `CLAUDE.md`:\n\n```markdown\n## Docfork policy\n\nUse Docfork MCP `search_docs` and `fetch_doc` tools for library/API docs, setup, and configuration questions.\n\n- Start `library` with a short name or keyword (e.g., `nextjs`, `zod`). Use the `owner/repo` from the result URL for follow-up calls, never guess it upfront.\n- After finding a relevant result, call `fetch_doc` to get the full content. Search results are summaries only.\n- Prefer Docfork results over training data when they conflict.\n```\n\n<details>\n<summary>Full rule (all clients)</summary>\n\n```markdown\nWhen writing or debugging code that involves third-party libraries, frameworks, or APIs, use Docfork MCP `search_docs` and `fetch_doc` tools rather than relying on training data.\n\n**Two defaults to follow every time:**\n\n- Start `library` with a short name or keyword (e.g., `nextjs`, `zod`). Use the `owner/repo` from the result URL for follow-up calls, never guess it upfront.\n- After finding a relevant result, call `fetch_doc` to get the full content. Search results are summaries only.\n\nSkip Docfork when:\n\n- Language built-ins, general algorithms, syntax stable across versions\n- Code or docs the user has already provided in context\n\nWhen uncertain, default to using Docfork.\n```\n\n</details>\n\n## FAQ\n\n**How is Docfork different from Context7?**\nBoth provide MCP servers and CLIs for searching library documentation. Here are the key differences:\n\n- **Stack scoping.** `dgrep init` reads your `package.json` and scopes all searches to your declared dependencies. Cabinets let you version-pin those libraries across a team.\n- **Resolve once, search many.** `dgrep init` resolves package names to canonical identifiers once and caches the mapping in `.dgrep/config.json`. No per-query resolution step.\n- **Hybrid search.** Semantic search and BM25 run in parallel, fused via Reciprocal Rank Fusion. AST-aware chunking preserves function boundaries.\n\n**Does Docfork store my code or prompts?**\nYour code and prompts never leave your machine. At search time, only the query and library name are sent to Docfork — queries are not stored. Indexed documentation content lives in an upstream vector store; private library content is end-to-end encrypted and deleted atomically when you remove the library. [Security →](https://docfork.com/security)\n\n**What libraries are supported?**\nDocfork maintains a curated catalog of popular frameworks. Add any public or private GitHub repository as a custom library. [Add custom libraries →](https://docfork.com/docs/libraries#custom-libraries)\n\n## Docs\n\n- [Quickstart](https://docfork.com/docs/quickstart)\n- [How Docfork Works](https://docfork.com/docs/how-it-works)\n- [dgrep CLI](https://docfork.com/docs/dgrep)\n- [Docfork MCP](https://docfork.com/docs/mcp)\n- [Libraries](https://docfork.com/docs/libraries)\n- [Cabinets](https://docfork.com/docs/cabinets)\n- [Troubleshooting](https://docfork.com/docs/troubleshooting)\n\n## Community\n\n- **[Changelog](https://docfork.com/changelog)**\n- **[X (Twitter)](https://x.com/docfork_ai)**\n- Found an issue? [Open a GitHub issue](https://github.com/docfork/docfork/issues) or [contact us](mailto:support@docfork.com).\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=docfork/docfork&type=Date)](https://www.star-history.com/#docfork/docfork&Date)\n\n## License\n\nMIT\n",
  "bytes": 9069,
  "sha": "58f845dfeb220bb9d979523e8bf80373ebb0aad4935f824f049ec66703c54400",
  "repo_slug": "docfork/docfork",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_docfork_docfork_f9f84365/readme"
}