Token导航 LogoToken导航TokenDH.com
Expo Local Docs MCP logo
文档知识未说明官方级别未说明来源级核验

Expo Local Docs MCP

MCP Server

一个为Expo文档提供快速本地MDX文件读取和全文搜索功能的MCP服务器。

工具数

5

提示词数

0

GitHub Stars

18

资源数

0
本地搜索高性能CursorCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Ception

提供方

Ception

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Expo Docs MCP服务器

用于Expo文档的快速MCP(模型上下文协议)服务器,可直接从本地读取 .mdx 文件夹。

🚀 主要特点

  • 迅速的:直接从本地读取 .mdx 文件-不需要HTTP服务器
  • 智能缓存:基于磁盘的缓存,版本+文档指纹无效
  • 全文检索:强大的搜索功能和智能评分算法
  • 零网络:完全离线工作
  • 针对Bun进行了优化:专为Bun的表演而打造

📊 演出

指标首次运行缓存运行
索引构建~90-120ms~12-20ms
搜索查询~1-10ms~1-10ms
文档997.mdx文件997.mtx文件
缓存大小~4.4MB~4.4MB

在当前本地文档快照上测量。

🛠️ 设置

选择您喜欢的安装方法:

选项1:npx(零安装)

无需安装!只需添加到您的Cursor MCP配置中:

{
  "mcpServers": {
    "expo-docs": {
      "command": "npx",
      "args": ["expo-local-docs-mcp"]
    }
  }
}

✅ 始终使用最新版本\ ✅ 无需手动更新\ ⚠️ 首次运行时略有延迟(之后缓存)

选项2:全局安装(推荐)

安装一次,随处使用:

npm install -g expo-local-docs-mcp
# or with pnpm
pnpm install -g expo-local-docs-mcp

然后添加到光标MCP配置中:

{
  "mcpServers": {
    "expo-docs": {
      "command": "expo-local-docs-mcp"
    }
  }
}

✅ 即时启动(无需下载)\ ✅ 更清洁的配置\ ⚠️ 手动更新: npm update -g expo-local-docs-mcp

选项3:本地项目安装

在项目中安装:

cd ~/my-expo-project
npm install expo-local-docs-mcp

然后添加到光标MCP配置中:

{
  "mcpServers": {
    "expo-docs": {
      "command": "node",
      "args": [
        "/absolute/path/to/node_modules/expo-local-docs-mcp/dist/server.js"
      ]
    }
  }
}

✅ 版本已锁定到项目\ ⚠️ 必须按项目安装\ ⚠️ 配置中需要绝对路径

______________________________________________________________________

就是这样!该包在当前快照中包含997 Expo SDK文档,可以使用任何方法开箱即用。

贡献者:地方发展

如果你想贡献或定制:

先决条件

  • 包子 已安装(推荐)或Node.js
  • 世博会文件 .mdx 文件在 expo-sdk/ 文件夹

安装

cd /path/to/expo-local-docs-mcp
bun install
bun run build

测试它是否有效

bun run test

您应该看到:

✅ All tests passed!
✓ Index loaded: 997 entries (~90-120ms first run)
✓ Index loaded: 997 entries (~12-20ms cached run)

本地开发配置

添加到光标MCP配置(~/.cursor/mcp.json~/.config/cursor/mcp.json):

{
  "mcpServers": {
    "expo-docs": {
      "command": "bun",
      "args": ["//expo-local-docs-mcp/dist/server.js"],
      "env": {
        "EXPO_DOCS_PATH": "//expo-local-docs-mcp/expo-sdk",
        "EXPO_CACHE_DIR": "//expo-local-docs-mcp/.expo-cache"
      }
    }
  }
}

重要:更新路径以匹配您的实际安装位置。

📚 可用工具

1. search_expo_docs

使用智能排名搜索世博会文件。

参数:

  • query (字符串,必填):搜索查询
  • section (字符串,可选):按部分筛选(例如,“指南”、“路由器”、“版本”)
  • maxResults (数字,可选):最大结果(默认值:10)

例子:

{
  "query": "camera permissions",
  "section": "guides",
  "maxResults": 5
}

2. get_expo_doc_content

获取特定文档页面的完整内容。

参数:

  • path (string,必填):文档路径(例如。, /versions/latest/sdk/camera)

例子:

{
  "path": "/get-started/introduction"
}

3. list_expo_sections

列出所有文档部分或在特定部分获取文档。

参数:

  • section (string,可选):获取此部分中的文档

例子:

{
  "section": "router"
}

4. get_expo_api_reference

获取特定Expo SDK模块的API参考资料。

参数:

  • module (字符串,必填):模块名称(例如,“相机”、“世博会相机”)
  • version (字符串,可选):SDK版本(例如,“最新”、“v55.0.0”或“55.0.0”)

例子:

{
  "module": "camera"
}

5. get_expo_quick_start

获取快速入门文档。

参数:

  • topic (字符串,可选):特定主题(例如,“创建项目”)

例子:

{
  "topic": "create-a-project"
}

🏗️ 建筑

expo-local-docs-mcp/
├── src/
│   ├── server.ts              # MCP server implementation
│   ├── config.ts              # Configuration management
│   ├── diskCache.ts           # Disk cache management
│   ├── mdxParser.ts           # MDX file parser (frontmatter + content)
│   ├── searchIndex/           # Search index module
│   │   ├── index.ts           # Public API exports
│   │   ├── types.ts           # TypeScript types
│   │   ├── state.ts           # Index state management
│   │   ├── loader.ts          # Index building and loading
│   │   ├── search.ts          # Search algorithm
│   │   ├── query.ts           # Document queries
│   │   └── fileUtils.ts       # File system utilities
│   └── tools/                 # MCP tool handlers
│       ├── definitions.ts     # Tool schemas
│       └── handlers/          # Tool implementations
│           ├── index.ts       # Handler dispatcher
│           ├── types.ts       # Handler types
│           ├── searchExpoDocs.ts
│           ├── getExpoDocContent.ts
│           ├── listExpoSections.ts
│           ├── getExpoApiReference.ts
│           └── getExpoQuickStart.ts
├── expo-sdk/                  # Your Expo documentation .mdx files
│   ├── get-started/
│   ├── guides/
│   ├── router/
│   ├── versions/
│   └── ...
├── .expo-cache/               # Generated cache (auto-created)
│   └── search-index.json
├── dist/                      # Built server
│   └── server.js
├── test-server.ts             # Basic functionality tests
├── test-tools.ts              # Comprehensive tool tests
└── package.json

🔧 发展

# Run in development mode
bun run dev

# Build for production
bun run build

# Start built server
bun run start

# Run tests
bun run test
bun run test:tools
bun run test:all

# Clear cache (force rebuild)
bun run clear-cache

🎯 环境变量

变量默认值描述
EXPO_DOCS_PATH./expo-sdk包含.mdx文件的exposdk文件夹的路径
EXPO_CACHE_DIR./.expo-cache缓存目录位置
EXPO_DOCS_MAX_RESULTS20要返回的最大搜索结果数
EXPO_DOCS_CACHE_MAX_AGE86400000缓存时间(毫秒)(24小时)

📦 依赖项

  • @modelcontextprotocol/sdk -MCP协议实现
  • @types/node -TypeScript Node.js类型
  • typescript -TypeScript编译器

就是这样! 没有HTTP客户端,没有HTML解析器,只有快速的文件I/O。

🐛 故障排除

指数未建立

  • 确保 expo-sdk/ 文件夹存在并包含 .mdx 文件
  • 检查目录上的文件权限
  • 尝试 bun run clear-cache 并重新启动

搜索未返回任何结果

  • 等待索引构建(检查控制台输出)
  • 验证.mdx文件是否有内容
  • 尝试更广泛的搜索词

每次缓存重建

  • 检查 .expo-cache/ 文件夹权限
  • 验证是否正在创建缓存文件: ls -lh .expo-cache/
  • 检查磁盘空间

“找不到模块”错误

  • bun install 确保安装了依赖项
  • bun run build 重建

📝 运作原理

  1. 初创公司:服务器初始化并尝试从磁盘缓存加载
  2. 缓存检查:缓存仅在版本、年龄和文档指纹都匹配时有效(通常加载约12-20ms)
  3. 新建:如果没有有效的缓存,则进行扫描 expo-sdk/ 递归为所有 .mdx 文件(当前997个文件)
  4. 解析:提取YAML frontmatter并剥离MDX/JSX以获得干净的文本内容
  5. 索引:使用路径映射构建内存中的搜索索引(~90-120ms)
  6. 缓存:将完整索引保存到 search-index.json (~4.4MB)
  7. 搜索:使用优化的评分算法(精确匹配>单词匹配)

MDX解析

.mdx 解析文件的frontmatter:

---
title: Camera
description: A React component that renders a preview...
packageName: expo-camera
platforms: ["android", "ios", "web"]
---

此元数据用于更好的搜索结果和过滤。

搜索评分算法

搜索使用双层评分系统以获得最大相关性:

精确短语匹配:

  • 标题包含精确的查询: 1000分
  • 描述包含精确的查询: 500分
  • 路径包含精确查询: 300分
  • 内容包含精确查询: 100分

单个单词匹配(带边界检测):

  • 标题中的单词匹配: 50分 每次发生
  • 描述中的单词匹配: 25分 每次发生
  • 路径中的单词匹配: 15分 每次发生
  • 内容中的单词匹配: 1分 每次发生

性能优化:

  • 为每个搜索词预编译转义正则表达式模式
  • 用途 for...of 循环而不是 .map() 为了获得更好的性能
  • 仅为匹配的条目(得分>0)创建评分对象
  • 具有早期分段滤波的单通道算法

🔄 更新文档

要更新Expo文档,请执行以下操作:

  1. 替换/更新中的文件 expo-sdk/ 文件夹
  2. 清除缓存: bun run clear-cache
  3. 重新启动MCP服务器

索引将在下次启动时自动重建。

❓ 常见问题解答

Q: 我应该使用npx还是全局安装?\ A: 全局安装(npm install -g)建议使用,以实现更快的启动和更清晰的配置。如果要自动更新,请使用npx。

Q: 如何更新到最新版本?\ A.

  • npx:自动(始终使用最新版本)
  • 全球: npm update -g expo-local-docs-mcp
  • 本地: npm update expo-local-docs-mcp 在您的项目中

Q: 如何测试npx执行?\ A: 快跑 npx expo-local-docs-mcp 直接在您的终端。它应该启动stdio上的MCP服务器。

Q: 我需要运行localhost:3002服务器吗?\ A: 不!那是旧的v1.x架构。v2.0直接读取文件。

Q: 我可以删除缓存文件夹吗?\ A: 是的!它将自动重建(通常为90-120ms)。缓存位置:

  • npm/npx: /tmp/expo-local-docs-mcp-cache/ (macOS/Linux)
  • 本地开发人员: .expo-cache/ (项目根)

Q: 如果.mdx文件丢失怎么办?\ A: 服务器优雅地跳过它,并继续为其他文件建立索引。

Q: 我可以用Node.js代替Bun吗?\ A: 是的!npm包是为与Node.js配合使用而构建的。本地开发可以使用Bun或Node。

Q: npm包有多大?\ A: 这取决于所包含的文档快照。当前回购快照索引997 .mdx 文档并构建一个~4.4MB的缓存文件。

📈 索引内容

Total documents: 997 .mdx files
Total sections: 40
Cache size: ~4.4MB

Top sections:
  - versions: 602 docs (SDK API references)
  - guides: 59 docs
  - router: 47 docs (Expo Router)
  - eas: 35 docs (EAS services)
  - eas-update: 27 docs
  - tutorial: 25 docs
  - develop: 21 docs
  - build-reference: 21 docs
  - archive: 18 docs
  - modules: 17 docs

🎉 优势与v1.x

功能v1.x(HTTP)v2.0(文件)
速度(初跑)5-10s90-120ms
速度(缓存)1-2s12-20ms
需要网络
依赖关系axios,cheerio
需要HTTP服务器是(本地主机:3002)
离线支持
搜索质量良好更好

📄 许可证

麻省理工学院

🤝 贡献

这是一个针对本地世博会文档访问进行了优化的个人MCP服务器。请随意分叉并适应您的需求!

______________________________________________________________________

版本: 2.0.5\ 内置于:Bun+TypeScript\ 演出: 🚀 快速燃烧

目录标签

目录标签

本地搜索高性能CursorMDX本地部署文档处理离线支持Bun优化

支持客户端

Cursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP