{"id":36933598,"url":"https://github.com/docfork/docfork","last_synced_at":"2026-04-19T09:06:20.705Z","repository":{"id":297536711,"uuid":"996770457","full_name":"docfork/docfork","owner":"docfork","description":"Docfork - Context for AI Coding Agents.","archived":false,"fork":false,"pushed_at":"2026-04-14T14:43:05.000Z","size":20909,"stargazers_count":459,"open_issues_count":2,"forks_count":30,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-14T16:03:38.434Z","etag":null,"topics":["agent","agents","documentation","mcp","modelcontextprotocol","vibe-coding"],"latest_commit_sha":null,"homepage":"https://docfork.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/docfork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-05T12:44:12.000Z","updated_at":"2026-04-14T15:59:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"b67ff834-4a41-4698-8ea2-dab45e254301","html_url":"https://github.com/docfork/docfork","commit_stats":null,"previous_names":["docfork/mcp","docfork/docfork-mcp","docfork/docfork"],"tags_count":35,"template":false,"template_full_name":null,"purl":"pkg:github/docfork/docfork","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docfork%2Fdocfork","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docfork%2Fdocfork/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docfork%2Fdocfork/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docfork%2Fdocfork/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/docfork","download_url":"https://codeload.github.com/docfork/docfork/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docfork%2Fdocfork/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31932102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T12:37:54.787Z","status":"ssl_error","status_checked_at":"2026-04-17T12:37:25.095Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","agents","documentation","mcp","modelcontextprotocol","vibe-coding"],"created_at":"2026-01-13T09:00:28.180Z","updated_at":"2026-04-19T09:06:20.676Z","avatar_url":"https://github.com/docfork.png","language":"TypeScript","funding_links":[],"categories":["MCP Servers","TypeScript","MCP \u0026 Model Context Protocol"],"sub_categories":["Software Development","Trending MCP Servers"],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://docfork.com\"\u003e\n    \u003cpicture\u003e\n      \u003csource srcset=\"logo_light.png\" media=\"(prefers-color-scheme: dark)\"\u003e\n      \u003csource srcset=\"logo_dark.png\" media=\"(prefers-color-scheme: light)\"\u003e\n      \u003cimg src=\"logo_dark.png\" alt=\"Docfork\" height=\"40\" /\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003eContext for AI Coding Agents.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://docfork.com\"\u003e\u003cimg alt=\"Website\" src=\"https://img.shields.io/badge/Website-docfork.com-blue?style=flat-square\" /\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://www.npmjs.com/package/docfork\"\u003e\u003cimg alt=\"npm\" src=\"https://img.shields.io/npm/v/docfork?style=flat-square\u0026color=red\" /\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://www.npmjs.com/package/docfork\"\u003e\u003cimg alt=\"npm downloads\" src=\"https://img.shields.io/npm/dm/docfork?style=flat-square\" /\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://github.com/docfork/docfork\"\u003e\u003cimg alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/docfork/docfork?style=flat-square\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"demo.gif\" alt=\"Docfork demo\" /\u003e\n\u003c/p\u003e\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 --cursor\n```\n\nInstalls the Docfork MCP server in your IDE. Detects your dependencies, provisions an API key, and writes the config file. Also supports `--claude` and `--opencode`.\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\u003e [!TIP]\n\u003e Run `npx dgrep setup --cursor` (or `--claude`, `--opencode`) to install automatically. Manual config below for other clients.\n\n**Cursor** — \u003ca href=\"https://cursor.com/en/install-mcp?name=docfork\u0026config=eyJ1cmwiOiJodHRwczovL21jcC5kb2Nmb3JrLmNvbS9tY3AifQ%3D%3D\"\u003e\u003cimg src=\"https://cursor.com/deeplink/mcp-install-dark.svg\" height=\"20\" alt=\"Add to Cursor\"/\u003e\u003c/a\u003e\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\u003e [!NOTE]\n\u003e **[Add Rule to Cursor (One-Click)](https://cursor.com/link/rule?name=docfork-policy\u0026text=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\u003cdetails\u003e\n\u003csummary\u003eFull rule (all clients)\u003c/summary\u003e\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\u003c/details\u003e\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\u0026type=Date)](https://www.star-history.com/#docfork/docfork\u0026Date)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdocfork%2Fdocfork","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdocfork%2Fdocfork","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdocfork%2Fdocfork/lists"}