
教你手把手写一个MCP 服务应用,太好玩了!
看再多MCP教程,都不如直接上手写一个。
Deepseek等模型训练经验告诉我们:
“干中学” 效率最高。
本文推荐一些常用AI编程工具,然后一步步教你写一个 MCP 服务器。
最后,再推荐一些好用的 MCP 应用市场。
MCP 是未来让 AI Agent变得更简单易用的关键,趋势已非常明显,值得持续跟进学习。
工欲善其事必先利器
Claude Sonnet 3.5问世后,带动用这个模型的 AI编程工具大火。
下面是常见的 AI 辅助编程工具,付费的有Cursor、Windsurf,免费的可选Trae(字节出品)。
喜欢自定义和DIY的,推荐Visual Studio Code + Cline,再配置各种免费薅的 API key。
比如 Gemini 或者 火山方舟Deepseek V3,一定可以达到可用程度。
关于如何免费获取API key,之前写有教程:
Cursor
Windsurf:
Trae:
Visual Code + Cline
手把手创建第一个MCP Server
有编程工具,接下来,手把手教完成第一个MCP server
第一步:打开系统终端或安装第三方工具
强推Warp,AI时代的 Terminal,有LLM加持,真的好用,且全平台支持(Linux、Windows、Mac)。
虽然要求注册账号登录有点怪,但也能理解。
官网下载: https://www.warp.dev/
第二步:创建MCP项目
终端中输入命令: mkdir mcp-demo
,敲回车
命令作用:创建一个文件夹,叫 mcp-demo
输入: cd mcp-demo
进入文件夹
输入: touch main.py
创建一个叫main.py的文件。
然后输入 python -m venv myenv
创建一个叫“myenv”的虚拟环境,避免Python库版本冲突。
激活虚拟环境
- macOS/Linux下输入:
source myenv/bin/activate
- Windows 输入:
myenv\Scripts\activate
第三步:安装SDK,输入代码
安装MCP的Python SDK,命令:pip install mcp
其他安装方法和介绍见: https://github.com/modelcontextprotocol/python-sdk
接着,用任意代码编辑器打开 main.py,输入以下内容:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import httpx
from mcp.server.fastmcp import FastMCP
# 创建MCP服务器
mcp = FastMCP("Demo")
# 简单加法工具
@mcp.tool()
def add(a: int, b: int) -> int:
"""两数相加"""
return a + b
# 直接运行时的入口点
if __name__ == "__main__":
print("服务已启动")
创建一个最简单的MCP服务器,只提供一个工具:两个数字的加法。
使用 MCP 服务器
Cursor 为例
首选项->Cursor Settings,打开如下图,点击“Add new MCP server”
Name:随便起名
Command: mcp run /创建文件的完整目录/mcp-test/main.py
过一会,MCP服务器会启动,指示器会变绿色。
Cursor右侧对话,输入 add 6,89
,调用MCP中的add完成计算。
Cline 为例
打开Cline插件,按图示顺序点击
打开MCP servers ->installed->Configure MCP Servers
编辑配置文件,添加一条:
"mcp-test": {
"command": "mcp-test",
"args": [
"run",
"/创建文件的完整目录/mcp-test/main.py"
],
"disabled": false,
"autoApprove": [
"add"
]
}
持续迭代MCP功能
如果觉得上面的例子太简单。
你可以在这个main.py 代码 基础上迭代,给MCP增加更多Tool,甚至还可以看官方文档,增加Resource或Prompt调用。
举个例子,再增加一个叫call_llm的工具,让它调用火山方舟的Deepseek V3回答问题。
迭代后代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import httpx
from mcp.server.fastmcp import FastMCP
# 创建MCP服务器
mcp = FastMCP("Demo")
# 简单加法工具
@mcp.tool()
def add(a: int, b: int) -> int:
"""两数相加"""
return a + b
# LLM API调用工具
@mcp.tool()
def call_llm(prompt: str, system_prompt: str = "你是人工智能助手.") -> str:
"""调用LLM API获取回答"""
# API配置
url = "https://ark.cn-beijing.volces.com/api/v3/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer API key"
}
data = {
"model": "ep-20250222222029-sx6sd",
"messages": [
{"role": "system", "content": system_prompt},
{"role": "user", "content": prompt}
]
}
try:
# 发送请求
response = httpx.post(url, headers=headers, json=data, timeout=30.0)
response.raise_for_status()
result = response.json()
# 提取回答
if "choices" in result and len(result["choices"]) > 0:
return "回答:" + result["choices"][0]["message"]["content"]
else:
return "回答:未获得有效回答"
except Exception as e:
return f"回答:发生错误: {str(e)}"
# 直接运行时的入口点
if __name__ == "__main__":
print("服务已启动")
输入Tool名称,发给AI: call_llm “李白是谁”,输出如下:
Cursor结果
Cline结果
好用的 MCP 市场
Smithery.ai
华裔青年Henry Mao打造的产品。 https://smithery.ai/
目前发现交互体验最好的MCP导航网站,每个MCP Server都搭配或生成使用代码:
MCP.so
著名独立开发者idoubi开发的 MCP.so 导航,收录了2k多个Server,数量庞大。
作者 X 账号:
MCPs.live 搜索
好友最近研究几个MCP客户端实现,顺手借助AI开发了一个MCP搜索站。
Composio MCP
这个站点特别的地方是,每个MCP都可以生成一个SSE URL,开发者技能在自己应用中集成这个MCP的能力,无需从0开发。
Pulse MCP
也是设计很棒的MCP站,收录了1500多个Server。
比较特别的是,网站提供了很多Use Case,让人更直观了解怎么用。
更多说明
MCP 导航和市场在飞速扩张,但质量稂莠不齐,注意甄别。
预计,未来会出现很多付费MCP Server,也会出大量支持 MCP的客户端软件,不仅仅是现在的 AI编程工具。
比如群友 Vaayne 正在开发的著名 AI 聊天客户端 Cherry Studio,目前在紧锣密鼓测试 MCP功能,估计很快能上线。
如果想了解更多MCP相关知识,可参考
https://xiangyangqiaomu.feishu.cn/wiki/PXAKwEgLQir9rkkV1zjcGnMHntg?fromScene=spaceOverview
如想进群学习,加我微信: vista8
后记
这两天看了一些MCP教程,很多只有例子,没说怎么配置环境、怎么在Cursor、Cline等编辑器中配置。
看完教程,还是知道怎么搞,也不知道怎么开发自己的MCP Server。
索性写个教程,一方面是自己的学习总结,另一方面帮助和我一困惑的人。