DuckDuckGo Search with MCP Agent について
DuckDuckGo Search with MCP Agentは、DuckDuckGo検索とLangChain Groq LLMエージェントを組み合わせるPythonサンプルです。MCP経由の非同期接続で検索結果を返します。
主な機能
- 01DuckDuckGo MCPサーバー連携
- 02Groq LLMによる推論
- 03非同期Python実行
- 04モジュール式のサンプル構成
活用シーン
- 01エージェントによるDuckDuckGo検索
- 02MCPクライアントとサーバーの連携学習
MCP 対応
MCPクライアントを起動し、DuckDuckGo検索を提供するduckduckgo-mcp-serverに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP エージェントによる DuckDuckGo 検索
このプロジェクトでは、DuckDuckGo MCP Server と LangChain Groq LLM エージェントを使い、MCP(Micro Component Protocol)経由で高度な検索タスクを実行する方法を紹介します。
機能
- MCP サーバーの統合(DuckDuckGo 検索)
- 推論に Groq LLM(
deepseek-r1-distill-llama-70b)を使用 - 非同期 Python 実行
- シンプルでモジュール化された設計
インストール
- リポジトリをクローンします:
git clone https://github.com/alihassanml/Duckduckgo-with-MCP.git
cd Duckduckgo-with-MCP
- 依存関係をインストールします:
pip install -r requirements.txt
(requirements.txt に langchain_groq、python-dotenv などのライブラリを含めてください。)
.envファイルを設定します:
GROQ_API_KEY=your_groq_api_key_here
- MCP サーバーをインストールします:
uvx -y duckduckgo-mcp-server
(uvx がインストールされていることを確認してください。インストールされていない場合は、インストールしてください。)
使用方法
メインスクリプトを実行します:
python main.py
これにより、次の処理が行われます:
- MCP クライアントを起動します
duckduckgo-mcp-serverに接続します- Groq LLM を使ってスマート検索を実行します
- 結果を出力します
コード例
import asyncio
import os
from dotenv import load_dotenv
from langchain_groq import ChatGroq
from mcp_use import MCPAgent, MCPClient
async def main():
load_dotenv()
config = {
"mcpServers": {
"ddg-search": {
"command": "uvx",
"args": ["-y", "duckduckgo-mcp-server"]
}
}
}
client = MCPClient.from_dict(config)
llm = ChatGroq(model="deepseek-r1-distill-llama-70b")
agent = MCPAgent(llm=llm, client=client, max_steps=30)
result = await agent.run("Find the best restaurant in San Francisco")
print(f"\nResult: {result}")
if __name__ == "__main__":
asyncio.run(main())
リソース
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。