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