Skip to main content
Glama
ah2-io

Expo Docs MCP Server

by ah2-io
README.md
# 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

## Installation

```bash
npm install expo-docs-mcp
```

Or use with npx:

```bash
npx expo-docs-mcp
```

## Configuration

Add to your Claude Desktop configuration (`claude_desktop_config.json`):

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

```bash
# 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](LICENSE) file for details.

## About

This MCP server is developed by [ah2.io](https://ah2.io), a software development company focused on building innovative tools and solutions for developers and businesses.

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