Up-to-date code documentation for AI agents. Search indexed documentation for libraries, frameworks, and SDKs.
Docfork provides two well-named, action-verb tools (search_docs, fetch_doc) with detailed, LLM-optimized descriptions (250+ chars each). Both tools have complete input schemas with proper type definitions and parameter descriptions. However, output schemas are not explicitly documented in the source code, they are referenced implicitly in the tool descriptions but lack formal JSON Schema definitions. Tool descriptions include actionable guidance on when to use each tool, switching logic, and recovery paths, which is strong. The naming follows verb_noun convention clearly. Parameters are well-constrained (e.g., 'tokens' union type with bounds 100-10000). The descriptions exceed the 50-200 char baseline for LLM optimization and provide dependency hints ('After 2 searches...switch to fetch_doc'). Error handling guidance is present in descriptions but not formalized in schema. No security risks detected (tools are read-only, no credentials exposed). Tool composition is clean: search_docs discovers, fetch_doc retrieves, agents chain them naturally. Main gaps: (1) output schemas not formally declared, (2) no explicit error categorization or recovery paths in schema, (3) no pagination parameters despite fetch_doc potentially returning large content.
Retrieve full documentation content from a URL and return it as rendered markdown. Use this tool to get complete pages — including code examples, API signatures, and prose — from search_docs result URLs. - Pass a URL directly from search_docs results to retrieve that section's full content. - Trim the URL anchor or path to a parent directory to get a broader table of contents with section previews. - Returns rendered markdown that preserves code blocks, headings, and document structure. - Only works on Docfork-indexed documentation — use WebFetch for URLs not returned by search_docs. - If search_docs returns sparse or no results, try fetch_doc on the library's root documentation URL (e.g. https://github.com/owner/repo/tree/main/docs) to browse available content.
Search a library's indexed documentation and return relevant sections with titles, summaries, and URLs. Results are sourced from official, versioned documentation. Usage: - Be specific in your query. Include the feature, API, or concept you need. Good: "server-side rendering with App Router". Bad: "rendering". - The library parameter accepts a simple name (e.g., react, nextjs) or exact owner/repo for precision (e.g., vercel/next.js, TanStack/query). - When multiple library candidates appear, prefer exact name matches and official organizations over forks. - After 2 searches without finding the relevant section, switch to fetch_doc on the best result URL or the library's documentation root rather than searching again. - Use fetch_doc on result URLs to retrieve full documentation content.
Output schemas not formally documented. While tool descriptions mention 'returns rendered markdown' or 'returns relevant sections with titles, summaries, and URLs', there is no explicit JSON Schema definition for response structure. LLMs cannot programmatically extract field names or types.
No pagination or result limiting parameters. fetch_doc has no limit, max_length, or continuation token support. Large documentation pages could blow context windows. Description advises 'trim URL to get broader view' but this is informal guidance, not a tool feature.
Error handling not formalized in schema. Descriptions include tactical hints ('If search_docs returns sparse...try fetch_doc on root URL') but tool schemas lack documented error responses, recovery codes, or categorization (retryable vs user-fixable vs fatal).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 78 | 2026-07-28+ | v2 |
| 2026-03-09 | B | 70 | - | v1 |
search_docs 'tokens' parameter uses union type with options ['dynamic', integer 100-10000, 'string']. The 'string' option is ambiguous, what string values are valid? This should be clarified or replaced with explicit enum values.