enterprise-knowledge-mcp
Enterprise Knowledge Assistant
Agentic AI エンタープライズナレッジアシスタントです。RAG、LangGraph、MCP、RAGAS、Ollama、LangSmith を用いて、エンタープライズポリシー文書の質問に回答します。
本システムは、エンタープライズ PDF から関連情報を取得し、LangGraph ワークフローで根拠に基づく応答を生成し、RAGAS でレスポンスを評価し、LangSmith で可観測性を提供します。
1. プロジェクト概要
Enterprise Knowledge Assistant は、エンタープライズ文書に含まれる情報を用いて自然言語の質問に回答するために設計されています。
LLM の事前学習済み知識のみに依存するのではなく、このアプリケーションは Retrieval-Augmented Generation (RAG: 検索拡張生成) ワークフローに従います。
エンタープライズ PDF 文書を読み込みます。
文書をより小さなチャンクに分割します。
チャンクを埋め込みベクトルに変換します。
埋め込みベクトルを ChromaDB に保存します。
ユーザーの質問をナレッジベースに対して意味的にマッチングします。
LangGraph Retriever Agent が MCP 統合を通じて関連コンテキストを取得します。
Response Agent が取得したコンテキストに基づいて回答を生成します。
Evaluator Agent が RAGAS を使用して生成された回答を評価します。
LangSmith がエンドツーエンドのトレーシングと可観測性を提供します。
ナレッジソース
このプロジェクトでは、以下のようなエンタープライズ文書を使用します。
Remote_Work_Policy.pdfEmployee_Handbook.pdf
Related MCP server: Corporate Tools MCP Server
2. 主な機能
エンタープライズ文書の質疑応答
Retrieval-Augmented Generation (RAG: 検索拡張生成)
エンタープライズ文書に対するセマンティック検索
ChromaDB ベクトルデータベース
HuggingFace 埋め込み
LangGraph エージェントオーケストレーション
カスタム MCP サーバー
MCP ツールベースのエンタープライズナレッジ取得
LangGraph Retriever Agent による MCP の積極的な使用
Ollama LLM 推論
応答生成用の
gpt-oss:120b-cloudRAGAS 評価
忠実度 (Faithfulness) 評価
回答関連性 (Answer Relevancy) 評価
LangSmith トレーシングと可観測性
ノード単位の LangGraph 実行の可視化
ソースの帰属表示
モジュール式 Python アーキテクチャ
3. アーキテクチャ概要
flowchart TD
A[User Question] --> B[LangGraph Orchestrator]
B --> C[Retriever Agent]
C --> D[MCP Client]
D --> E[Custom MCP Server]
E --> F[search_enterprise_knowledge]
F --> G[ChromaDB Vector Search]
G --> H[Relevant Document Chunks]
H --> C
C --> I[Response Agent]
I --> J[gpt-oss:120b-cloud]
J --> K[Evaluator Agent]
K --> L[RAGAS]
L --> M[Final Answer + Evaluation]
B -. tracing .-> N[LangSmith]高レベルフロー
User Question
|
v
LangGraph
|
v
Retriever Agent
|
v
MCP Client
|
v
MCP Server
|
v
search_enterprise_knowledge
|
v
ChromaDB
|
v
Retrieved Context
|
v
Response Agent
|
v
gpt-oss:120b-cloud
|
v
Evaluator Agent
|
v
RAGAS
|
v
Final Answer4. 技術スタック
技術 目的
Python コアアプリケーション
LangChain LLM および RAG コンポーネント
LangGraph エージェントワークフローのオーケストレーション
ChromaDB ベクトルデータベース
HuggingFace 文書埋め込み
Ollama LLM 推論インターフェース
gpt-oss:120b-cloud 応答生成
qwen3:4b 評価モデル
RAGAS RAG 評価
MCP ツールベースのナレッジアクセス
LangSmith 可観測性とトレーシング
PyPDF PDF 文書の読み込み
python-dotenv 環境設定
5. プロジェクト構造
enterprise-knowledge-assistant/
│
├── data/
│ ├── Remote_Work_Policy.pdf
│ └── Employee_Handbook.pdf
│
├── chroma_db/
│
├── mcp_server/
│ └── server.py
│
├── src/
│ ├── agents/
│ │ ├── retriever_agent.py
│ │ ├── response_agent.py
│ │ └── evaluator_agent.py
│ │
│ ├── rag/
│ │ ├── loader.py
│ │ ├── embeddings.py
│ │ ├── vectorstore.py
│ │ └── retriever.py
│ │
│ ├── graph.py
│ ├── state.py
│ └── config.py
│
├── scripts/
│ ├── ingest.py
│ └── run.py
│
├── screenshots/
│ ├── EKA1.png
│ ├── EKA2.png
│ ├── EKA3.png
│ ├── EKA4.png
│ ├── EKA5.png
│ ├── EKA6.png
│ └── EKA7.png
│
├── .env
├── .gitignore
├── requirements.txt
└── README.md
.envはソース管理に含めないでください。API キーやシークレットは GitHub にコミットしてはいけません。
6. RAG 設計
6.1 文書ソース
ナレッジベースにはエンタープライズ PDF 文書が含まれます。
Remote_Work_Policy.pdf
Employee_Handbook.pdf
Leave_Policy.pdfPDF は pypdf を使用して読み込まれます。
各ページはソースとページのメタデータとともに処理され、取得した情報がどの文書に由来するかを関連付けることができるようになります。
6.2 文書の読み込み
取り込みパイプラインは次のとおりです。
PDF Documents
|
v
PyPDF
|
v
Page-level Text Extraction
|
v
Source + Page Metadataローダーはテキストをページごとに抽出し、以下を保存します。
文書テキスト
ソースファイル名
ページ番号
6.3 チャンキング戦略
このプロジェクトでは RecursiveCharacterTextSplitter を使用しています。
現在の設定:
chunk_size = 800
chunk_overlap = 120オーバーラップは隣接するチャンク間のコンテキストを保持するのに役立ちます。
チャンク化には以下の利点があります。
検索精度の向上
不要なコンテキストの削減
プロンプトを管理しやすいサイズに保つ
意味のあるポリシーセクションを保持する
6.4 埋め込みモデル
このプロジェクトでは以下を使用します。
BAAI/bge-small-en-v1.5HuggingFaceEmbeddings を通じて使用します。
埋め込みは CPU 構成でローカルに生成され、類似度検索の前に正規化されます。
6.5 ベクトルデータベース
このプロジェクトでは以下を使用します。
ChromaDBコレクション:
enterprise_knowledge永続化されたベクトルデータベース:
./chroma_db6.6 検索
Retriever は ChromaDB に対して意味的類似度検索を実行します。
現在のデフォルトの取得数は次のとおりです。
TOP_K = 4取得されたチャンクはコンテキストとして Response Agent に渡されます。
7. LangGraph 設計
LangGraph は Agentic AI ワークフローをオーケストレーションします。
グラフ
START
|
v
Retriever Agent
|
v
Response Agent
|
v
Evaluator Agent
|
v
END7.1 ノード 1 --- Retriever Agent
役割
ユーザーの質問に関連するエンタープライズナレッジを取得します。
処理
Question
|
v
MCP Client
|
v
MCP Server
|
v
search_enterprise_knowledge
|
v
RAG / ChromaDB
|
v
Relevant Context出力
取得したコンテキスト
ソース情報
Retriever Agent は、通常の LangGraph 実行中に MCP ツールを積極的に呼び出します。
7.2 ノード 2 --- Response Agent
役割
ユーザーの質問と取得したエンタープライズコンテキストを使用して、最終回答を生成します。
モデル
gpt-oss:120b-cloud入力
ユーザーの質問
取得したコンテキスト
出力
根拠に基づく自然言語の応答。
7.3 ノード 3 --- Evaluator Agent
役割
生成された回答を評価します。
メトリクス
忠実度 (Faithfulness)
回答関連性 (Answer Relevancy)
スコアと解釈は最終的なアプリケーション結果に追加されます。
8. MCP 統合
このプロジェクトには、エンタープライズナレッジ取得用のカスタム MCP サーバーが含まれています。
MCP サーバー
mcp_server/server.pyMCP サーバーは MCP Python SDK を使用して実装されています。
MCP ツール
search_enterprise_knowledge
自然言語クエリを使用してエンタープライズナレッジベースを検索します。
例:
search_enterprise_knowledge(
query="What are the key requirements for employees working remotely?"
)get_document_sources
利用可能なエンタープライズ文書ソースを返します。
8.1 LangGraph による MCP の積極的な使用
これはプロジェクトの主要な要件です。
MCP 統合は、通常の LangGraph 実行中に積極的に使用されます。これは単なるスタンドアロンサーバーではありません。
実行フローは次のとおりです。
LangGraph Retriever Agent
|
v
MCP Client
|
v
MCP Server
|
v
search_enterprise_knowledge
|
v
RAG Search
|
v
Retrieved Contextアプリケーションの出力は呼び出しを明示的に確認します。
NODE 1: RETRIEVER AGENT
Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.これは、LangGraph ノードが実行中に MCP 統合を積極的に使用していることを示しています。
8.2 MCP ツールの確認
プロジェクトルートから:
python -c "import asyncio; from mcp_server.server import mcp; tools=asyncio.run(mcp.list_tools()); print([t.name for t in tools])"期待される出力:
['search_enterprise_knowledge', 'get_document_sources']9. RAGAS 評価
RAGAS は生成された応答の品質を評価します。
収集されるメトリクス
忠実度 (Faithfulness)
生成された回答が取得されたコンテキストによって裏付けられているかを測定します。
回答関連性 (Answer Relevancy)
生成された応答がユーザーの質問に回答しているかを測定します。
評価フロー
Retrieved Context
|
v
Generated Answer
|
+----------------------+
| |
v v
Faithfulness Answer Relevancy
| |
+----------+-----------+
|
v
RAGAS Result評価例
最近のアプリケーション実行の成功例では、以下が生成されました。
Faithfulness: 0.9500
Answer Relevancy: 0.9500
Interpretation: Excellentスコアは、質問、取得されたコンテキスト、生成された応答、評価モデル、評価条件によって異なる場合があります。
10. LangSmith 可観測性
LangSmith は Agentic AI ワークフローに可観測性を提供します。
以下を検査できます。
LangGraph 実行
個々のグラフノード
LLM 呼び出し
入力と出力
実行レイテンシ
評価結果
ワークフローの動作
設定例:
LANGSMITH_TRACING=true
LANGSMITH_API_KEY=<your-langsmith-api-key>
LANGSMITH_PROJECT=enterprise-knowledge-assistantAPI キーは GitHub にコミットしないでください。
11. セットアップ手順
前提条件
Python 3.10+
Ollama
Git
仮想環境の作成
Windows
python -m venv venv
venv\Scripts\activateLinux/macOS
python3 -m venv venv
source venv/bin/activate依存関係のインストール
python -m pip install -r requirements.txt環境の設定
プロジェクトルートに .env を作成します。
OLLAMA_BASE_URL=http://localhost:11434
LLM_MODEL=gpt-oss:120b-cloud
EVALUATOR_MODEL=qwen3:4b
EMBEDDING_MODEL=BAAI/bge-small-en-v1.5
VECTOR_DB_PATH=./chroma_db
COLLECTION_NAME=enterprise_knowledge
TOP_K=4
LANGSMITH_TRACING=true
LANGSMITH_API_KEY=<your-langsmith-api-key>
LANGSMITH_PROJECT=enterprise-knowledge-assistant12. 文書の取り込み
エンタープライズ PDF を以下の場所に配置します。
data/
├── Remote_Work_Policy.pdf
└── Employee_Handbook.pdf実行:
python -m scripts.ingest取り込みパイプラインは次のとおりです。
PDF
|
v
Text Extraction
|
v
Chunking
|
v
Embedding Generation
|
v
ChromaDB13. アプリケーションの実行
取り込み後:
python -m scripts.run次のように表示されます。
============================================================
ENTERPRISE KNOWLEDGE ASSISTANT
============================================================
Ask your question:自然言語の質問を入力してください。
14. サンプル質問
What are the key requirements for employees working remotely?What is the remote work policy?What are the rules regarding working from another city or country?What information security requirements apply to remote workers?What should an employee do if internet or power issues prevent them from working remotely?15. 期待される実行
成功した実行は次の順序に従います。
============================================================
NODE 1: RETRIEVER AGENT
============================================================
Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.
============================================================
NODE 2: RESPONSE AGENT
============================================================
Generated answer:
...
============================================================
NODE 3: EVALUATOR AGENT
============================================================
Running local evaluation...
EVALUATION RESULTS
----------------------------------------
Faithfulness: 0.9500
Answer Relevancy: 0.9500
Interpretation: Excellent最終結果には以下が含まれます。
質問
生成された回答
ソース
RAGAS スコア
評価の解釈
16. 証拠とスクリーンショット
すべてのスクリーンショットは screenshots/ ディレクトリに配置してください。
EKA1 --- LangSmith 可観測性
LangGraph ワークフローの LangSmith トレーシングと可観測性を示します。

EKA2 --- アプリケーション起動
アプリケーションの起動とユーザーの質問を示します。

EKA3 --- RAGAS 評価結果
RAGAS の評価結果を示します。

EKA4 --- 最終アプリケーション出力
アプリケーションによって生成された最終回答を示します。

EKA5 --- MCP ツール呼び出し
Retriever Agent が以下を呼び出していることを示します。
Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.これは、グラフ実行中に MCP が積極的に使用されていることを示す直接的な証拠です。

EKA6 --- RAGAS 評価と最終結果
Evaluator Agent、忠実度、回答関連性、解釈、生成結果を示します。

EKA7 --- 最終出力、ソース、RAGAS
最終回答、MCP ソース情報、RAGAS スコアを示します。

17. 要件への準拠
このプロジェクトは、RAG、LangGraph、MCP、評価、可観測性、最終応答生成にわたる、指定された Enterprise Knowledge Assistant の要件を満たしています。
要件 | ステータス | 実装 |
エンタープライズナレッジソース | 満たしている | エンタープライズ PDF 文書が PyPDF で読み込まれます。 |
RAG 実装 | 満たしている | 文書は再帰的テキスト分割 ( |
LangGraph | 満たしている |
|
MCP 統合 | 満たしている | カスタム MCP サーバーが |
RAGAS 評価 | 満たしている | Evaluator Agent が忠実度と回答関連性を計算し、評価結果と解釈を表示します。例: 忠実度 0.95、回答関連性 0.95 — 優秀。 |
可観測性 | 満たしている | LangSmith トレーシングにより、LangGraph 実行、個々のノード、LLM 呼び出し、入力、出力、レイテンシ、取得コンテキスト、評価結果を可視化できます。 |
グラフ実行トレース | 満たしている | Retriever Agent、Response Agent、Evaluator Agent のノード単位の実行が、アプリケーション出力と LangSmith の両方でキャプチャされます。 |
最終アプリケーション出力 | 満たしている | アプリケーションは、ユーザーの質問、生成された応答、ソース情報、RAGAS スコア、評価の解釈を含む根拠に基づく最終回答を生成します。 |
全体的なステータス
指定されたすべてのプロジェクト要件が実装され、満たされています。
完全なワークフローは次のとおりです。
エンタープライズPDF → RAG検索 → MCPツール → LangGraphエージェント → LLM応答 → RAGAS評価 → LangSmith可観測性 → 最終出力
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables hybrid search over policies using Reciprocal Rank Fusion and provides grounded, context-aware answers via a LangGraph agent with COSTAR prompting.3
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to search HR policies, create IT support tickets, and send external emails with configurable security levels and human-in-the-loop validation.
- FlicenseNot gradedqualityCmaintenanceEnables querying company knowledge base using RAG, providing accurate answers from internal documents via MCP.
- FlicenseNot gradedqualityBmaintenanceEnables SQL query execution and knowledge base search via RAG agent through two tools.
Related MCP Connectors
Your company's brain for AI agents. Cited, permission-aware knowledge across every system.
Shared, permission-aware company context for AI agents, with provenance, approvals and audit.
Search your knowledge bases from any AI assistant using hybrid RAG.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Shruti-Gorhe/enterprise-knowledge-assistant'
If you have feedback or need assistance with the MCP directory API, please join our Discord server