Token导航 LogoToken导航TokenDH.com
Wso2 Docs MCP Server logo
搜索检索stdio官方级别未说明来源级核验

Wso2 Docs MCP Server

MCP Server

tsc

一个生产就绪的模型上下文协议服务器,通过检索增强生成技术为AI助手提供WSO2文档的语义搜索功能。

工具数

4

提示词数

0

GitHub Stars

1

资源数

0
搜索检索增强生成TypeScriptClaude文档处理Claude DesktopClaudeCursorVS Code

安装说明

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

作者 / 组织

iamvirul

提供方

iamvirul

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

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

命令预览

npx tsc --noEmit

详细介绍

WSO2文档MCP服务器

](https://www.npmjs.com/package/wso2-docs-mcp-server) ![License](LICENSE)

生产准备就绪 模型上下文协议(MCP) 该服务器通过检索增强生成(RAG)为AI助手(Claude Desktop、Claude Code、Cursor、VS Code)提供WSO2文档的语义搜索。

在引擎盖下,它使用了一个超快的双摄入引擎:

  • GitHub原生: 通过Git Trees API直接从WSO2的公共GitHub存储库获取原始Markdown(避免网络抓取噪音和速率限制)
  • Web爬网回退: 对于没有专用GitHub文档仓库的产品(如WSO2库)

建筑

flowchart TD
    %% Styling
    classDef github fill:#1f2328,color:#fff,stroke:#e1e4e8
    classDef default fill:#0969da,color:#fff,stroke:#0969da
    classDef db fill:#218bff,color:#fff,stroke:#218bff
    classDef web fill:#0969da,color:#fff,stroke:#0969da

    subgraph Sources ["Information Sources"]
        GH["GitHub Repos\n(wso2/docs-apim, etc.)"]:::github
        Web["WSO2 Websites\n(ballerina.io, lib)"]:::web
    end

    subgraph Ingestion ["Dual-Ingestion Pipeline"]
        A["GitHubDocFetcher\n(Git Trees API)"] 
        B["DocCrawler\n(HTML scraping)"]
        
        C["MarkdownParser\n(Front-matter & Heads)"]
        D["DocParser\n(Cheerio HTML parsing)"]
        
        E["DocChunker\n(Semantic Splitting)"]
    end

    subgraph Embedding ["Vectorization & Storage"]
        F["EmbedderFactory\n(Ollama / HuggingFace)"]
        G[("pgvector\n(PostgreSQL)")]:::db
    end

    %% Flow
    GH --> A
    Web --> B
    
    A -->|"Raw .md"| C
    B -->|"Clean HTML"| D
    
    C -->|"ParsedSection[]"| E
    D -->|"ParsedSection[]"| E
    
    E -->|"Tokens/Chunks"| F
    F -->|"768-dim Vectors"| G

文档来源

产品URL
API经理https://apim.docs.wso2.com
微型积分器https://mi.docs.wso2.com/en/4.4.0
合唱https://wso2.com/choreo/docs
芭蕾舞演员https://ballerina.io/learn
Ballerina集成商https://bi.docs.wso2.com
WSO2库https://wso2.com/library

先决条件

  • Node.js ≥ 20
  • 码头工人 (适用于pgvector)
  • 嵌入 -默认情况下不需要API密钥:

- 奥拉玛 (推荐)--在本地运行,首次运行时自动下载模型 - 如果Ollama未运行,服务器将自动回退到 拥抱面ONNX (正在处理,也会自动下载) - 还支持云提供商:OpenAI、Google Gemini、Voyage AI

______________________________________________________________________

快速开始

选择适合您用例的设置路径:

______________________________________________________________________

从npm安装

全局安装软件包以获取 wso2-docs-mcp-server, wso2-docs-crawl,以及 wso2-docs-migrate 系统范围内可用的命令:

npm install -g wso2-docs-mcp-server
不希望全局安装? 您可以使用 npx wso2-docs-mcp-server, npx wso2-docs-crawl,以及 npx wso2-docs-migrate 在下面的每一步中,只需将裸命令替换为 npx 等效。

1.启动pgvector

下载 docker-compose.yml 并启动数据库:

curl -O https://raw.githubusercontent.com/iamvirul/wso2-docs-mcp-server/main/docker-compose.yml
docker compose up -d

2.启动Ollama(可选但推荐)

安装Ollama 并拉取默认嵌入模型:

ollama pull nomic-embed-text
ollama serve
没有奥拉玛? 跳过此步骤。服务器会自动回退到HuggingFace ONNX——首次使用时下载模型,无需额外设置。

3.运行数据库迁移

DATABASE_URL="postgresql://wso2mcp:wso2mcp@localhost:5432/wso2docs" \
  wso2-docs-migrate
每次更改时再次运行迁移 EMBEDDING_DIMENSIONS (即开关嵌入提供程序)。该脚本会自动检测和处理维度更改。

4.WSO2文件索引

# Index all products (first run downloads the embedding model automatically)
DATABASE_URL="postgresql://wso2mcp:wso2mcp@localhost:5432/wso2docs" \
  wso2-docs-crawl

# Index a single product (faster, great for testing)
DATABASE_URL="postgresql://wso2mcp:wso2mcp@localhost:5432/wso2docs" \
  wso2-docs-crawl --product ballerina --limit 20

# Force re-index even unchanged pages
DATABASE_URL="postgresql://wso2mcp:wso2mcp@localhost:5432/wso2docs" \
  wso2-docs-crawl --force

可用产品ID: apim, mi, choreo, ballerina, bi, library

5.配置您的AI客户端

MCP服务器由您的AI客户端按需启动,无需后台进程。

克劳德桌面 --编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "wso2-docs": {
      "command": "wso2-docs-mcp-server",
      "env": {
        "DATABASE_URL": "postgresql://wso2mcp:wso2mcp@localhost:5432/wso2docs",
        "EMBEDDING_PROVIDER": "ollama"
      }
    }
  }
}

克劳德代码 --在终端中运行一次:

claude mcp add wso2-docs \
  --transport stdio \
  -e DATABASE_URL="postgresql://wso2mcp:wso2mcp@localhost:5432/wso2docs" \
  -e EMBEDDING_PROVIDER="ollama" \
  -- wso2-docs-mcp-server

# Verify
claude mcp list

光标 --创建 .cursor/mcp.json 在项目根目录中:

{
  "mcpServers": {
    "wso2-docs": {
      "command": "wso2-docs-mcp-server",
      "env": {
        "DATABASE_URL": "postgresql://wso2mcp:wso2mcp@localhost:5432/wso2docs",
        "EMBEDDING_PROVIDER": "ollama"
      }
    }
  }
}

VS代码 --创建 .vscode/mcp.json:

{
  "servers": {
    "wso2-docs": {
      "type": "stdio",
      "command": "wso2-docs-mcp-server",
      "env": {
        "DATABASE_URL": "postgresql://wso2mcp:wso2mcp@localhost:5432/wso2docs",
        "EMBEDDING_PROVIDER": "ollama"
      }
    }
  }
}
使用 npx 而不是全球安装? 替换 "command": "wso2-docs-mcp-server""command": "npx" 并添加 "args": ["-y", "wso2-docs-mcp-server"].
云嵌入提供商? 将密钥添加到 env例如。 "EMBEDDING_PROVIDER": "openai", "OPENAI_API_KEY": "sk-...".

______________________________________________________________________

克隆和构建

1.克隆并安装

git clone https://github.com/iamvirul/wso2-docs-mcp-server.git
cd wso2-docs-mcp-server
npm install

2.启动Ollama(可选但推荐)

安装Ollama 并启动它:

ollama serve
没有奥拉玛? 跳过此步骤。服务器检测到Ollama未运行,并自动回退到HuggingFace ONNX推理——模型在首次使用时下载,无需额外设置。

3.配置环境

cp .env.example .env
# Defaults work out of the box with Ollama.
# Only edit if using a cloud provider (OpenAI / Gemini / Voyage).

4.启动pgvector

docker compose up -d
# pgAdmin available at http://localhost:5050 (admin@wso2mcp.local / admin)

5.运行数据库迁移

npm run db:migrate
注: 每次更改时再次运行迁移 EMBEDDING_DIMENSIONS (即开关嵌入提供程序)。该脚本会自动检测和处理维度更改。

6.索引文件

# Index all products
# On first run the embedding model is downloaded automatically (Ollama or HuggingFace)
npm run crawl

# Index a single product (faster, great for testing)
npm run crawl -- --product ballerina --limit 20

# Force re-index even unchanged pages
npm run crawl -- --force

7.构建并启动MCP服务器

npm run build
npm start

对于开发(无构建步骤):

npm run dev

8.配置您的AI客户端

替换 /ABSOLUTE/PATH/TO/wso2-docs-mcp-server 使用您的实际克隆路径。

克劳德桌面 --编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "wso2-docs": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/wso2-docs-mcp-server/dist/src/index.js"],
      "env": {
        "DATABASE_URL": "postgresql://wso2mcp:wso2mcp@localhost:5432/wso2docs",
        "EMBEDDING_PROVIDER": "ollama"
      }
    }
  }
}

克劳德代码:

claude mcp add wso2-docs \
  --transport stdio \
  -e DATABASE_URL="postgresql://wso2mcp:wso2mcp@localhost:5432/wso2docs" \
  -e EMBEDDING_PROVIDER="ollama" \
  -- node "/ABSOLUTE/PATH/TO/wso2-docs-mcp-server/dist/src/index.js"

# Verify
claude mcp list

config-examples/claude_code.sh 为了方便脚本。

光标 --创建 .cursor/mcp.json --看 config-examples/cursor_mcp.json.

VS代码 --创建 .vscode/mcp.json --看 config-examples/vscode_mcp.json.

______________________________________________________________________

MCP工具

工具说明
search_wso2_docs对所有产品进行语义搜索。可选的 productlimit 过滤器。
get_wso2_guide在特定产品内搜索(apim, mi, choreo, ballerina, bi, library).
explain_wso2_concept对所有产品进行广泛的概念搜索,返回8个顶级结果。
list_wso2_products返回所有支持的产品及其ID和基本URL

示例响应

[
  {
    "title": "Deploying WSO2 API Manager",
    "snippet": "WSO2 API Manager can be deployed in various topologies…",
    "source_url": "https://apim.docs.wso2.com/en/latest/install-and-setup/...",
    "product": "apim",
    "section": "Deployment Patterns",
    "score": 0.8712
  }
]

______________________________________________________________________

本地嵌入

默认值 EMBEDDING_PROVIDER=ollama 在没有API密钥的情况下完全在您的计算机上运行。启动顺序为:

Is Ollama running?
├── Yes → Is model present?
│         ├── Yes → Ready (instant)
│         └── No  → Pull via Ollama (streamed, runs once)
└── No  → Download ONNX model from HuggingFace Hub (~250 MB, cached after first run)
           and run inference in-process via @huggingface/transformers

两条路径都使用 nomic-embed-text / Xenova/nomic-embed-text-v1 默认情况下,它会生成相同的768个dim向量,因此您可以在它们之间切换而无需重新索引。

硬件加速(HuggingFace ONNX回退)

当Ollama不可用时,服务器会自动检测最佳计算后端:

机器检测ONNX数据类型批量大小吞吐量
苹果硅(M1/M2/M3/M4)process.arch === 'arm64'q8 INT832~9毫秒/块
英伟达GPUnvidia-smi 探头fp3264取决于GPU
所有其他回退q8 INT816~10ms/块

为什么 q8 用苹果硅代替CoreML/Metal? CoreML在首次使用时编译金属着色器(冷启动约20分钟)。对于该服务器产生的典型块大小(每页6-20个块),CPU↔GPU传输开销消除了任何推理增益。基于ARM NEON SIMD的INT8量化推理是一致的 比fp32 CPU快约100倍 冷启动成本为零。

Benchmark(苹果M芯片, Xenova/nomic-embed-text-v1):

fp32 CPU (before): ~1,000 ms/chunk   (68 chunks ≈ 68 s of embedding)
q8  ARM NEON:          ~9 ms/chunk   (68 chunks ≈  0.6 s of embedding)  ← ~100× speedup
注: 对于小型抓取(≤10页),总挂钟时间主要由网络I/O决定 (HTTPS访问文档站点),因此端到端的改进是适度的。嵌入 大规模加速变得非常重要——抓取500多个之前嵌入的页面 占运行时间的小时数。为了获得最佳爬行性能,请运行Ollama(ollama serve) 其原生地并行推理,并且没有每个块的开销。

______________________________________________________________________

环境变量

核心

变量默认值描述
DATABASE_URL--PostgreSQL连接字符串(必填)
EMBEDDING_PROVIDERollamaollamaopenaigeminivoyage
EMBEDDING_DIMENSIONS768必须与模型输出尺寸匹配
CRAWL_CONCURRENCY5爬网期间并发HTTP请求
CHUNK_SIZE800每个区块的近似令牌
CHUNK_OVERLAP100块之间的重叠标记
CACHE_TTL_SECONDS3600内存查询缓存TTL
TOP_K_RESULTS10默认搜索结果计数

Ollama(默认)

变量默认值描述
OLLAMA_BASE_URLhttp://localhost:11434Ollama服务器URL
OLLAMA_EMBEDDING_MODELnomic-embed-text通过Ollama拉取和使用模型
HUGGINGFACE_EMBEDDING_MODELXenova/nomic-embed-text-v1Ollama未运行时ONNX回退

云提供商

变量默认值描述
OPENAI_API_KEY--如果是必需的 EMBEDDING_PROVIDER=openai
OPENAI_EMBEDDING_MODELtext-embedding-3-smallOpenAI模型
GEMINI_API_KEY--如果是必需的 EMBEDDING_PROVIDER=gemini
GEMINI_EMBEDDING_MODELtext-embedding-004Gemini模型
VOYAGE_API_KEY--如果是必需的 EMBEDDING_PROVIDER=voyage
VOYAGE_EMBEDDING_MODELvoyage-3航行模型

嵌入尺寸参考

供应商型号尺寸
奥利玛/拥抱脸nomic-embed-text / Xenova/nomic-embed-text-v1768 (默认)
奥利玛/拥抱脸mxbai-embed-large / Xenova/mxbai-embed-large-v11024
奥利玛/拥抱脸all-minilm / Xenova/all-MiniLM-L6-v2384
OpenAItext-embedding-3-small1536
OpenAItext-embedding-3-large3072
双子座text-embedding-004768
航行voyage-31024
航行voyage-3-lite512

______________________________________________________________________

计划重新索引

# Run a one-off re-index (checks hashes, skips unchanged pages)
npm run reindex

# Or from the project directory using node-cron (runs daily at 2 AM)
DATABASE_URL=... node -e "
  const { ReindexJob } = require('./dist/jobs/reindexDocs');
  const job = new ReindexJob();
  job.initialize().then(() => job.scheduleDaily());
"

______________________________________________________________________

项目结构

src/
  config/          env.ts · constants.ts
  vectorstore/     pgvector.ts · schema.sql
  ingestion/       crawler.ts · parser.ts · githubFetcher.ts · markdownParser.ts · chunker.ts · embedder.ts
  server/          mcpServer.ts · toolRegistry.ts
  jobs/            reindexDocs.ts
  index.ts
scripts/
  crawl.ts         CLI ingestion pipeline
  migrate.ts       Dynamic schema migration
config-examples/   claude_desktop.json · claude_code.sh · cursor_mcp.json · vscode_mcp.json
docker-compose.yml
.env.example

______________________________________________________________________

发展

# Type-check
npx tsc --noEmit

# Run crawl with tsx (no build needed)
npm run crawl -- --product ballerina --limit 5

# Run server in dev mode
npm run dev

目录标签

目录标签

搜索检索增强生成TypeScriptClaude文档处理语义搜索本地部署AI助手集成向量数据库

支持客户端

Claude DesktopClaudeCursorVS Code

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

tsc

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP