Skip to main content
Glama
ah2-io

Expo Docs MCP Server

by ah2-io

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-mcp

Or use with npx:

npx expo-docs-mcp

Configuration

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 query

  • section (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 page

  • path (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 for

  • version (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 build

Scripts

  • npm run build - Build the TypeScript project

  • npm run dev - Watch mode for development

  • npm start - Run the built server

  • npm run download-docs - Download and cache Expo documentation

  • npm 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.md

How It Works

  1. Documentation Download: On first run, downloads Expo documentation from GitHub (expo/expo repository)

  2. Local Indexing: Builds a searchable index of all documentation files with metadata extraction

  3. Fuzzy Search: Provides multiple search strategies including exact matching, partial matching, and fuzzy search

  4. Smart Caching: Caches search results and content for 1 week to improve performance

  5. 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 tools
get_expo_api_referenceB

Get API reference for a specific Expo SDK module

ParametersJSON Schema
NameRequiredDescriptionDefault
moduleYesModule name (e.g., expo-camera, expo-location)
versionNoSDK version (e.g., latest, v51.0.0, v50.0.0)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL of the documentation page
pathNoPath within the documentation (e.g., guides/routing)
versionNoSDK version (e.g., latest, v51.0.0, v50.0.0)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
platformNoTarget platform

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for the documentation
sectionNoDocumentation section to search in
versionNoSDK version (e.g., latest, v51.0.0, v50.0.0)

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 4 tool updatesv1.0.0
    • First observedget_expo_api_reference
    • First observedget_expo_doc_content
    • First observedget_expo_quick_start
    • First observedsearch_expo_docs

TDQS

B3.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a distinct purpose: searching documentation, retrieving page content, getting API reference, and getting quick start guide. No overlap.

Naming Consistency4/5

Most tools follow 'get_expo_*' pattern, but 'search_expo_docs' uses 'search_' instead. Still consistent snake_case and clear verb_noun structure.

Tool Count5/5

Four tools is a reasonable number for a documentation-focused server, covering search, content retrieval, API reference, and quick start.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    71
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables searching and retrieving Reflex documentation, including full-text search, code examples, error analysis, changelog, migration guides, API reference, component props, and recipes.
    14
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides AI agents with accurate, version-aware documentation for React Native, Expo, React Navigation, and Ignite by automatically detecting project dependencies and fetching matching documentation.
    12
    MIT