教你手把手写一个MCP 服务应用,太好玩了!

教你手把手写一个MCP 服务应用,太好玩了!

发布于 2025年4月13日更新于 2025年4月14日

看再多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,之前写有教程:

https://mp.weixin.qq.com/s/YiWFmq1j4xGlplM8cV1p3g?payreadticket=HCIiJXFQDeQJ0qTKy26ny_9jDnXERx2o8HevkvLovUT2pcQ9YiwPI3HPOqibfueux6fGYzA

Cursor

https://www.cursor.com/

Windsurf:

https://codeium.com/windsurf

Trae:

https://www.trae.ai/

Visual Code + Cline

https://cline.bot/

手把手创建第一个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 账号:

https://x.com/idoubicc

MCPs.live 搜索

好友最近研究几个MCP客户端实现,顺手借助AI开发了一个MCP搜索站。

Composio MCP

https://mcp.composio.dev/

这个站点特别的地方是,每个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。

索性写个教程,一方面是自己的学习总结,另一方面帮助和我一困惑的人。

推荐文章