搜索引擎MCP服务器
一组提供搜索引擎功能、文件管理、股票数据访问和创意写作提示的MCP(模型上下文协议)服务器。这些服务器可与各种MCP兼容的客户端一起使用,包括人工智能应用、Claude桌面应用以及自定义的FastAPI应用。
MCP服务器概述
这个项目包括四台MCP服务器,每台服务器提供不同的功能:
1. 网络搜索服务器(server.py)
类型: MCP工具
- 描述: 提供使用Tavily API的网页搜索功能
- 用法:
web_search(query)- 在网上搜索信息 - 特点: 实时网页搜索,提供结构化结果
- 交通: 可流式传输的HTTP(运行在端口10000)
- 要求: TAVILY_API_KEY 环境变量
2. 文件管理工具(file_management_tool.py)
类型: MCP工具
- 描述: 在指定目录中创建包含指定内容的文本文件
- 用法:
create_text_file(directory_path, file_name, content) - 交通: STDIO(用于AI应用)/ HTTP(用于FastAPI)
3. 股票数据资源(stock_data_resource.py)
类型: MCP资源
- 描述: 利用雅虎财经API提供实时股市数据
- 用法: 通过……访问
stock://{ticker_symbol}资源URI - 特点: 当前价格,日最高/最低价,公司简介
- 交通: STDIO(用于AI应用)/ HTTP(用于FastAPI)
4. 创意写作提示(creative_writing_prompt.py)
类型: MCP 提示
- 描述: 根据类型、角色和场景生成创意故事开头
- 用法:
generate_story_starter(genre, main_character_trait, setting) - 特点: 支持多种类型(科幻、奇幻、恐怖、悬疑)
- 交通: STDIO(用于AI应用)/ HTTP(用于FastAPI)
安装
- 克隆仓库:
git clone https://github.com/0Jos-hua0/MCP-server-guide
cd SearchEngineMCP- 安装依赖项:
uv install- 安装额外要求:
pip install yfinance tavily python-dotenv # Required for stock data, web search, and environment variables- 设置环境变量:
# Create .env file with required API keys
echo "TAVILY_API_KEY=your_tavily_api_key_here" > .env使用选项
选项1:网络搜索服务器(Tavily API)
单独运行网络搜索服务器:
uv run server.py这启动了网页搜索服务器 http://localhost:10000 以MCP(可能是指某种医疗、科学或技术领域的特定端点或标准)端点为 /mcp/。
MCP配置:
{
"tavily": {
"url": "http://localhost:10000/mcp/"
}
}选项2:集成FastAPI HTTP服务器(文件、股票、提示)
通过一个单一的FastAPI应用程序来运行文件管理、库存数据和创意写作服务器:
uv run fastAPI/server.py这启动了一个FastAPI服务器 http://localhost:10000 具有以下终点:
/file- 文件管理操作/stock- 库存数据访问/prompt- 创意写作提示
选项3:独立的HTTP服务器
分别使用HTTP传输运行每个MCP服务器:
# File management
uv run fastAPI/file_management_tool.py
# Stock data
uv run fastAPI/stock_data_resource.py
# Creative writing
uv run fastAPI/creative_writing_prompt.py选项4:AI应用STDIO服务器(推荐用于桌面AI集成)
用于支持STDIO传输的人工智能应用程序:
# File management
uv run LocalAIuse/file_management_tool.py
# Stock data
uv run LocalAIuse/stock_data_resource.py
# Creative writing
uv run LocalAIuse/creative_writing_prompt.py人工智能应用集成
对于AI应用,请在您的应用配置文件中配置服务器:
mcp_servers:
- name: "tavily"
cmd: "C:\\Users\\GIGO PETER\\.local\\bin\\uv.EXE"
args: ["run", "D:\\D DRIVE\\Projects\\SearchEngineMCP\\server.py"]
env: []
- name: "file-ops"
cmd: "C:\\Users\\GIGO PETER\\.local\\bin\\uv.EXE"
args: ["run", "D:\\D DRIVE\\Projects\\SearchEngineMCP\\LocalAIuse\\file_management_tool.py"]
env: []
- name: "stock-data"
cmd: "C:\\Users\\GIGO PETER\\.local\\bin\\uv.EXE"
args: ["run", "D:\\D DRIVE\\Projects\\SearchEngineMCP\\LocalAIuse\\stock_data_resource.py"]
env: []
- name: "creative-prompts"
cmd: "C:\\Users\\GIGO PETER\\.local\\bin\\uv.EXE"
args: ["run", "D:\\D DRIVE\\Projects\\SearchEngineMCP\\LocalAIuse\\creative_writing_prompt.py"]
env: []重要提示: 更新MCP配置文件后,必须重启AI应用程序以使更改生效:
- 完全关闭人工智能应用程序
- 打开任务管理器并结束所有剩余进程(搜索应用程序名称)
- 重启应用程序
选项5:测试MCP服务器
用于开发和测试:
uv run mcp dev server.py测试服务器URL:
- 文件管理服务器:
http://127.0.0.1/file/mcp - 股票数据服务器:
http://127.0.0.1/stock/mcp - 创意写作服务器:
http://127.0.0.1/prompt/mcp
API 示例
网页搜索
# Perform web search
results = await mcp_client.call_tool(
"web_search",
query="latest news on artificial intelligence"
)
# Returns: Structured search results from Tavily API文件管理
# Create a text file
result = await mcp_client.call_tool(
"create_text_file",
directory_path="/path/to/documents",
file_name="notes.txt",
content="This is my note content"
)股票数据
# Access stock information
stock_info = await mcp_client.read_resource("stock://AAPL")
# Returns: current price, daily high/low, company summary创意写作
# Generate a story starter
story = await mcp_client.call_prompt(
"generate_story_starter",
genre="Sci-Fi",
main_character_trait="A skeptical detective",
setting="A city where it never stops raining"
)发展
项目结构
SearchEngineMCP/
├── server.py # Web search server (Tavily API)
├── fastAPI/
│ ├── server.py # Combined FastAPI server
│ ├── file_management_tool.py
│ ├── stock_data_resource.py
│ └── creative_writing_prompt.py
├── LocalAIuse/ # STDIO server implementations
│ ├── file_management_tool.py
│ ├── stock_data_resource.py
│ └── creative_writing_prompt.py
└── claude_desktop_config.json # Claude Desktop configuration example添加新的MCP服务器
- 在两者中创建您的MCP服务器
fastAPI/和LocalAIuse/目录(或文件夹) - 更新主(程序/系统/内容等)
server.py包括新服务器 - 更新配置文件(Claude Desktop,LocalAI)
- 更新此README文件
运输方式
- STDIO:(可翻译为)标准输入输出(或简称标准I/O) 用于直接进程通信的标准输入/输出传输
- HTTP: (可翻译为“超文本传输协议:”) 基于网络的传输以实现网络访问
- 可流式传输的HTTP: 无状态HTTP传输用于无服务器部署
依赖项
mcp- 模型上下文协议库fastmcp- FastMCP服务器实现yfinance雅虎财经API客户端(用于股票数据)tavilyTavily API客户端(用于网页搜索)python-dotenv- 环境变量管理uvicorn- ASGI服务器(用于FastAPI)
贡献;做出贡献
- 克隆该仓库
- 创建一个特性分支
- 进行你的更改
- 如适用,请添加测试
- 提交拉取请求
支持
对于问题和疑问:
