mcp-tool-server
A custom MCP server with 6 utility tools (file search, file reading, math calculation, JSON formatting, time query, system info) that demonstrates MCP protocol workflow and integrates with LangChain agents.
README
自定义 MCP Server — 从零理解 MCP 协议
这是什么?
一个从头手写的 MCP (Model Context Protocol) 工具服务器,包含 6 个实用工具。
配合 LangChain Agent 客户端,完整演示了 MCP 协议的核心工作流:
MCP Server (工具提供方) LangChain Agent (工具消费方)
───────────────────────── ───────────────────────────
定义工具 + 参数 Schema ←→ 自动发现工具 (tools/list)
等待工具调用 ←→ 调用工具 (tools/call)
返回执行结果 ←→ LLM 推理 → 最终回答
项目结构
my-mcp-server/
├── mcp_server.py # MCP Server: 6 个工具, 支持 HTTP/stdio 双模式
├── agent_client.py # LangChain Agent: 自动发现并调用 MCP 工具
├── pyproject.toml # 依赖清单
├── .env.example # 环境变量模板
└── README.md # 你正在看的文件
快速开始
1. 安装依赖
pip install fastmcp langchain langchain-openai langchain-mcp-adapters python-dotenv
2. 设置 API Key
cp .env.example .env
# 编辑 .env, 填入你的 OPENAI_API_KEY
3. 启动 MCP Server
# 终端 1: HTTP 模式 (推荐,方便调试)
python mcp_server.py --transport http --port 8000
4. 运行 Agent 客户端
# 终端 2: 交互模式
python agent_client.py
# 或者单次提问
python agent_client.py "帮我搜索当前目录下所有的 Python 文件"
包含的工具
| 工具名 | 功能 | 示例 |
|---|---|---|
search_files |
按文件名模式搜索本地文件 | "找所有 .py 文件" |
read_text_file |
读取文本文件内容 | "读取 README.md" |
calculate |
安全的数学表达式求值 | "计算 3+5*7" |
json_formatter |
JSON 格式化/美化 | "格式化这段 JSON" |
get_current_time |
查询当前时间 (支持时区) | "现在几点了?" |
system_info |
查看系统信息 | "我的系统是什么?" |
MCP 协议核心概念
tools/list — 工具发现
Agent 启动时调用,服务器返回所有可用工具的清单。每个工具包含:
- name: 工具名 (如
calculate) - description: 功能描述 (LLM 读这个来决定要不要用)
- inputSchema: 参数定义 (JSON Schema 格式,描述每个参数的类型、是否必填)
tools/call — 工具调用
Agent 决定使用某个工具时调用,传入工具名和参数。服务器执行后返回结果。
为什么不用硬编码?
传统做法:
# 每加一个工具都要改 Agent 代码
tools = [calculator_tool, search_tool, ...] # 硬编码
MCP 做法:
# Agent 启动时自动发现工具,不用改代码
mcp_client = MultiServerMCPClient({"server": {"url": "..."}})
tools = await mcp_client.get_tools() # 自动发现!
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。