Expo Docs MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Expo Docs MCP ServerSearch Expo docs for file-based routing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Expo Docs MCP Server
A Model Context Protocol (MCP) server that provides access to Expo documentation with advanced search and navigation capabilities.
Features
π Search Documentation: Search through Expo docs with section and version filtering
π Full Content Access: Get complete documentation pages by URL or path
π Browse Sections: List available documentation sections and topics
π οΈ API References: Access detailed API documentation for Expo SDK modules
π Quick Start Guides: Platform-specific getting started guides
π¦ Version Support: Access documentation for different SDK versions
πΎ Smart Caching: 1-week cache for optimal performance
π± Offline First: Downloads and indexes documentation locally for fast, reliable access
π Fuzzy Search: Advanced search with exact, partial, and fuzzy matching
Related MCP server: Expo Docs MCP Server
Installation
npm install expo-docs-mcpOr use with npx:
npx expo-docs-mcpConfiguration
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"expo-docs": {
"command": "npx",
"args": ["expo-docs-mcp"]
}
}
}Available Tools
1. search_expo_docs
Search through Expo documentation.
Parameters:
query(required): Search querysection(optional): Documentation section (home,guides,eas,reference,learn,versions)version(optional): SDK version (e.g.,latest,v51.0.0,v50.0.0)
2. get_expo_doc_content
Get the full content of a specific documentation page.
Parameters:
url(optional): Full URL of the documentation pagepath(optional): Path within docs (e.g.,guides/routing)version(optional): SDK version
3. list_expo_sections
List all available documentation sections and topics.
Parameters:
section(optional): Section to list contents forversion(optional): SDK version
4. get_expo_api_reference
Get API reference for a specific Expo SDK module.
Parameters:
module(required): Module name (e.g.,expo-camera,expo-location)version(optional): SDK version
5. get_expo_quick_start
Get quick start guide for Expo.
Parameters:
platform(optional): Target platform (ios,android,web,all)
Development
Setup
# Clone the repository
git clone https://github.com/ah2-io/expo-docs-mcp.git
cd expo-docs-mcp
# Install dependencies
npm install
# Build the project
npm run buildScripts
npm run build- Build the TypeScript projectnpm run dev- Watch mode for developmentnpm start- Run the built servernpm run download-docs- Download and cache Expo documentationnpm run init- Build and download docs (first-time setup)
Project Structure
βββ src/
β βββ index.ts # MCP server setup and tool handlers
β βββ offline-docs-fetcher.ts # Offline documentation management and search
β βββ download-docs.ts # Documentation download from GitHub
β βββ expo-docs-fetcher.ts # Online documentation fetching (legacy)
βββ docs-cache/ # Downloaded documentation files
βββ dist/ # Compiled JavaScript output
βββ package.json
βββ tsconfig.json
βββ README.mdHow It Works
Documentation Download: On first run, downloads Expo documentation from GitHub (expo/expo repository)
Local Indexing: Builds a searchable index of all documentation files with metadata extraction
Fuzzy Search: Provides multiple search strategies including exact matching, partial matching, and fuzzy search
Smart Caching: Caches search results and content for 1 week to improve performance
Offline Operation: Works entirely offline after initial documentation download
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE file for details.
About
This MCP server is developed by ah2.io, a software development company focused on building innovative tools and solutions for developers and businesses.
Available Tools
4 toolsget_expo_api_referenceB
Get API reference for a specific Expo SDK module
| Name | Required | Description | Default |
|---|---|---|---|
| module | Yes | Module name (e.g., expo-camera, expo-location) | |
| version | No | SDK version (e.g., latest, v51.0.0, v50.0.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states what the tool does without disclosing any behavioral traits like return format, authentication needs, rate limits, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no extraneous content. It is concise, but could benefit from slightly more structure to include usage hints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not explain what the API reference content looks like (e.g., markdown, JSON). For a simple tool, more context about the return value would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter descriptions are examples (e.g., expo-camera, v51.0.0). The tool description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'API reference for a specific Expo SDK module'. The tool name and sibling tools (search_expo_docs, get_expo_doc_content, get_expo_quick_start) help distinguish it as a focused reference retrieval tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus its siblings. It implies usage for getting module reference but lacks context on when to prefer it over search_expo_docs or get_expo_doc_content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_expo_doc_contentC
Get the full content of a specific Expo documentation page
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL of the documentation page | |
| path | No | Path within the documentation (e.g., guides/routing) | |
| version | No | SDK version (e.g., latest, v51.0.0, v50.0.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'Get the full content' without disclosing behavioral traits such as read-only nature, authentication requirements, rate limits, or whether the content is static or dynamic. This is insufficient for a tool with no structured behavioral metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded with the core purpose. No wasted words. However, slight improvement could add context without significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 3 optional parameters, no output schema, and no annotations. The description is too minimal to guide an agent on correct invocation. It omits crucial details like default version, behavior when both url and path are provided, and what the returned content includes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all 3 parameters with descriptions (schema coverage 100%). Baseline 3 applies since the description adds no additional meaning beyond the schema. For example, it does not explain the relationship between 'url' and 'path' or suggest which to use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb ('Get') and resource ('full content of a specific Expo documentation page'), and the tool name reinforces 'expo_doc_content'. It distinguishes from sibling tools like 'search_expo_docs' and 'get_expo_api_reference' by implying this retrieves full content rather than search results or API references, although the description does not explicitly contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention scenarios, prerequisites, or when not to use (e.g., for quick start use get_expo_quick_start instead). The sibling list is provided but not referenced in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_expo_quick_startB
Get quick start guide for Expo
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | Target platform |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially conveys the tool is a read operation ('get'), which is positive. However, it lacks details on authentication, rate limits, or whether the guide content varies by platform beyond what the parameter implies. The description is minimally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It is front-loaded with the core purpose. However, it could benefit from slight expansion to improve completeness without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description is too brief. It does not explain what the guide contains (e.g., steps, code snippets) or mention any platform-specific details beyond the parameter. For a content-returning tool, this is insufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'platform' described as 'Target platform' and an enum. The tool description adds no additional meaning beyond the schema, so baseline score 3 is appropriate. The schema already handles parameter semantics adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a quick start guide for Expo, which is a specific resource and verb. It distinguishes from sibling tools (search, doc content, API reference) by focusing on 'quick start' rather than detailed docs or searching. However, it could be more precise about what the guide contains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like search_expo_docs or get_expo_doc_content. The description does not mention context, prerequisites, or exclusions, leaving the agent without selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_expo_docsC
Search through Expo documentation
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for the documentation | |
| section | No | Documentation section to search in | |
| version | No | SDK version (e.g., latest, v51.0.0, v50.0.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states 'Search through' without describing return format, pagination, search accuracy, or any side effects. For a search tool, this is insufficient for an agent to understand behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise but overly terse. It lacks structure and could benefit from brief elaboration on what 'search' entails. While not verbose, it sacrifices clarity for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters, no output schema, and no annotations, the description does not provide enough context. It omits return values, search behavior (e.g., exact vs. fuzzy), and any constraints. The tool's purpose is clear but details are lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all parameters with descriptions (100% coverage). The description adds no additional meaning beyond schema. Baseline score of 3 is appropriate since schema already provides parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (search) and resource (Expo documentation). It is a straightforward verb+resource but does not distinguish from sibling tools like get_expo_doc_content or get_expo_api_reference, which retrieve specific content rather than search results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, limitations, or context such as when to use search vs. direct lookup. Sibling tools provide distinct capabilities but no differentiation is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.0.0- First observed
get_expo_api_reference - First observed
get_expo_doc_content - First observed
get_expo_quick_start - First observed
search_expo_docs
TDQS
Scored across 4 tools
Each tool has a distinct purpose: searching documentation, retrieving page content, getting API reference, and getting quick start guide. No overlap.
Most tools follow 'get_expo_*' pattern, but 'search_expo_docs' uses 'search_' instead. Still consistent snake_case and clear verb_noun structure.
Four tools is a reasonable number for a documentation-focused server, covering search, content retrieval, API reference, and quick start.
Core documentation needs are covered (search, page content, API reference, quick start). Missing features like listing categories or version-specific search, but these are minor gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Your Expo and EAS project in natural language: up to date SDK docs, cloud builds (status, logs, trig
Provides access to Google's public developer documentation.
Get up-to-date, version-specific documentation and code examples from official sources directly inβ¦
Retrieve information from the Medusa documentation to assist you with your Medusa development.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables programmatic interaction with Expo/React Native projects and EAS (Expo Application Services) for managing builds, publishing OTA updates, submitting apps to stores, and accessing comprehensive documentation.5MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered semantic search through Expo SDK documentation across multiple versions (v51-v53 and latest), allowing developers to quickly find relevant documentation with configurable similarity scoring.712MIT
- AlicenseAqualityCmaintenanceEnables searching and retrieving Reflex documentation, including full-text search, code examples, error analysis, changelog, migration guides, API reference, component props, and recipes.143MIT
- AlicenseAqualityCmaintenanceProvides AI agents with accurate, version-aware documentation for React Native, Expo, React Navigation, and Ignite by automatically detecting project dependencies and fetching matching documentation.12MIT