Skip to main content

MCP Server for micro-app knowledge base

Project description

Micro-App MCP Server

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

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

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

网络问题提示

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

项目结构

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                        # 环境变量示例

测试

uv run pytest

贡献

欢迎提交 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.4.tar.gz (28.5 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.4-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: micro_app_mcp-0.1.4.tar.gz
  • Upload date:
  • Size: 28.5 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.4.tar.gz
Algorithm Hash digest
SHA256 64b42e14a68b9f8c23eb3b2f8b24224ec55dd5fbbc447fd51ca710c85572d162
MD5 59f671202bc658c6b2908b4fe4ff947e
BLAKE2b-256 ac95f0f3ba230d09545250e13ea9b9b750493b07a501a75c88730cebc956f1bc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: micro_app_mcp-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 24.5 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7973fe0e28b2b3296e5334ad6875ee74a2bb3743b9bd8b2a3d4452d7c1b7295b
MD5 e656818b5fdb2d7ac2ac4d333c1afa56
BLAKE2b-256 de26bf3fa552f58cf1bb1e160ab604a896accb5c19829dba34ca7e8971e76355

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