Model Context Protocol(MCP)是一个开放协议,旨在标准化大型语言模型(LLM)与外部数据源和工具之间的集成方式。它为 AI 应用程序提供了一种统一的接口,使得不同的系统和服务能够高效、安全地协同工作。
MCP 可以被视为 AI 应用程序的“USB-C 接口”。正如 USB-C 提供了连接各种设备的标准化方式,MCP 为 LLM 提供了访问多种数据源和工具的统一协议。这使得开发者能够构建更强大、灵活的 AI 驱动应用,如智能 IDE、聊天机器人和定制化的工作流程。
MCP 采用客户端-服务器架构,包括以下主要组件:
这种架构允许主机应用程序连接到多个服务器,从而访问本地或远程的数据源和服务。
MCP 提供了多项优势:
MCP 提供了多种入门路径:
此外,MCP 还提供了调试工具和交互式检查器,帮助开发者测试和优化他们的集成方案。
该服务端包含功能:
from mcp.server import FastMCP
from selenium.webdriver import Remote, ChromeOptions
from selenium.webdriver.chromium.remote_connection import ChromiumRemoteConnection
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import mysql.connector
from mysql.connector import errorcode
mcp = FastMCP("server")
@mcp.tool()
def get_user_info(name: str):
"""
根据用户名查询用户信息
Args:
name (str): 用户名
Returns:
dict: 用户信息,包含id, name, age, address字段
None: 如果未找到用户
"""
# 数据库连接参数
db_config = {
"host": "127.0.0.1",
"port": 3306,
"user": "root", # 默认用户名,根据实际情况修改
"password": "password", # 根据实际情况修改
"database": "test"
}
# 初始化连接变量
conn = None
cursor = None
try:
# 创建数据库连接
conn = mysql.connector.connect(**db_config)
# 创建游标
cursor = conn.cursor(dictionary=True)
# 查询SQL
sql = "SELECT id, name, age, address FROM user WHERE name = %s"
# 执行查询
cursor.execute(sql, (name,))
# 获取结果
result = cursor.fetchone()
return result
except Exception as e:
print(f"查询MySQL数据库出错: {e}")
return None
finally:
# 关闭游标和连接
if cursor:
cursor.close()
if conn:
conn.close()
@mcp.tool()
def create_user(name: str, age: int, address: str):
"""
创建新用户
Args:
name (str): 用户名
age (int): 年龄
address (str): 地址
Returns:
dict: 包含操作结果的字典
- success (bool): 操作是否成功
- message (str): 操作结果消息
- user_id (int, 可选): 成功时返回的用户ID
"""
# 数据库连接参数
db_config = {
"host": "127.0.0.1",
"port": 3306,
"user": "root",
"password": "password",
"database": "test"
}
# 初始化连接变量
conn = None
cursor = None
try:
# 创建数据库连接
conn = mysql.connector.connect(**db_config)
# 创建游标
cursor = conn.cursor()
# 检查用户名是否已存在
check_sql = "SELECT COUNT(*) FROM user WHERE name = %s"
cursor.execute(check_sql, (name,))
count = cursor.fetchone()[0]
if count > 0:
return {
"success": False,
"message": f"用户名'{name}'已经存在"
}
# 插入新用户
insert_sql = "INSERT INTO user (name, age, address) VALUES (%s, %s, %s)"
cursor.execute(insert_sql, (name, age, address))
# 提交事务
conn.commit()
# 获取新用户ID
user_id = cursor.lastrowid
return {
"success": True,
"message": "用户创建成功",
"user_id": user_id
}
except Exception as e:
print(f"创建用户出错: {e}")
return {
"success": False,
"message": f"创建用户错误: {str(e)}"
}
finally:
# 关闭游标和连接
if cursor:
cursor.close()
if conn:
conn.close()
if __name__ == "__main__":
mcp.run()
编写代码之后运行
使用vscode中的cline作为MCP客户端在进行模型对话的时候调用MCP服务端
MCP 为 AI 应用程序提供了一个强大、灵活且安全的集成框架,使得 LLM 能够更高效地与各种数据源和工具协同工作。无论是构建智能助手、自动化工作流程,还是开发复杂的 AI 系统,MCP 都是一个值得考虑的解决方案。
参考资料:
保存为主题
全局属性
自定义样式
行数:216
字数:1355
字符数:5089
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有