# Dry Codes > Dry Codes is an MCP server that indexes your GitHub repositories and surfaces code duplication, so AI coding agents and developers can find and reuse existing code instead of repeating it (DRY). Built by Maximilian Nussbaumer. ## What it does Dry Codes ingests the source of the repositories you connect (via a GitHub App or your signed-in token), builds an inverted token index plus pre-computed duplication hotspots, and exposes them through the Model Context Protocol. An AI agent (or a developer) can then search the codebase, list the worst duplication pairs, locate existing files, and compare two files before writing new code — turning "Don't Repeat Yourself" into something an agent can actually enforce. ## Key Features - Duplication hotspots: file pairs ranked by shared-bigram similarity, computed during indexing, filterable by repo, owner, extension, scope (code/docs), and intra- vs cross-repo. - Knowledge-base search: token-matched search across all indexed files with fuzzy matching and optional synonym enrichment. - File discovery: find files by name or path, and list indexed/unique files per owner or repo. - File comparison: diff two indexed files to judge whether duplication is worth consolidating. - Per-account MCP endpoints: each account creates scoped MCP endpoints from the dashboard, indexing only the repositories it owns. - Public union endpoint: a read-only MCP server over the union of all public indexed repositories. - GitHub App indexing: connect repositories, with scheduled incremental re-indexing that skips unchanged repos by commit SHA. ## MCP Access - Public MCP endpoint: https://dry.codes/mcp/public (Streamable HTTP) — the union of all public indexed repositories, no auth required. - Authenticated MCP endpoints: created per account in the dashboard, scoped to that account's repositories. - Tools: search_knowledge_base, list_dry_issues, find_file, list_files, list_unique_files, compare_files, dry_wand. ## Use Cases - Before writing new code, ask an agent to search for an existing implementation to reuse. - Audit a repository (or an entire org) for the worst duplication hotspots and prioritise refactors. - Keep shared configuration and utilities DRY across many repositories. - Give a coding agent org-wide code memory so it proposes changes where they belong. ## Links - Website: https://dry.codes - Pricing: https://dry.codes/pricing - Company: Maximilian Nussbaumer - GitHub: https://github.com/quotentiroler