Install GitHits MCP to make Claude Code search real GitHub code, finding undocumented DuckDB C++ APIs for predicate pushdowns in extensions.
The Problem: Claude Code Says "Impossible" When It's Not
You're building a DuckDB extension. You need to implement predicate pushdowns—filtering, limiting, and projecting data at the API level instead of fetching everything and filtering locally. You know it's possible because DuckDB's own httpfs and postgres_scanner extensions do it. But the internal C++ APIs (TableFunctionSet, FunctionData, TableFilterSet, the bind/init/scan lifecycle with filter propagation) aren't documented anywhere.
You ask Claude Code. It tells you, confidently, that what you want isn't possible. Multiple times.
This is the gap. Claude Code is incredible at reading your codebase and writing production code—but it's only as good as the context you give it. When the APIs you need exist only in source code, not documentation, Claude can't find them.
The Solution: GitHits MCP Server
GitHits is a code search tool that searches actual GitHub code—millions of repos, real implementations, exact function signatures. It's not a documentation MCP. It's a code MCP.
The author of duckdb-web-archive (a DuckDB extension for querying Wayback Machine and Common Crawl) tried Context7 first. It fetched docs but everything was too high-level. The internal C++ extension APIs didn't exist in any documentation. They existed in DuckDB's own source code and community extensions.
GitHits changed everything. Once enabled as an MCP server in Claude Code, Claude could:
- Find
TableFunction::pushdown_complex_filterimplementations from DuckDB's own extensions - See exact function signatures and patterns from
postgres_scanner,httpfs, and community extensions - Understand how filter propagation works through the bind/init/scan lifecycle
Claude went from "this isn't possible" to showing exactly how to implement filter pushdown, limit pushdown, projection pushdown, and distinct pushdown.
How to Set It Up
- Join the GitHits waitlist at githits.com. Approval is quick.
- Get your API key from the GitHits dashboard.
-
Add the MCP server to your Claude Code config. In your
claude_code_settings.jsonor~/.claude/settings.json:
{
"mcpServers": {
"githits": {
"command": "npx",
"args": ["-y", "@githits/mcp-server"],
"env": {
"GITHITS_API_KEY": "your-api-key-here"
}
}
}
}
- Restart Claude Code. Now when you ask about undocumented APIs, Claude can search actual GitHub code.
When to Use GitHits vs. Other MCPs
- Context7 / documentation MCPs: Use when you need API docs, tutorials, or official reference material. Great for well-documented libraries.
- GitHits: Use when the APIs you need exist only in source code—internal APIs, extension APIs, undocumented features, or when you need to see real implementation patterns.
- Combined: Use both. Let documentation MCPs handle the high-level, and GitHits for the nitty-gritty implementation details.
The Takeaway
Claude Code is powerful, but it can't read what it can't see. When you hit a wall where Claude confidently says something is impossible, it's often a context problem—not a capability problem. MCP servers like GitHits bridge that gap by giving Claude access to real code implementations.
The next time Claude tells you something can't be done, ask yourself: Does Claude have access to the code that proves it can? If not, find an MCP server that does.
Try It Now
- Install GitHits MCP server
- Ask Claude Code: "Find examples of
TableFunction::pushdown_complex_filterin DuckDB extensions on GitHub" - Watch Claude go from "impossible" to implementation-ready
Source: flaky.build
Originally published on gentic.news

Top comments (0)