从入门到实践:构建你的第一个 MCP Server

MCP 模型上下文协议

前言

昨天看到一个抖音MCP服务的源码,发现实现起来还是比较清晰的。萌生了自己动手试着做了一个的想法,以此来加深对MCP理解。先回顾迭代一下MCP的一些相关知识,然后跑通一个简单的MCP服务demo。

MCP 核心架构

  • • MCP 主机(MCP Hosts):发起请求的 LLM 应用程序(例如 Claude Desktop、IDE 或 AI 工具)。
  • • MCP 客户端(MCP Clients):在主机程序内部,与 MCP server 保持连接。
  • • MCP 服务器(MCP Servers):为 MCP client 提供上下文、工具和 prompt 信息。
  • • 本地资源(Local Resources):本地计算机中可供 MCP server 安全访问的资源(例如文件、数据库)。
  • • 远程资源(Remote Resources):MCP server 可以连接到的远程资源(例如通过 API)。
null

交互流程

MCP client 充当 LLM 和 MCP server 之间的桥梁,MCP client 的工作流程如下:

    1. MCP client 首先从 MCP server 获取可用的工具列表。
    1. 将用户的查询连同工具描述通过 function calling 一起发送给 LLM。
    1. LLM 决定是否需要使用工具以及使用哪些工具。
    1. 如果需要使用工具,MCP client 会通过 MCP server 执行相应的工具调用。
    1. 工具调用的结果会被发送回 LLM。
    1. LLM 基于所有信息生成自然语言响应。
    1. 最后将响应展示给用户。
null

构建 MCP Server

MCP Server 是 MCP 架构中的关键组件,它可以提供 3 种主要类型的功能:

  • • 资源(Resources):类似文件的数据,可以被客户端读取,如 API 响应或文件内容。
  • • 工具(Tools):可以被 LLM 调用的函数(需要用户批准)。
  • • 提示(Prompts):预先编写的模板,帮助用户完成特定任务。

这些功能使 MCP server 能够为 AI 应用提供丰富的上下文信息和操作能力,从而增强 LLM 的实用性和灵活性。

AI 应用的开发更多的是需要编写的不同的 MCP Server,因为 MCP Client 相对固定,且有很多现成的工具实现了这一部分。,不同的业务场景需要使用不同的工具和资源,意味着需要开发出各种各样的 MCP server,来为大模型提供工具和资源。

因此了解 MCP Server 的开发流程很有价值。

最小的 MCP Server 样例

学习新东西,最好先从最小且必要的开始。以下就是 mcp 的 python SDK 中 Quickstart 的样例:

安装环境

推荐使用 uv 来进行 python 项目管理

bash 复制代码
# 安装uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# 创建名为"mcp-server-demo"的项目
uv init mcp-server-demo

# 进入项目根目录
cd mcp-server-demo

# 创建虚拟环境venv
uv venv

# 进入项目虚拟环境
source .venv/bin/activate

# 安装项目依赖包
uv add "mcp[cli]"

新增 server 代码文件

创建 server.py 文件,添加以下代码。

代码来源:github.com/modelcontex...

python 复制代码
# server.py
from mcp.server.fastmcp import FastMCP

# Create an MCP server
mcp = FastMCP("Demo")

# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

调试

为了调试,运行以下命令,使用 MCP Inspector 来运行 MCP 服务器。

MCP Insepector 会提供一个直观的调试页面,

vbscript 复制代码
mcp dev server.py

运行成功后会输出类似: MCP Inspector is up and running at http://127.0.0.1 ,浏览器访问地址这个地址,可以看到如下页面,然后依次点开:Connect》Tools,即可查看到当前 mcp server 拥有的一个名为"add"的工具。

null
相关推荐
dong_junshuai8 分钟前
每天一个开源项目#97 LLM Wiki:把RAG结果变成可维护知识资产
开源·llm·github
ProbeX10 分钟前
一文搞懂 AI 里的 Harness:它和 Agent、Skill、LLM 到底啥关系?
llm
Rocky Ding*2 小时前
【三年面试五年模拟】2026-09-08 DeepSeek AI Agent开发岗社招一面:20道问题与系统设计题全解析
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·deepseek
宝桥南山2 小时前
DeepSeek - 尝试安装和使用一下DeepSeek Harness
人工智能·ai·aigc·ai编程
Coffeeee3 小时前
claude-video 一个让你的Agent拥有看视频能力的Skill
android·人工智能·aigc
桃西西呀3 小时前
诈骗短信刚发来就被拦截?支持向量机靠的是最宽的那条分界线
人工智能·机器学习·llm
星核0penstarry4 小时前
ToolGrad:把数据生成倒过来,工具调用样本通过率提到 99.8%
人工智能·测试工具·llm·函数调用·数据合成·文本调用
tachibana24 小时前
WebSocket 和 SSE 通信的区别及局限性
网络·人工智能·websocket·网络协议·ai·llm·agent
七夜zippoe4 小时前
MCP 协议详解:模型上下文协议如何重塑 Agent 工具调用生态
ai·生态·agent·模型·mcp
狠活科技4 小时前
GPT Image 2.5 发布:AI 生图又进化了
人工智能·gpt·ai作画·aigc·image2.5