rag-tool-agent
RAG Tool Agent — MCP サーバー
rag-tool-agent-demo プロジェクトの背後にある 2 つのツール(FordA データセットのメモを対象とした検索結果に基づく Q&A と、安全な算術計算機)を、本格的な Model Context Protocol サーバーとして公開します。これにより、MCP 互換の任意のクライアント(Claude Desktop、MCP 対応エージェントハーネス、カスタムホストなど)は、そのプロジェクト独自の CLI や rag-tool-api-docker 内の Flask HTTP ラッパー経由だけでなく、これらのツールを直接呼び出せます。
明確に特定された具体的なギャップを埋めるために構築されました。現在の AI エンジニア/エージェント型アプリケーションの求人情報のいくつかは、MCP(および関連するエージェント間/エージェントと UI 間のプロトコル)に関する実践的な経験を明示的に求めています。これは小規模で、実際に動作するテスト済みの実装であり、裏付けのないプロトコル経験の主張ではありません。
このような構成にした理由
元のエージェントは内部で独自のルーティングを行います。受信した各質問に対して「calculator」か「retrieval」か「direct answer」かを判断する、手作りの if/else です。MCP はこれを逆転させます。ルーティングを行うのは クライアント(LLM/エージェントホスト)であり、各ツールの名前、説明、JSON スキーマのパラメータを読み取って、どれを呼び出すかを決定します。したがって、このサーバーは元のルーティングロジックを再実装するのではなく、基盤となる 2 つの機能をスタンドアロンで独立して呼び出し可能な MCP ツールとして公開し、任意の MCP クライアントがそれらへのルーティングを自身で行えるようにします。これこそがこのプロトコルの本質です。ツールは 1 つのエージェントのディスパッチロジックに組み込まれるのではなく、ホスト非依存になるのです。
search_notes(query: str) -> str— FordA データセットに関する小さなインライン化されたメモコーパスに対する検索型ルックアップです。元のエージェントと同じ[Grounded in N retrieved chunk(s) from ...]出典サフィックス付きで返されるため、クライアントは根拠のある回答と根拠のない回答を区別できます。元のプロジェクトの FAISS/埋め込みインデックスを再構築するのではなく、小さなキーワード重複ランカーを使用します。このプロジェクトの目的は MCP 公開レイヤーであり、その作業を複製することではありません。calculate(expression: str) -> str— 算術ツールです。astベースの安全な評価器により、+ - * / ()と数値リテラルに制限されています(任意の入力に対する生のeval()ではありません)。非算術入力と、__import__('os').system(...)のようなインジェクション試行の両方を拒否することが検証されています。公式の
mcpPython SDK(FastMCP)で構築されています。これは Anthropic が MCP サーバー構築用に公開している SDK と同じものです。
Related MCP server: NotebookLM MCP Server
実行方法
pip install -r requirements.txt
python server.pystdio 経由で動作します。これは、Claude Desktop のような MCP クライアントがサーバーをサブプロセスとして起動して通信するために使用する、標準的なローカルトランスポートです。Claude Desktop でこのサーバーを使用するには、その MCP サーバー設定に以下を追加します:
{
"mcpServers": {
"rag-tool-agent": {
"command": "python",
"args": ["/absolute/path/to/server.py"]
}
}
}テストの実行
pytest tests/ -v11 件のテストがすべて成功しています。ツール関数を直接呼び出すため、ツールロジック自体のユニットレベルカバレッジには MCP トランスポートは不要です:根拠付き検索の回答、グラウンディング件数の契約、算術の正確性(元のエージェント自身が文書化した例と一致する除算の例を含む)、非算術入力とインジェクション入力の拒否、ゼロ除算の処理、説明付きツールの自己登録。
単なる関数としてではなく、実際の MCP サーバーとして検証済み
ユニットテストに加えて、実際の mcp クライアント SDK(ClientSession + stdio_client)を使用したエンドツーエンドの検証も行いました。server.py を実際のサブプロセスとして起動し、MCP の initialize ハンドシェイクを完了し、list_tools() を呼び出し、実際のプロトコル上で両方のツールを呼び出しています:
TOOLS: ['search_notes', 'calculate']
calculate -> 1320 / (3601 + 1320) = 0.2682381629750051
search_notes -> The FordA dataset is a univariate time-series
classification dataset... [Grounded in 3 retrieved chunk(s) from
forda_dataset_notes.md]
calculate(injection) -> Error: could not evaluate "__import__('os')" ...これにより、このサーバーが実際の MCP(ハンドシェイク、ツール検出、ツール呼び出し)を話せること、そして基盤となる Python 関数が単独で動作するだけではないことが確認されます。
他の 2 つのプロジェクトとの関係
rag-tool-agent-demo— 元の CLI エージェントです。LangChain、FAISS、Ollama、LCEL 検索チェーン、計算ツール、LLM 駆動のルーティングを備えています。rag-tool-api-docker— そのエージェントを Flask HTTP API としてラップし、コンテナ化したものです(Docker、マルチステージビルド、非 root ユーザー、ヘルスチェック)。稼働中のコンテナに対して実際の HTTP リクエストを送信して検証済みです。本プロジェクト — 同じ基盤機能(検索、計算)を HTTP ではなく MCP 経由で公開します。これにより、REST クライアントだけでなく、任意の MCP ホストから呼び出せるようになります。
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
- AlicenseNot gradedqualityDmaintenanceEnables basic arithmetic operations (add, subtract, multiply, divide, modulo) via natural language, with a FastMCP-based server and client for exploring MCP tool calling.MIT
- AlicenseNot gradedqualityCmaintenanceExposes Google NotebookLM as MCP tools, enabling management of notebooks, sources, chat, artifacts, and research via natural language.2MIT
- AlicenseNot gradedqualityBmaintenanceEnables document-based Q&A with multi-modal RAG, hybrid retrieval, knowledge graph reasoning, and multi-agent orchestration via MCP tools.4MIT
- FlicenseNot gradedqualityCmaintenanceEnables local document question-answering and retrieval via MCP, supporting multi-turn conversation, intent recognition, and tools for document search, Q&A, and summarization.5
Related MCP Connectors
Free OpenAI-compatible inference with signed provenance receipts and 3 focused MCP tools.
Agentic search over your Dewey document collections from any MCP-compatible client.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
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/SantoshpHiremath/rag-tool-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server