react-native-docs-mcp
Local semantic search over React Native docs for AI agents — no API key
Documentation
React Native Docs MCP Server
AI-powered semantic search over React Native documentation for Claude, Cursor, and other MCP clients.
Looking for React docs instead? See react-docs-mcp.
🚀 Installation (One Command)
Claude Code
claude mcp add --transport stdio react-native-docs -- npx react-native-docs-mcp
Claude Desktop
Edit: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"react-native-docs": {
"command": "npx",
"args": ["-y", "react-native-docs-mcp"]
}
}
}
Cursor
Settings → Cursor settings → Tools and MCP → Add server:
{
"mcpServers": {
"react-native-docs": {
"command": "npx",
"args": ["-y", "react-native-docs-mcp"]
}
}
}
That's it! Restart your editor and ask about React Native.
Features
- 🔑 No API Key: Unlike hosted docs services (Context7, GitMCP), everything runs on your machine — no account, no key, no rate limits
- 🔌 Works Offline: Clones the official react-native-website docs repo once, then searches locally — no network calls at query time
- 🔍 Semantic Search: AI-powered search using embeddings for conceptual matches
- ⚡ Fast Results: In-memory vector search with hybrid keyword+semantic ranking
- 📦 Zero Config: Works with
npx- no installation needed - 🤖 Local AI: Runs embeddings locally (no API costs)
- 📝 Concise Responses: Returns summaries instead of full documentation
- 🔄 Auto-sync: Pulls latest docs from the react-native-website repo automatically
- 📌 Version Pinning:
--docs-version=0.77scopes docs to the React Native release your app actually uses
Usage
Once configured, the server provides the following capabilities to AI agents:
Tools
search_react_native_docs
Search across React Native documentation.
Parameters:
query(required): Search query stringsection(optional): Filter by section (the-new-architecture, legacy, releases)limit(optional): Maximum number of results (default: 10, max: 50)
Example:
Search for "flexbox layout" in React Native docs
get_doc
Get a specific documentation page.
Parameters:
path(required): Document path (e.g., "getting-started", "the-new-architecture/using-codegen")full(optional): Return the full raw page instead of the ~1500 char summary (default: false)
Example:
Get the React Native flexbox documentation
Why full? The default summary is enough for most reference pages, but long guides — like "The New Architecture" migration docs, or a full native-modules walkthrough — can run well past 1500 chars, and the summary may stop before the part you actually need. Ask for the complete page when that happens:
Get the full page for the-new-architecture/using-codegen, I need every step
which calls get_doc with { "path": "the-new-architecture/using-codegen", "full": true }.
list_sections
List all available documentation sections.
update_docs
Pull latest documentation from the Git repository.
Docs version
By default this server indexes the always-current docs/ folder from the react-native-website repo — the same docs shown on reactnative.dev today. To pin it to a specific past release's frozen docs snapshot instead, pass --docs-version:
npx react-native-docs-mcp --docs-version=0.77
or set the REACT_NATIVE_DOCS_VERSION env var (the CLI flag wins if both are set). With Claude Code:
claude mcp add --transport stdio react-native-docs -- npx react-native-docs-mcp --docs-version=0.77
(Bare --version prints the package version, as you'd expect from any CLI.)
Why pin a version? If your app is running React Native 0.77 but the agent searches always-current docs, it can suggest an API that only exists in 0.86, or miss that something was renamed/removed since your version. Pinning --docs-version to match your react-native dependency's version keeps suggestions consistent with the APIs actually available in your app — useful when working on an app that's a few releases behind latest, or when debugging something version-specific (e.g. "did this New Architecture behavior change between 0.78 and 0.82?" — run two instances, one per version, and compare).
Only latest (the default) is fully verified against the current docs structure; older version snapshots are indexed best-effort with the same settings.
Resources
The server exposes documentation as resources with the URI pattern:
react-native-docs://{section}/{path}
Limitations
- Docs source: content is cloned from the unversioned
docs/folder in facebook/react-native-website, which is upstream's live editing source. It may occasionally be a few days ahead of the latest published release rather than pinned to a specific React Native version. - Sections: most React Native docs pages live flat at the root of
docs/with no meaningful section — onlythe-new-architecture,legacy, andreleasesare real subfolders. Thesectionfilter reliably narrows results only for those three; for everything else, search unfiltered. - Blog posts:
website/blog/is not indexed yet. - MDX rendering:
.mdx-only syntax (JSX component imports, admonitions) is stripped as best-effort plain text for search indexing, so snippets/summaries for some pages may include stray import lines.
Development
This package shares its engine with react-docs-mcp — development happens in that monorepo (this standalone repo is a read-only mirror of packages/react-native-docs-mcp/; please file issues there). This package's own source only configures the shared engine with React Native-specific defaults (src/index.ts) and is bundled standalone with tsup.
npm install
npm run build
npm run dev # run directly with tsx, no build step
License
MIT. React Native documentation content is © Meta Platforms, Inc. and licensed separately by the react-native-website project.