Skip to main content

MCP Server for micro-app knowledge base

Project description

Micro-App MCP Server

Python Version License: MIT PyPI Version Release PyPI

micro-app-mcp 是一个面向 micro-app 微前端框架 的专用知识库 MCP Server。
它会自动 吃透 micro-app 仓库源码、爬取官方文档内容、用嵌入模型向量化后存入本地数据库,并通过 MCP 协议提供语义检索与可控更新能力。


特性亮点

  • 源码级掌握 micro-app:从官方 GitHub 仓库拉取源码,结合文档做统一知识建模。
  • 自动爬取官方文档:利用 Playwright 渲染 + 文档爬虫,从文档站点采集完整内容。
  • 本地向量化知识库:基于嵌入模型将文本向量化,存入本地 ChromaDB,查询低延迟、可离线可缓存。
  • 可控更新策略:支持按需更新、强制更新与状态查询,避免每次都重建知识库。
  • 标准 MCP 接入:开箱即用接入 Trae AI Agent、VSCode 等支持 MCP 的智能体。

对话场景

在你的智能体里(如 Trae / VSCode MCP 插件)完成配置后,当用户输入 /micro 时,LLM 会先通过统一入口工具按问题类别(状态 / 更新 / 检索)识别意图后再回答问题,比如:

  • 查询知识库状态/micro 获取知识库状态
  • 控制知识库更新/micro 更新知识库/micro 强制更新知识库 force=true
  • 询问 API / 配置项/micro micro-app 支持哪些沙箱隔离模式?
  • 理解源码实现/micro micro-app 子应用的加载流程怎么实现的?入口源码在哪?
  • 看版本变更 / 升级注意/micro 从 vX 到 vY 有哪些 breaking changes?

安装和运行(需要 Python 3.12)

CLI 方式

全局安装(pip为例)

pip install micro-app-mcp # 手动安装包
python -m playwright install chromium # 使用依赖模块 Playwright 安装 Chromium

运行

# 配置 shell 环境变量,其中一项是指定数据目录
export DATA_DIR=<DATA_DIR>

micro-app-mcp

或者 临时环境安装(uvx为例)

uvx --from micro-app-mcp python -m playwright install chromium

运行

export DATA_DIR=<DATA_DIR>

uvx --from micro-app-mcp micro-app-mcp

源码方式

适合本地开发与调试

克隆仓库

# 克隆仓库
git clone https://github.com/didengren/micro-app-mcp.git
cd micro-app-mcp

安装依赖

# 安装依赖(含开发依赖)
uv sync --extra dev

# 安装 Playwright 浏览器
uv run python -m playwright install chromium

# 以 editable 方式安装本项目作为依赖模块,方便开发调试
uv run pip install -e .

配置项目环境变量

cp .env.example .env
# 按需修改 .env

本地直接运行

uv run micro-app-mcp
# 或
uv run python -m micro_app_mcp.main

测试

uv run pytest

IDE / Agent 集成 MCP Server

Trae AI Agent 配置示例

在 Trae 配置文件 config.json 中新增(示例):

{
  "mcpServers": {
    "micro-app-knowledge": {
      "command": "uvx",
      "args": ["--from", "micro-app-mcp==<version>", "micro-app-mcp"],
      "env": {
        "DATA_DIR": "<DATA_DIR>/micro_app_mcp",
        "FALLBACK_DATA_DIR": "<FALLBACK_DATA_DIR>/micro_app_mcp",
        "GITHUB_TOKEN": "<YOUR_GITHUB_TOKEN>",
        "UPDATE_INTENT_ACTION_KEYWORDS": "强制更新,更新知识库,同步知识库,重建索引,force update,update knowledge base,rebuild index,sync knowledge base",
        "UPDATE_INTENT_TARGET_KEYWORDS": "知识库,索引,向量库,knowledge base,index,vector",
        "UPDATE_INTENT_SEARCH_ONLY_PATTERNS": "更新日志,changelog,release note,release notes,版本更新,最新更新"
      }
    }
  }
}

VSCode MCP 配置示例

在 VSCode 的 mcp.json 中新增:

{
  "mcpServers": {
    "micro-app-knowledge": {
      "command": "uvx",
      "args": ["--from", "micro-app-mcp==<version>", "micro-app-mcp"],
      "env": {
        "DATA_DIR": "<DATA_DIR>/micro_app_mcp",
        "FALLBACK_DATA_DIR": "<FALLBACK_DATA_DIR>/micro_app_mcp",
        "GITHUB_TOKEN": "<YOUR_GITHUB_TOKEN>",
        "UPDATE_INTENT_ACTION_KEYWORDS": "强制更新,更新知识库,同步知识库,重建索引,force update,update knowledge base,rebuild index,sync knowledge base",
        "UPDATE_INTENT_TARGET_KEYWORDS": "知识库,索引,向量库,knowledge base,index,vector",
        "UPDATE_INTENT_SEARCH_ONLY_PATTERNS": "更新日志,changelog,release note,release notes,版本更新,最新更新"
      }
    }
  }
}

配置说明(运行时可配置的环境变量)

.env 或进程环境中可以配置以下变量:

  • EMBEDDING_MODEL: 向量化模型类型,目前只支持 local
  • EMBEDDING_MODEL_NAME: 本地向量化模型名称,默认 BAAI/bge-small-zh-v1.5
  • EMBEDDING_LAZY_LOAD: 是否启用懒加载,默认 true(推荐开启,可减少启动内存占用)
  • GITHUB_TOKEN: GitHub API Token,强烈建议配置(否则更新知识库时易触发限流)
  • GITHUB_HTTP_TIMEOUT_SECONDS: GitHub 请求超时时间(秒),默认 15
  • GITHUB_RETRY_TOTAL: GitHub 请求重试次数,默认 0(避免限流后长时间退避阻塞)
  • DATA_DIR: 数据存储路径
  • FALLBACK_DATA_DIR: 当 DATA_DIR 不可写时自动回退目录,默认 /tmp/micro_app_mcp(若仍不可写会自动降级到系统临时目录)
  • CACHE_DURATION_HOURS: 智能缓存配置,默认 24 小时
  • SEARCH_TIMEOUT_SECONDS: 检索超时秒数,默认 30 秒(超时会返回“请稍后重试”提示)
  • UPDATE_MAX_DURATION_SECONDS: 单次更新最大持续时间(秒),默认 600(超时自动失败)
  • CHROMA_ANONYMIZED_TELEMETRY: Chroma 匿名遥测开关,默认 false(关闭)
  • UPDATE_INTENT_ACTION_KEYWORDS: /micro 更新动作关键词(逗号分隔)
  • UPDATE_INTENT_TARGET_KEYWORDS: /micro 更新目标关键词(逗号分隔)
  • UPDATE_INTENT_SEARCH_ONLY_PATTERNS: /micro 检索优先短语(命中后不触发更新)
  • HF_ENDPOINT: 国内环境拉取嵌入模型可配置成 HuggingFace 镜像地址,比如 https://hf-mirror.com

最简配置建议
只体验功能时,优先设置 DATA_DIRGITHUB_TOKEN,其它可保持默认。


项目结构

micro-app-mcp/
├── .github/workflows/release-pypi.yml  # Tag 自动发布 TestPyPI/PyPI
├── .githooks/pre-commit                # 版本变更时自动更新 CHANGELOG
├── pyproject.toml                      # 项目配置
├── uv.lock                             # 依赖锁文件
├── README.md                           # 项目说明
├── CHANGELOG.md                        # 版本变更记录
├── scripts/
│   ├── generate_changelog.py           # 基于 git diff 生成 changelog
│   ├── version_change_detector.py      # 检测版本变更
│   └── install_hooks.sh                # 安装本地 git hooks
├── src/micro_app_mcp/
│   ├── main.py                         # FastMCP 入口
│   ├── config.py                       # 配置管理
│   ├── app/
│   │   ├── server.py                   # MCP Server 定义
│   │   └── tools.py                    # MCP 工具实现
│   ├── knowledge/
│   │   ├── github_loader.py            # micro-app 仓库源码采集
│   │   ├── docs_loader.py              # 官方文档采集(Playwright)
│   │   ├── text_splitter.py            # 文本切分
│   │   └── vectorizer.py               # 嵌入与向量存储
│   ├── storage/
│   │   ├── vector_store.py             # ChromaDB 封装
│   │   └── metadata.py                 # 元数据管理
│   └── utils/logger.py                 # 日志工具
├── tests/
│   ├── test_tools.py
│   └── test_knowledge.py
└── .env.example                        # 环境变量示例

常见问题 (FAQ)

1. 网络问题提示

  • 拉取嵌入模型(首次加载)和 GitHub 源码时需要访问国外网络,建议自备代理或使用国内镜像源
  • 嵌入模型:配置 HF_ENDPOINT=https://hf-mirror.com 使用 HuggingFace 国内镜像
  • GitHub 源码:配置 GITHUB_TOKEN 可提高 API 限流阈值(60次→5000次/小时),但网络超时问题仍需代理解决
  • 代理配置:HTTP_PROXY / HTTPS_PROXY 环境变量(会影响所有 HTTP 请求)

2. Windows 系统下运行报错 OSError: [WinError 1114] 动态链接库(DLL)初始化例程失败 怎么办?

原因分析: 在 Windows 系统下初次使用 uvx 运行或安装大模型/向量化相关的底层库(如 PyTorch)时,极度依赖 Windows 的 C++ 运行库(Microsoft Visual C++ Redistributable)。若系统缺失该组件,会导致 c10.dll 等底层文件无法加载从而引发 1114 错误。

解决方案

  1. 安装 C++ 运行库:前往下载并安装最新的 Microsoft Visual C++ 可再发行程序包 (x64)

    注:也可参考此 GitHub Gist 汇总帖按需下载对应版本的运行库。

  2. 重启电脑:安装完成后,务必重启电脑以使环境变量与动态链接库生效。
  3. 重新运行:再次执行启动命令即可。

💡 进阶提示:如果安装运行库后依旧报错,可能是默认下载的 GPU 版依赖与你的显卡驱动冲突。建议改为 源码方式 克隆项目,并通过 uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu 强制安装纯 CPU 版本的 PyTorch 依赖后再运行。


贡献

欢迎提交 Issue 和 Pull Request,一起把 micro-app 生态的知识体验做得更好。


许可证

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

micro_app_mcp-0.1.6.tar.gz (30.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

micro_app_mcp-0.1.6-py3-none-any.whl (25.6 kB view details)

Uploaded Python 3

File details

Details for the file micro_app_mcp-0.1.6.tar.gz.

File metadata

  • Download URL: micro_app_mcp-0.1.6.tar.gz
  • Upload date:
  • Size: 30.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for micro_app_mcp-0.1.6.tar.gz
Algorithm Hash digest
SHA256 cbdc6a83573a915e5547b24e011a19ed91956a150e936a9504aecdda060e500c
MD5 8c9445ca7924a39826facd3b8a6e79ec
BLAKE2b-256 f9d827a6ac54be783be32f08df9ce1f077a06b0b89856a517efdf6c883b9ad12

See more details on using hashes here.

File details

Details for the file micro_app_mcp-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: micro_app_mcp-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 25.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for micro_app_mcp-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 145993abb4753e1707cb5cc281278b94bd95041f8c131d3c4f70ee24b287b126
MD5 070ad62235d27a33f15aa9d813d28db4
BLAKE2b-256 8da7b94001359c9f239d69394f47fdd001ce9c8477d411375c3c2334b3404642

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page