Expo Gemini MCP Server
Click on "Deploy 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 Gemini MCP ServerHow do I use the Camera component in Expo?"
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 Gemini MCP Server
🚀 Một Model Context Protocol (MCP) server cho tài liệu Expo với tích hợp Gemini AI
Server này cung cấp cho các AI assistant khả năng truy cập vào tài liệu Expo cập nhật với sự hỗ trợ của Gemini AI để tăng cường kết quả tìm kiếm và tạo ra các ví dụ code chất lượng cao.
✨ Tính năng
🔍 Tìm kiếm ngữ nghĩa: Tìm kiếm thông minh trong tài liệu Expo sử dụng Gemini embeddings
🤖 Hoàn toàn Gemini AI: Sử dụng Gemini cho cả embeddings và text generation
📚 Tài liệu đầy đủ: Bao gồm API reference, guides, và tutorials
🎯 MCP Protocol: Tuân thủ chuẩn Model Context Protocol
⚡ Tìm kiếm hybrid: Kết hợp tìm kiếm ngữ nghĩa và từ khóa
🔧 Giải thích concepts: Giải thích chi tiết các khái niệm Expo
Related MCP server: Expo Docs MCP Server
🛠 Cài đặt
Yêu cầu hệ thống
Node.js (v16 hoặc cao hơn)
npm hoặc yarn
Gemini API key (duy nhất cần thiết)
Bước 1: Clone và cài đặt
git clone <repository-url>
cd expo-gemini-mcp-server
npm installBước 2: Cấu hình môi trường
cp .env.example .envChỉnh sửa file .env và thêm Gemini API key:
GEMINI_API_KEY=your_gemini_api_key_here
PORT=3000
NODE_ENV=developmentBước 3: Xây dựng index tài liệu
npm run build-indexLệnh này sẽ:
Clone tài liệu Expo từ GitHub
Xử lý các file markdown
Tạo embeddings sử dụng OpenAI
Lưu vào vector store
Bước 4: Build và khởi chạy server
npm run build
npm startHoặc chạy trong development mode:
npm run devBước 5: Test server
npm test🎯 Sử dụng
MCP Tools có sẵn
1. search_expo_docs
Tìm kiếm trong tài liệu Expo với AI enhancement
{
"query": "How to use Image component in Expo?",
"maxResults": 5,
"useGemini": true
}2. get_expo_examples
Lấy code examples cho components/APIs cụ thể
{
"component": "Camera",
"complexity": "intermediate"
}3. explain_expo_concept
Giải thích chi tiết các khái niệm Expo
{
"concept": "Expo Router",
"audience": "beginner"
}Kết nối với AI Assistants
Claude Desktop
Thêm vào claude_desktop_config.json:
{
"mcpServers": {
"expo-gemini-docs": {
"command": "node",
"args": ["/path/to/expo-gemini-mcp-server/dist/index.js"],
"env": {
"OPENAI_API_KEY": "your_key",
"GEMINI_API_KEY": "your_key"
}
}
}
}Cursor/VS Code
Sử dụng MCP extension và cấu hình server endpoint.
🧠 Tích hợp Gemini AI
Tăng cường kết quả tìm kiếm
Gemini AI sẽ:
Đánh giá mức độ liên quan của kết quả
Thêm tóm tắt cho mỗi kết quả
Đề xuất topics liên quan
Highlight thông tin quan trọng
Tạo code examples
Gemini có thể tạo:
Examples hoàn chỉnh và có thể chạy được
Use cases phổ biến
Best practices
Cảnh báo về common pitfalls
Giải thích concepts
Gemini điều chỉnh explanations theo:
Beginner: Ngôn ngữ đơn giản, bao gồm setup steps
Intermediate: Tập trung vào practical usage
Expert: Chi tiết advanced, performance considerations
📁 Cấu trúc dự án
expo-gemini-mcp-server/
├── src/
│ ├── index.ts # Entry point chính
│ ├── services/
│ │ ├── GeminiService.ts # Tích hợp Gemini AI
│ │ ├── VectorStoreService.ts # Vector database
│ │ └── ExpoDocsService.ts # Logic xử lý docs
│ └── utils/
│ └── logger.ts # Logging utilities
├── scripts/
│ └── build-index.js # Script build documentation index
├── data/ # Vector store và search index
├── logs/ # Log files
├── docs-source/ # Expo documentation (cloned)
├── package.json
├── tsconfig.json
├── mcp-config.json # MCP configuration
└── README.md🔧 Scripts có sẵn
npm run build: Compile TypeScript sang JavaScriptnpm start: Khởi chạy server (production)npm run dev: Khởi chạy với watch mode (development)npm run build-index: Xây dựng documentation indexnpm run update-docs: Cập nhật docs và rebuild indexnpm test: Test server functionality
🔍 Troubleshooting
Vector store trống
# Rebuild index
npm run build-indexGemini API errors
Kiểm tra API key trong
.envVerify quotas và billing
Check network connectivity
OpenAI embedding errors
Kiểm tra API key và credits
Rate limiting - script tự động pause
Reduce batch size nếu cần
Memory issues
Tăng Node.js memory limit:
node --max-old-space-size=4096 scripts/build-index.js🤝 Đóng góp
Fork repository
Tạo feature branch (
git checkout -b feature/amazing-feature)Commit changes (
git commit -m 'Add amazing feature')Push to branch (
git push origin feature/amazing-feature)Tạo Pull Request
📄 License
Distributed under the MIT License. See LICENSE for more information.
🙏 Acknowledgments
Expo Team - Cho documentation tuyệt vời
Google AI - Cho Gemini API
OpenAI - Cho embedding models
Model Context Protocol - Cho MCP standard
📞 Hỗ trợ
Có vấn đề gì? Tạo issue hoặc liên hệ qua email.
Happy coding with Expo and AI! 🚀🤖
Available Tools
3 toolsexplain_expo_conceptC
Get detailed explanations of Expo concepts using Gemini AI
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes | The Expo concept to explain | |
| audience | No | Target audience level | intermediate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'using Gemini AI' but does not explain what the response contains beyond 'detailed explanations,' nor does it address potential latency, need for external API calls, or any limitations. The behavior is under-specified.
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 sentence, which is concise, but it relies on the vague phrase 'detailed explanations' and adds little substantive value. It is not overly long, yet it could be more informative without sacrificing 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?
Given the tool's low complexity and full schema coverage, the description is minimally adequate but not complete. It lacks guidance on when to use the tool, what output format to expect, and how the 'audience' parameter affects the explanation—gaps that matter more because no output schema or annotations exist.
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?
The schema already provides descriptions for both parameters (concept and audience), with 100% coverage, so the baseline is 3. The description adds no additional parameter semantics beyond what the schema offers, and it does not elaborate on how 'concept' or 'audience' interact with the explanation's detail level.
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's function: 'Get detailed explanations of Expo concepts using Gemini AI.' This uses a specific verb ('Get detailed explanations') and identifies the resource (Expo concepts), distinguishing it from sibling tools like search_expo_docs and get_expo_examples, though the added 'using Gemini AI' is implementation detail rather than core purpose.
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_examples. The description implies use for explanations but lacks explicit when/when-not scenarios or mention of sibling tools, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_expo_examplesA
Get code examples for specific Expo components or APIs using Gemini AI
| Name | Required | Description | Default |
|---|---|---|---|
| component | Yes | The Expo component or API name | |
| complexity | No | The complexity level of examples | basic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It does mention 'using Gemini AI', which hints at generated content and potential non-determinism, but it does not describe the output format, any rate limits, or possible inaccuracies. This is adequate but not rich.
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 that front-loads the main action and object. Every word contributes to understanding the tool's purpose, with no wasted effort.
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?
The description is sufficient for a simple tool with only two parameters, but the absence of an output schema means it should clarify what a successful response looks like. It does not specify the structure or format of the returned code examples, leaving some ambiguity.
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?
The schema already has 100% coverage, describing both 'component' and 'complexity' clearly. The description adds no additional parameter-level meaning, so it stays at the baseline of 3.
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's function: to get code examples for specific Expo components or APIs. It includes a specific verb (get) and resource (code examples) and distinguishes itself from sibling tools like search_expo_docs and explain_expo_concept by focusing on example code.
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 implies that this tool is for obtaining code examples, which is a clear context of use. However, it does not explicitly contrast with sibling tools or provide exclusions, so it misses the full 'when-not-to-use' guidance that would make it a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_expo_docsB
Search through Expo documentation using semantic search with Gemini AI enhancement
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query for Expo documentation | |
| useGemini | No | Whether to use Gemini AI for enhanced results (default: true) | |
| maxResults | No | Maximum number of results to return (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It mentions semantic search and Gemini AI enhancement, but these are also reflected in the useGemini parameter. It does not disclose return format, failure modes, or what 'enhancement' actually does, leaving significant behavioral ambiguity.
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, front-loaded sentence with no filler or redundant information. It is appropriately concise for a search tool.
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?
There is no output schema, yet the description does not explain what the tool returns or how maxResults affects results. It also lacks any context about result format or behavior on empty queries, making it incomplete for an agent to predict the tool's output reliably.
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?
The input schema has 100% coverage with clear descriptions for query, useGemini, and maxResults. The description adds little beyond the schema, only indirectly referencing Gemini enhancement, so the baseline score of 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 tool searches Expo documentation, with specific details about semantic search and Gemini AI enhancement. This distinguishes it from sibling tools like get_expo_examples and explain_expo_concept, which serve different purposes.
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 gives no explicit guidance on when to use this tool versus the sibling tools. It only implies usage through the action 'Search through Expo documentation,' with no mention of alternatives, exclusions, or prerequisites.
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.
3 tool updates
v1.0.0- First observed
explain_expo_concept - First observed
get_expo_examples - First observed
search_expo_docs
TDQS
Scored across 3 tools
Tools are mostly distinct: search discovers relevant docs, get_expo_examples fetches code samples, and explain_expo_concept provides conceptual overviews. There is minor overlap between search and explain for concept queries, but the descriptions make the primary intent clear.
All tool names follow a consistent verb_noun pattern: search_expo_docs, get_expo_examples, explain_expo_concept. This makes the intended action and target clear for each tool.
With only 3 tools, the server is tightly scoped to its purpose of assisting with Expo documentation, examples, and concepts. Each tool serves a distinct needed function without redundancy.
The tool set covers the primary ways an agent would interact with Expo documentation: searching, retrieving examples, and getting explanations. A minor gap is the absence of a direct 'get_document' tool for known pages, but search effectively compensates.
Related MCP Connectors
Your Expo and EAS project in natural language: up to date SDK docs, cloud builds (status, logs, trig
Versioned documentation registry and semantic search for AI tools and coding assistants.
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
Search your knowledge bases from any AI assistant using hybrid RAG.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to enhance their responses with relevant documentation through a semantic vector search, offering tools for managing and processing documentation efficiently.6 npm64MIT
- 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.47 npm2MIT
- 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
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to execute Expo and EAS operations including project setup, cloud builds, OTA updates, app submission, and diagnostics.MIT