Skip to main content
Glama
Shruti-Gorhe

enterprise-knowledge-mcp

by Shruti-Gorhe

Enterprise Knowledge Assistant

Agentic AI エンタープライズナレッジアシスタントです。RAG、LangGraph、MCP、RAGAS、Ollama、LangSmith を用いて、エンタープライズポリシー文書の質問に回答します。

本システムは、エンタープライズ PDF から関連情報を取得し、LangGraph ワークフローで根拠に基づく応答を生成し、RAGAS でレスポンスを評価し、LangSmith で可観測性を提供します。


1. プロジェクト概要

Enterprise Knowledge Assistant は、エンタープライズ文書に含まれる情報を用いて自然言語の質問に回答するために設計されています。

LLM の事前学習済み知識のみに依存するのではなく、このアプリケーションは Retrieval-Augmented Generation (RAG: 検索拡張生成) ワークフローに従います。

  1. エンタープライズ PDF 文書を読み込みます。

  2. 文書をより小さなチャンクに分割します。

  3. チャンクを埋め込みベクトルに変換します。

  4. 埋め込みベクトルを ChromaDB に保存します。

  5. ユーザーの質問をナレッジベースに対して意味的にマッチングします。

  6. LangGraph Retriever Agent が MCP 統合を通じて関連コンテキストを取得します。

  7. Response Agent が取得したコンテキストに基づいて回答を生成します。

  8. Evaluator Agent が RAGAS を使用して生成された回答を評価します。

  9. LangSmith がエンドツーエンドのトレーシングと可観測性を提供します。

ナレッジソース

このプロジェクトでは、以下のようなエンタープライズ文書を使用します。

  • Remote_Work_Policy.pdf

  • Employee_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-cloud

  • RAGAS 評価

  • 忠実度 (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 Answer

4. 技術スタック

技術 目的


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.pdf

PDF は 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.5

HuggingFaceEmbeddings を通じて使用します。

埋め込みは CPU 構成でローカルに生成され、類似度検索の前に正規化されます。


6.5 ベクトルデータベース

このプロジェクトでは以下を使用します。

ChromaDB

コレクション:

enterprise_knowledge

永続化されたベクトルデータベース:

./chroma_db

6.6 検索

Retriever は ChromaDB に対して意味的類似度検索を実行します。

現在のデフォルトの取得数は次のとおりです。

TOP_K = 4

取得されたチャンクはコンテキストとして Response Agent に渡されます。


7. LangGraph 設計

LangGraph は Agentic AI ワークフローをオーケストレーションします。

グラフ

START
  |
  v
Retriever Agent
  |
  v
Response Agent
  |
  v
Evaluator Agent
  |
  v
END

7.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.py

MCP サーバーは 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-assistant

API キーは GitHub にコミットしないでください。


11. セットアップ手順

前提条件

  • Python 3.10+

  • Ollama

  • Git

仮想環境の作成

Windows

python -m venv venv
venv\Scripts\activate

Linux/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-assistant

12. 文書の取り込み

エンタープライズ PDF を以下の場所に配置します。

data/
├── Remote_Work_Policy.pdf
└── Employee_Handbook.pdf

実行:

python -m scripts.ingest

取り込みパイプラインは次のとおりです。

PDF
 |
 v
Text Extraction
 |
 v
Chunking
 |
 v
Embedding Generation
 |
 v
ChromaDB

13. アプリケーションの実行

取り込み後:

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 トレーシングと可観測性を示します。

EKA1 - LangSmith Observability

EKA2 --- アプリケーション起動

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

EKA2 - Application Startup

EKA3 --- RAGAS 評価結果

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

EKA3 - RAGAS Evaluation

EKA4 --- 最終アプリケーション出力

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

EKA4 - Final Output

EKA5 --- MCP ツール呼び出し

Retriever Agent が以下を呼び出していることを示します。

Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.

これは、グラフ実行中に MCP が積極的に使用されていることを示す直接的な証拠です。

EKA5 - MCP Tool Invocation

EKA6 --- RAGAS 評価と最終結果

Evaluator Agent、忠実度、回答関連性、解釈、生成結果を示します。

EKA6 - RAGAS Evaluation

EKA7 --- 最終出力、ソース、RAGAS

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

EKA7 - Final Output and RAGAS


17. 要件への準拠

このプロジェクトは、RAG、LangGraph、MCP、評価、可観測性、最終応答生成にわたる、指定された Enterprise Knowledge Assistant の要件を満たしています。

要件

ステータス

実装

エンタープライズナレッジソース

満たしている

エンタープライズ PDF 文書が PyPDF で読み込まれます。Remote_Work_Policy.pdfEmployee_Handbook.pdf が含まれ、ソースとページのメタデータが保持されます。

RAG 実装

満たしている

文書は再帰的テキスト分割 (chunk_size=800chunk_overlap=120) でチャンク化され、BAAI/bge-small-en-v1.5 で埋め込み、ChromaDB に保存、セマンティック検索で取得され、LLM に渡されて根拠に基づく応答が生成されます。

LangGraph

満たしている

StateGraph が共有状態を使用して Retriever Agent → Response Agent → Evaluator Agent ワークフローをオーケストレーションします。

MCP 統合

満たしている

カスタム MCP サーバーが search_enterprise_knowledgeget_document_sources を公開します。LangGraph Retriever Agent は実行中に 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可観測性 → 最終出力

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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