Free MCP server: index a repo's files (free) into the live x402-codesearch Worker so it can be semantically searched. Open funnel twin of the paid x402-gated codesearch HTTP API.
Single tool 'index_code' has a well-structured schema with proper Zod validation and comprehensive description (450+ chars). Naming is clear and verb-forward. However, the tool lacks output schema documentation, error handling guidance is minimal, and the description, while detailed, conflates two separate concerns (free indexing vs. paid search) in a way that may confuse LLM tool selection. Parameter descriptions are present and typed, but the tool's asymmetric design (exposes only half the API) creates composition friction.
Index a repo's files into the live x402-codesearch Worker (https://x402-codesearch-poc.theliminalguy.workers.dev) so they become semantically searchable: each file is chunked, embedded via Workers AI, and upserted into that repoId's Vectorize index. Free, unauthenticated MCP tool — no payment required to index. IMPORTANT: this tool only calls the free POST /index endpoint. The matching semantic search step (POST /search on the same Worker) is real but x402-gated at $0.01 USDC on Base per query, and depends on Cloudflare Vectorize + Workers AI bindings that have no free or local equivalent — so it is NOT exposed here. To actually search a repo you've indexed with this tool, call POST https://x402-codesearch-poc.theliminalguy.workers.dev/search directly with an x402-aware HTTP client (e.g. x402-fetch / x402-axios) and a funded Base wallet, passing { repoId, query }.
Output schema not documented. Tool returns JSON with repoId, filesIndexed, chunksIndexed, and a note field, but no formal schema is declared in the tool definition or README. LLMs cannot plan downstream calls without knowing the response structure.
Error handling lacks recovery guidance. CodesearchApiError is caught and returned with HTTP status, but no actionable next steps are provided. E.g., 'Worker timeout, retry in 30s' or 'Invalid repoId format, must be alphanumeric + hyphens' would guide LLM recovery.
Tool description conflates two separate concerns: free indexing (this tool) and paid search (external API). The 450+ char description spends 60% explaining what the tool does NOT do. This creates ambiguity about when to call it. Consider splitting into a concise 'what it does' (index files) and a separate 'limitations' section.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No validation or constraint documentation for repoId parameter. The description says 'e.g. my-repo or owner/repo' but does not specify allowed characters, length limits, or format rules. LLMs may pass invalid IDs like 'my repo!' or 'my-repo-with-very-long-name-exceeding-limits'.
No pagination or result limits documented. The tool accepts an unbounded array of files. If an LLM passes 10,000 files, the Worker may timeout or reject the request. Add max file count and document chunking behavior.