当前位置: 首页 > news >正文

南阳网站推广便民信息微信平台推广

南阳网站推广,便民信息微信平台推广,凡科网站开发,网站做专题MCP简介 MCP(Model Context Protocol),模型上下文协议,是由美国科技公司Anthropic(Claude就是是由Anthropic公司打造的一系列高性能且智能的AI大语言模型)在2024年11月份开源的一项用于解决LLM与外部数据源…

MCP简介

MCP(Model Context Protocol),模型上下文协议,是由美国科技公司Anthropic(Claude就是是由Anthropic公司打造的一系列高性能且智能的AI大语言模型)在2024年11月份开源的一项用于解决LLM与外部数据源和工具之间集成问题的标准化协议。更直白一些的说法就是,MCP为LLM应用标准化了手脚,让LLM可以根据需要获取一切可以连接的数据、直接执行一切可以连接的工具。

引入MCP后的变化[1]:

引入MCP后,核心变化在于如何连接数据和调用工具的方式。MCP定义了一套协议和规范,其中包括MCP的客户端(clients),这些客户端被包裹在AI应用中。而MCP服务器(Server)则与应用分离,如果需要在本地计算机上操作,则需在本地计算机上启动MCP服务器。这样,AI应用便可与服务器通过MCP协议(如JSON RPC)进行通信,以完成数据读取、文件操作等各种动作。

本篇文章是一篇基础且快速的MCP实践博文,因此暂不对MCP的概念、核心架构及其的提出对生成式AI应用发展的影响等做更多深入的介绍,感兴趣的朋友可以阅读以下好文自行学习了解:

[1] 因为Manus爆火的 Claude MCP,90%人的认知可能都是错的

MCP 快速上手(Quick Hands-On)

首先,去官网下载 Claude Desktop,然后我们按照 官方文档 提供给 MCP servers Developers的命令进行基于Python开发&运行 MCP servers环境的安装部署。

实践环境介绍:

机型 Apple M1 Pro
操作系统 macOS Sequoia version 15.5
  1. 打开终端,执行以下命令安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 重启终端后,查看 uv 版本,验证 uv 已成功安装;
uv --version
uv 0.7.12 (dc3fd4647 2025-06-06)
  1. 初始化一个名为weather的MCP server项目,该项目包含两个服务:获取美国某州的气象预警 & 获取指定经纬度的天气预报;
# 第一次初始化uv项目环境的话,需要使用--no-workspace(否则会报错),用于忽略父目录的 pyproject.toml,直接在 weather 目录下初始化环境
uv init --no-workspace weather
# 进入到执行上一步命令生成的项目目录
cd weather
# 创建 Python 虚拟环境(会在当前目录下生成 .venv 文件夹)
# 需要注意一点,如果你和我一样是使用miniconda进行多python环境的管理,请确保在Python3.10或更高版本的环境下执行以下命令
uv venv
# 激活虚拟环境
source .venv/bin/activate
# 安装 mcp(带 cli 工具)和 httpx 依赖包到当前虚拟环境
uv add "mcp[cli]" httpx
# 创建一个空的 weather.py 文件(用于编写你的 FastMCP 服务器代码)
touch weather.py
  1. 编辑 weather.py 文件,写入拷贝自 MCP 官方 github repo 的如下完整代码(为了方便大家更快熟悉代码,我请github copilot GPT-4.1给关键代码行加上了中文注释);
from typing import Any
import httpx
from mcp.server.fastmcp import FastMCP# 初始化 FastMCP 服务器,服务名为 weather
mcp = FastMCP("weather")# 常量:NWS API 基础地址和 User-Agent
NWS_API_BASE = "https://api.weather.gov"
USER_AGENT = "weather-app/1.0"# 异步请求 NWS API,带异常处理,返回字典或 None
async def make_nws_request(url: str) -> dict[str, Any] | None:"""向 NWS API 发起请求,异常时返回 None。"""headers = {"User-Agent": USER_AGENT,"Accept": "application/geo+json"}async with httpx.AsyncClient() as client:try:response = await client.get(url, headers=headers, timeout=30.0)response.raise_for_status()return response.json()except Exception:return None# 格式化单条气象预警信息为可读字符串
def format_alert(feature: dict) -> str:"""将单条预警 feature 格式化为可读字符串。"""props = feature["properties"]return f"""
Event: {props.get('event', 'Unknown')}
Area: {props.get('areaDesc', 'Unknown')}
Severity: {props.get('severity', 'Unknown')}
Description: {props.get('description', 'No description available')}
Instructions: {props.get('instruction', 'No specific instructions provided')}
"""# 工具函数:获取指定州的气象预警
@mcp.tool()
async def get_alerts(state: str) -> str:"""获取美国某州的气象预警。参数:state - 两位州代码(如 CA, NY)"""url = f"{NWS_API_BASE}/alerts/active/area/{state}"data = await make_nws_request(url)if not data or "features" not in data:return "无法获取预警或无预警信息。"if not data["features"]:return "该州暂无有效预警。"alerts = [format_alert(feature) for feature in data["features"]]return "\n---\n".join(alerts)# 工具函数:获取指定经纬度的天气预报
@mcp.tool()
async def get_forecast(latitude: float, longitude: float) -> str:"""获取指定位置的天气预报。参数:latitude - 纬度,longitude - 经度"""# 先获取该点的 forecast 网格接口points_url = f"{NWS_API_BASE}/points/{latitude},{longitude}"points_data = await make_nws_request(points_url)if not points_data:return "无法获取该位置的预报数据。"# 从 points 响应中获取 forecast 详细预报 URLforecast_url = points_data["properties"]["forecast"]forecast_data = await make_nws_request(forecast_url)if not forecast_data:return "无法获取详细预报信息。"# 格式化前 5 个时段的预报信息periods = forecast_data["properties"]["periods"]forecasts = []for period in periods[:5]:  # 只显示最近 5 个时段forecast = f"""
{period['name']}:
Temperature: {period['temperature']}°{period['temperatureUnit']}
Wind: {period['windSpeed']} {period['windDirection']}
Forecast: {period['detailedForecast']}
"""forecasts.append(forecast)return "\n---\n".join(forecasts)if __name__ == "__main__":# 启动 FastMCP 服务器,使用 stdio 作为通信方式mcp.run(transport='stdio')
  1. 在第3步创建的虚拟Python环境下运行 weather.py 代码,若无异常输出,则可进行到下一步;
  2. 打开下载的 Claude Desktop 应用,点击 settings -> Developer -> 点击左下方的 “Edit Config” 按钮;

在这里插入图片描述

  1. 编辑选中的 claude_desktop_config.json 文件,写入以下内容(注意,“command” 字段的值是 uv 的路径,可通过 which uv 获取;);
{"mcpServers": {"weather": {"command": "/Users/xxx/.local/bin/uv","args": ["--directory","/ABSOLUTE/PATH/TO/PARENT/FOLDER/weather","run","weather.py"]}}
}
  1. 写入保存后,重启 Claude Desktop 应用,在对话栏的左下角点击 “Search and tools” 图标,就可以看到识别成功的名为weather的MCP服务;
    在这里插入图片描述
    再点入进去就可以看到服务里包含的两个具体工具,get_alerts() 用于获取美国某州的气象预警 & get_forecast()获取指定经纬度的天气预报;
    在这里插入图片描述

  2. 我们来提问看看实际效果。
    10.1 询问天气:How is the weather in Sacramento?
    在这里插入图片描述
    10.2 获取加利福尼亚州的天气预警:What are the current weather warnings for the state of California?
    在这里插入图片描述

总体效果还是很不错的!
MCP servers对于实力强劲的LLM底座简直是如虎添翼,从此LLM有了标准化的手脚,可以做更多实际又落地、对各行各业有意义和价值的事!

话不多说,一起来探索吧~

MCP相关资源:

  1. 官方文档教程:https://modelcontextprotocol.io/introduction
  2. MCP 官方 servers repo: https://github.com/modelcontextprotocol/servers
  3. MCP官方文档之支持MCP集成的应用列表(MCP Clients):https://modelcontextprotocol.io/clients
  4. MCP Hub: https://github.com/ravitemer/mcp-hub
  5. Awesome MCP Clients
http://www.hkea.cn/news/423154/

相关文章:

  • wordpress 网盘 插件郑州seo外包阿亮
  • 怎样建设网站首页广告营销平台
  • wordpress调起淘宝app什么叫做seo
  • 嘉兴做网站优化的公司网站维护公司
  • css层叠样式会不会影响打开网站的速度百度免费下载安装百度
  • 网站模板制作流程nba交易最新消息汇总
  • 近的网站在线客服系统网络优化工程师前景如何
  • 网站制作职业google入口
  • 广州网站 制作信科便宜网络营销软文范例500
  • 网站建设公开课长沙网站推广和优化
  • 建设网站的需求分析俄罗斯搜索引擎yandex推广入口
  • 可以做英文纵横字谜的网站搜狗网站收录入口
  • web前端开发是不是做网站百家号关键词排名优化
  • 夸克看网站要钱吗电商网站seo优化
  • 自己做网站排版138ip查询网域名解析
  • 东莞做网站 南城石佳2023网站推广入口
  • 广东省省建设厅网站郴州网站建设网络推广平台
  • 校园网站推广方案怎么做应用商店优化
  • 巩义网站建设网络营销公司是做什么的
  • 做网站基本教程一站式营销平台
  • 杭州模板网站建设电脑培训网上培训班
  • 大连做网站不错的公司怎样把广告放到百度
  • 网站上面带官网字样怎么做的网站设计的流程
  • 有个网站是做视频相册的网球排名即时最新排名
  • 论坛网站备案流程图优化大师怎么提交作业
  • 织梦政府网站模板百度在线入口
  • 专业做婚纱摄影网站会员制营销
  • 网站内容丰富互动营销平台
  • 阿里巴巴logo高清图谷歌seo网站推广
  • 网站如何做内链seo高手是怎样炼成的