Skip to main content
Glama
enterprise-knowledge-mcp

enterprise-knowledge-mcp

by xuenyuxey

Enterprise Knowledge MCP

Model Context Protocol (MCP) に基づくエンタープライズ知識管理サービス。

大言語モデルに3つのコア機能を提供します:

ツール

機能

search_knowledge

エンタープライズ知識ベースをセマンティック検索

get_document

ドキュメントIDで完全なドキュメントを取得

search_cases

エンタープライズプロジェクト事例を検索

プロジェクト構造

enterprise-knowledge-mcp/
├── src/
│   └── enterprise_knowledge_mcp/
│       ├── __init__.py          # 包入口
│       ├── server.py            # MCP 工具注册(协议层)
│       └── retriever.py         # 检索逻辑(业务层)
├── tests/
│   ├── test_server.py           # 单元测试
│   └── test_e2e.py              # MCP Client 端到端测试
├── scripts/
│   ├── seed_data.py             # 导入示例数据到 ChromaDB
│   └── download_model.py        # 下载嵌入模型(离线环境用)
├── pyproject.toml
├── server.json                  # MCP 服务描述清单
├── README.md
└── LICENSE

Related MCP server: MCP Knowledge Base Server

アーキテクチャ設計

┌─────────────────────────────────────────┐
│  server.py  (协议层)                     │
│  - 注册 MCP Tool                        │
│  - 参数校验 & 输出格式化                  │
└──────────────┬──────────────────────────┘
               │ 调用
┌──────────────▼──────────────────────────┐
│  retriever.py  (业务层)                  │
│  - KnowledgeRetriever  知识库检索        │
│  - DocumentRetriever   文档检索          │
│  - CaseRetriever       案例检索          │
└──────────────┬──────────────────────────┘
               │ 替换实现
┌──────────────▼──────────────────────────┐
│  数据层(可插拔)                         │
│  - MockRetriever     开发/测试用          │
│  - ChromaRetriever   ChromaDB 向量检索   │
│  - 自定义 Retriever   ES / 数据库 / ...   │
└─────────────────────────────────────────┘

リトリーバーは基底クラス + 実装のプラグイン可能な設計を採用しています。server.py 内でインスタンス化オブジェクトを交換するだけでバックエンドを切り替えられ、ツール登録コードの変更は不要です。

クイックスタート

インストール

# 克隆仓库
git clone https://github.com/your-username/enterprise-knowledge-mcp.git
cd enterprise-knowledge-mcp

# 创建虚拟环境
python -m venv .venv
.venv\Scripts\activate        # Windows
# source .venv/bin/activate   # Linux/macOS

# 安装(开发模式)
pip install -e ".[dev]"

ChromaDB データの初期化

# 导入示例企业知识数据(知识库 5 条、文档 3 篇、案例 4 个)
python scripts/seed_data.py

サービスの実行

# Mock 模式(无需 ChromaDB 数据)
python -m enterprise_knowledge_mcp.server

# ChromaDB 模式(需先执行 seed_data.py)
RETRIEVER_BACKEND=chroma python -m enterprise_knowledge_mcp.server

テストの実行

pytest tests/ -v

MCP クライアントへの接続

Claude Desktop

claude_desktop_config.json に追加:

{
  "mcpServers": {
    "enterprise-knowledge": {
      "command": "python",
      "args": ["-m", "enterprise_knowledge_mcp.server"],
      "cwd": "C:/path/to/enterprise-knowledge-mcp"
    }
  }
}

Python SDK

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

server_params = StdioServerParameters(
    command="python",
    args=["-m", "enterprise_knowledge_mcp.server"],
)

async with stdio_client(server_params) as (read, write):
    async with ClientSession(read, write) as session:
        await session.initialize()
        result = await session.call_tool(
            "search_knowledge", {"query": "人工智能"}
        )
        print(result.content[0].text)

カスタムリトリーバー

基底クラスを継承し、retrieve / get_document / search_cases メソッドを実装:

from enterprise_knowledge_mcp.retriever import (
    KnowledgeRetriever,
    SearchResult,
)

class MyRetriever(KnowledgeRetriever):
    def retrieve(self, query: str, top_k: int = 5) -> list[SearchResult]:
        # 你的检索逻辑
        return [SearchResult(text="...", source="...", score=0.9)]

その後、server.py 内で置き換え:

from .retriever import MyRetriever

knowledge_retriever = MyRetriever()

ライセンス

MIT

Related MCP Connectors

Related MCP Servers