文章目录
-
- 目录
- 一、MCP基础:什么是MCP?
-
- [1.1 MCP的核心价值](#1.1 MCP的核心价值)
- [1.2 MCP与传统方法的对比](#1.2 MCP与传统方法的对比)
- 二、环境准备:搭建你的MCP开发环境
-
- [2.1 安装Python](#2.1 安装Python)
- [2.2 创建虚拟环境](#2.2 创建虚拟环境)
- [2.3 安装MCP及相关依赖](#2.3 安装MCP及相关依赖)
- 三、入门实践:创建你的第一个MCP工具
-
- [3.1 编写基础MCP工具](#3.1 编写基础MCP工具)
- [3.2 配置MCP服务](#3.2 配置MCP服务)
- [3.3 测试你的MCP工具](#3.3 测试你的MCP工具)
- 四、功能扩展:丰富你的MCP工具集
-
- [4.1 文件操作功能](#4.1 文件操作功能)
- [4.2 数据库查询功能](#4.2 数据库查询功能)
- [4.3 网络数据获取功能](#4.3 网络数据获取功能)
- [4.4 邮件发送功能](#4.4 邮件发送功能)
- 五、进阶应用:集成第三方API与服务
-
- [5.1 集成百度地图API](#5.1 集成百度地图API)
- [5.2 实战案例:自动获取热门文章并发送邮件报告](#5.2 实战案例:自动获取热门文章并发送邮件报告)
- 六、常见问题与解决方案
-
- [6.1 安装与配置问题](#6.1 安装与配置问题)
- [6.2 API与服务问题](#6.2 API与服务问题)
- 资源与参考
博主介绍:全网粉丝10w+、CSDN合伙人、华为云特邀云享专家,阿里云专家博主、星级博主,51cto明日之星,热爱技术和分享、专注于Java技术领域
🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
作者:IT·陈寒
发布时间:2025-08-21
阅读时长:15 分钟
本文将带你从零开始了解并搭建MCP环境,无需专业知识,人人都能上手!
目录
- 一、MCP基础:什么是MCP?
- 二、环境准备:搭建你的MCP开发环境
- 三、入门实践:创建你的第一个MCP工具
- 四、功能扩展:丰富你的MCP工具集
- 五、进阶应用:集成第三方API与服务
- 六、常见问题与解决方案
- 七、未来展望:MCP的发展前景
一、MCP基础:什么是MCP?
MCP (Model Control Protocol,模型控制协议) 是一个用于构建AI工具的框架,它允许开发者快速创建、部署和使用各种AI工具和服务。对于想要利用AI能力但又不想深入学习复杂技术的新手来说,MCP提供了一个简单易用的入口。
开源项目地址:https://gitee.com/ithanc/mcp_tools.git
1.1 MCP的核心价值
- 打通数据孤岛:实现本地数据和AI模型的无缝连接
- 降低开发门槛:无需深厚的编程基础即可上手
- 统一工具生态:一次开发,多处使用
- 扩展AI能力:让AI模型能够"看见"并"操作"更多外部资源
1.2 MCP与传统方法的对比
特性 | 传统API调用 | RAG方案 | MCP方案 |
---|---|---|---|
开发难度 | 高 | 中 | 低 |
适合人群 | 专业开发者 | 有技术基础者 | 零基础新手 |
数据交互 | 需自行实现 | 局限于文本 | 多样化接口 |
可扩展性 | 一般 | 有限 | 极强 |
复用性 | 低 | 中 | 高 |
MCP的设计理念是:让每个人都能轻松构建和使用AI工具,而不仅仅是程序员。
二、环境准备:搭建你的MCP开发环境
在开始构建MCP工具前,我们需要先准备好基础环境。这一步非常重要,正确的环境配置能让后续开发更加顺畅。
2.1 安装Python
Python是MCP开发的基础语言,我们需要先安装Python环境:
- 访问Python官网下载最新版本(推荐3.8+)
- 安装时务必勾选"Add Python to PATH"选项
- 验证安装:打开命令行,输入
python --version
,如显示版本号则表示安装成功
bash
# 验证Python安装
python --version
# 输出示例:Python 3.10.4

2.2 创建虚拟环境
虚拟环境可以帮助你隔离不同项目的依赖,是Python开发的最佳实践:
bash
# 创建名为venv的虚拟环境
python -m venv venv
# Windows下激活虚拟环境
venv\Scripts\activate
# macOS/Linux下激活虚拟环境
# source venv/bin/activate
激活后,你的命令行前面会出现(venv)
前缀,表示已进入虚拟环境。
2.3 安装MCP及相关依赖
bash
# 安装MCP核心库
pip install mcp==1.6.0
# 根据需要安装其他依赖
pip install requests # 网络请求库
pip install mysql-connector-python # MySQL数据库连接库
小贴士 :如果下载速度较慢,可以尝试使用国内镜像源,如:
pip install mcp==1.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
一键安装 执行:
pip install -r requirements.txt
即可

三、入门实践:创建你的第一个MCP工具
现在,我们开始创建第一个简单的MCP工具,体验MCP的基本用法。
3.1 编写基础MCP工具
创建一个名为custom_mcp.py
的文件,写入以下代码:
python
# custom_mcp.py
from mcp.server.fastmcp import FastMCP
import os
import platform
mcp = FastMCP()
@mcp.tool()
def say_hello(name: str) -> str:
"""生成个性化问候语(中英双语版)"""
return f"🎉 你好 {name}! (Hello {name}!)"
if __name__ == "__main__":
mcp.run(transport='stdio')
这个简单的工具接收一个名字作为输入,返回中英双语的问候语。
3.2 配置MCP服务
在AI编辑器(如Cursor)的配置目录下创建mcp.json
文件,通常位于:
- Windows:
c:\Users\用户名\.cursor\mcp.json
- macOS:
~/Library/Application Support/cursor/mcp.json
配置内容如下:
json
{
"mcpServers": {
"my_first_mcp": {
"command": "python",
"args": [
"你的文件路径/custom_mcp.py"
]
}
}
}

重要提示:
- 将"你的文件路径"替换为你存放
custom_mcp.py
的实际绝对路径 - Windows系统路径中的反斜杠需要写成双反斜杠或正斜杠,如:
C:/Users/你的用户名/Desktop/custom_mcp.py
3.3 测试你的MCP工具
重启编辑器后,你可以通过AI聊天窗口测试你的MCP工具了!试着输入:
"你好,请使用我的MCP工具向张三问好"
如果一切配置正确,AI将调用你创建的MCP工具,返回:
🎉 你好 张三! (Hello 张三!)
四、功能扩展:丰富你的MCP工具集
一个简单的问候语工具当然不能满足我们的需求,接下来我们会添加更多实用功能,展示MCP的强大之处。
4.1 文件操作功能
添加一个读取桌面文件列表的工具:
python
@mcp.tool()
def list_desktop_files() -> list:
"""获取当前用户桌面上的所有文件列表(适用于Windows系统)"""
if platform.system().lower() == 'windows':
desktop_path = os.path.join(os.environ["USERPROFILE"], "Desktop")
else:
desktop_path = os.path.expanduser("~/Desktop")
return os.listdir(desktop_path)

4.2 数据库查询功能
通过MCP连接本地数据库,执行查询操作:
python
@mcp.tool()
def query_database(sql: str) -> str:
"""
连接本地 MySQL 数据库,执行查询并返回结果。
注意:
1. 本功能仅用于执行查询操作(SELECT),请勿用于执行更新或删除等敏感操作;
2. 请确保数据库服务已启动,并根据实际环境修改数据库连接信息(用户名、密码、数据库名)。
"""
import mysql.connector
try:
# 根据实际环境配置数据库连接信息
connection = mysql.connector.connect(
host="localhost",
user="root", # 替换为您的MySQL用户名
password="root", # 替换为您的MySQL密码
database="student_management" # 替换为您的数据库名
)
cursor = connection.cursor()
cursor.execute(sql)
results = cursor.fetchall()
# 获取字段名称
columns = [desc[0] for desc in cursor.description]
# 构造结果字符串,字段之间用 "|" 分隔
output = " | ".join(columns) + "\n"
for row in results:
output += " | ".join(str(item) for item in row) + "\n"
cursor.close()
connection.close()
if not results:
return "查询无结果"
return output
except Exception as e:
return f"查询过程中出错: {e}"
4.3 网络数据获取功能
获取掘金网站热门文章信息,展示网络数据爬取能力:
python
@mcp.tool()
def get_juejin_hot() -> list:
"""
获取掘金网站热门文章信息,返回前10篇文章的相关数据。
包含文章排名、标题、作者、互动数据(热度、浏览、点赞、收藏、评论)以及文章链接。
"""
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Referer': 'https://juejin.cn/'
}
url = "https://api.juejin.cn/content_api/v1/content/article_rank?category_id=1&type=hot"
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
data = response.json()
articles = data.get('data', [])[:10]
if not articles:
return [{"提示": "API返回数据格式异常,请检查接口有效性"}]
result = []
for index, article in enumerate(articles, 1):
content_data = article.get('content', {})
counter_data = article.get('content_counter', {})
author_info = article.get('author', {})
article_info = {
'排名': index,
'标题': content_data.get('title', '无标题'),
'作者': author_info.get('name', '匿名用户'),
'互动数据': {
'热度': counter_data.get('hot_rank', 0),
'浏览': counter_data.get('view', 0),
'点赞': counter_data.get('like', 0),
'收藏': counter_data.get('collect', 0),
'评论': counter_data.get('comment_count', 0)
},
'链接': f"https://juejin.cn/post/{content_data.get('content_id', '')}"
}
result.append(article_info)
return result
except Exception as e:
return [{"错误": f"数据获取失败,错误类型:{type(e).__name__},详细信息:{str(e)}"}]

4.4 邮件发送功能
添加邮件发送功能,实现信息推送:
python
@mcp.tool()
def send_email(recipient: str, subject: str, content: str) -> str:
"""
发送邮件的工具。
参数说明:
recipient: 收件人的邮箱地址;
subject: 邮件主题;
content: 邮件内容,支持HTML格式。
请先根据您所使用的SMTP服务配置下列参数:
- smtp_server: SMTP服务器地址
- smtp_port: SMTP服务器端口(常见端口587用于STARTTLS加密)
- sender_email: 发件人邮箱地址
- sender_password: 发件人邮箱密码或授权码(注:为了安全建议不要在代码中明文写入)
"""
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# QQ邮箱的 SMTP 配置
smtp_server = "smtp.qq.com"
smtp_port = 587
sender_email = "your_email@qq.com" # 替换为您的 QQ 邮箱
sender_password = "your_authorization_code" # 替换为您在QQ邮箱中生成的授权码
try:
# 构造MIME邮件对象
msg = MIMEMultipart()
msg["From"] = sender_email
msg["To"] = recipient
msg["Subject"] = subject
# 将邮件内容以HTML形式添加进去
msg.attach(MIMEText(content, "html"))
# 连接SMTP服务器
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls() # 开启TLS加密传输
server.login(sender_email, sender_password)
server.send_message(msg)
server.quit()
return "邮件发送成功"
except Exception as e:
return f"邮件发送失败,错误信息: {e}"

五、进阶应用:集成第三方API与服务
除了基础功能,MCP还能轻松集成各种第三方API,让你的AI助手更加强大。
5.1 集成百度地图API
在mcp.json
中配置百度地图API服务:
json
{
"mcpServers": {
"baidu-maps": {
"command": "python",
"args": ["-m", "mcp_server_baidu_maps"],
"env": {
"BAIDU_MAPS_API_KEY": "你的百度地图API密钥"
}
},
"my_first_mcp": {
"command": "python",
"args": [
"你的文件路径/custom_mcp.py"
]
}
}
}
这样配置后,你的AI助手就能回答"北京三里屯附近有什么好吃的"这类地理位置相关的问题了。

5.2 实战案例:自动获取热门文章并发送邮件报告
利用我们已经创建的MCP工具,可以实现一个简单但实用的自动化工作流:获取掘金热门文章,并通过邮件发送每日技术简报。
python
@mcp.tool()
def send_juejin_daily_report(recipient: str) -> str:
"""获取掘金热门文章并发送邮件简报"""
try:
# 调用已有的get_juejin_hot获取文章数据
articles = get_juejin_hot()
if isinstance(articles, list) and len(articles) > 0 and '错误' in articles[0]:
return f"获取掘金文章失败: {articles[0]['错误']}"
# 构建HTML邮件内容
html_content = """
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
h1 { color: #0066ff; }
.article { margin-bottom: 20px; padding: 10px; border-bottom: 1px solid #eee; }
.title { font-size: 18px; font-weight: bold; color: #333; }
.author { color: #666; }
.stats { color: #888; font-size: 14px; }
</style>
</head>
<body>
<h1>今日掘金热门文章简报</h1>
"""
for article in articles:
html_content += f"""
<div class="article">
<div class="title"><a href="{article['链接']}">{article['标题']}</a></div>
<div class="author">作者: {article['作者']}</div>
<div class="stats">
浏览: {article['互动数据']['浏览']} |
点赞: {article['互动数据']['点赞']} |
收藏: {article['互动数据']['收藏']}
</div>
</div>
"""
html_content += """
</body>
</html>
"""
# 发送邮件
return send_email(
recipient=recipient,
subject="掘金每日技术文章简报",
content=html_content
)
except Exception as e:
return f"生成简报过程中出错: {str(e)}"
六、常见问题与解决方案
在使用MCP的过程中,你可能会遇到一些常见问题,这里提供了相应的解决方案:
6.1 安装与配置问题
-
依赖安装失败
- 尝试使用
pip install --upgrade pip
更新pip - 检查网络连接或尝试使用国内镜像源
- 确认Python版本兼容性(建议3.8+)
- 尝试使用
-
MCP工具无法运行
- 检查路径配置是否正确,特别注意Windows系统的路径分隔符
- 确保已激活虚拟环境
- 重启编辑器或IDE,让配置生效
6.2 API与服务问题
-
API调用失败
- 检查API密钥是否正确配置
- 查看API文档确认请求参数格式
- 通过日志或调试模式查看详细错误信息
-
邮件发送失败
- 确保SMTP服务器地址和端口正确
- 检查邮箱账号和授权码是否有效
- 确认网络环境允许SMTP连接
-
数据爬取受限
- 添加更多的请求头信息,模拟真实浏览器
- 实现请求间隔和重试机制
- 考虑使用代理IP避免被封禁
资源与参考
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻