网站首页 > 开源技术 正文
编辑:编辑部 YZh
【新智元导读】就在刚刚,Anthropic重磅开源了「模型上下文协议」MCP,LLM的数据孤岛被彻底打破了!LLM应用和外部数据源、工具都将无缝集成,真正互联的系统就在眼前,整个LLM应用生态要变天了。
在引领AI操控计算机革命之后,OpenAI劲敌又在预谋一场颠覆未来的新范式。
就在昨天,Anthropic发布了一项革命性的技术——模型上下文协议(Model Context Protocol,MCP)。
从此,LLM应用链接数据难的痛点,有望彻底解决。
我们不必再为每个数据源写定制的集成代码了,LLM应用的生态恐怕要颠覆!
这个名为MCP的开放协议,目标是实现LLM应用程序与外部数据源和工具之间的无缝集成。
因为允许LLM访问和利用外部资源,它的功能性和实用性都会大大增强。
无论是构建AI驱动的IDE、聊天界面,还是创建自定义的AI工作流,MCP都提供了一种标准化的方式,来连接LLM与它们所需的上下文。
现在,AI大模型已经得到了大量投资,推理和性能都取得了飞速进步。但我们为何很难看到一款杀手级的AI主流应用?
其中一个重要原因,就是即使是最先进的模型,也会因为受制于传统系统和信息流的低集成度,从而难以获取多种数据,陷入信息孤岛。
因为每个新的数据源,都需要定制化的集成,就导致真正的互联系统难以扩展。
但如今MCP的诞生,彻底击碎了这个痛点!
简单配置一下,MCP就能让Claude直接连接GitHub,创建仓库了,一套操作非常丝滑炸裂。
向Claude发送指令:
创建一个简单的HTML页面
创建名为simple-page的仓库
将HTML页面推送到simple-page仓库
向HTML页面添加一些CSS样式,然后将其推送上去
提交一个问题,在HTML页面上添加更多内容
现在创建一个名为feature的分支,并修复此问题,然后推送更改
针对main分支提交拉取请求,包含这些更改
获取对于git的操作权限后,Claude在中间几个步骤经过了重复尝试,除最后一步以外,完美完成了作者的要求。
核心架构
MCP的核心遵循客户端-服务器架构,其中多个服务可以连接到任何兼容的客户端。
其中Host主机是启动连接的LLM应用程序(如Claude Desktop或IDE),客户端在主机应用程序内与服务器保持1V1连接,服务器则向客户端提供上下文、工具和提示。
具体来说,客户端是Claude Desktop、IDE或AI工具等应用程序,服务器则是公开数据源的轻型适配器。
客户端和服务器之间的连接,是通过stdio或SSE等传输方式建立的。传输层处理消息成帧、传递和错误处理。
MCP的强大之处在于,它通过相同的协议同时处理本地资源(数据库、文件、服务)和远程资源(Slack或GitHub等API)。
目前,MCP仅在本地受支持,服务器必须在自己的计算机上运行。
但是,Anthropic正在通过企业级身份验证构建远程服务器支持,以便团队可以在整个组织中安全地共享其上下文来源。
Anthropic的目标就是,构建一个AI通过单一、优雅的协议就能连接到任何数据源的世界,MCP就是其中的通用转换器。
只要将MCP集成到客户端一次,就可以连接到任何地方的数据源。
一次构建,让AI无处不在
AI时讯初创CEO Rowan Cheung认为,MCP对于大模型来说至关重要。
当前,大模型是一个拥有博士水平级别的推理引擎,却会被诸如「明天的天气会是什么样的」或「我今天的日程安排是什么」之类的问题难住。
解决这一问题良策,便是提供所需的上下文。(即回答特定用户问题所需的特定数据)。
这很重要,因为引擎的趋势是蒸馏:让模型更小以适应用户延迟窗口,但会导致「知识」丢失。
如今,各大AI公司都在尝试不同的方法:
谷歌依赖于自己的内部服务:搜索、Gmail、日历
微软正在尝试使用其安全的Office Copilot应用程序获取企业用户上下文
苹果试图通过隐私保护继续获取用户上下文,同时允许访问ChatGPT进行高级查询
OpenAI已经尝试了GPT,现在正在尝试通过ChatGPT桌面应用程序连接应用程序。ChatGPT的愿景是通过屏幕共享控制用户桌面。
Anthropic与OpenAI的处境类似,因为他们没有现成的用户上下文。
他们的解决方案似乎是,提供一个干净的协议,通过该协议,任何网站,API或系统资源都可以被任何AI访问。
也就意味着,构建一次,让AI无处不在。
专注AI原生平台Ada CEO Mike Murchison深入分析了MCP三个重要影响:
- 应用集成护城河正被削弱。随着AI模型能够原生接入第三方数据源,应用程序之前建立的独特数据集成优势正在消失
- 前沿模型在「预集成」到各种内容商店能力上展开竞争。未来,各大AI模型会竞相提供与不同内容库的原生连接能力
- 将会看到前沿AI模型与特定数据源公司建立独家的合作关系
世界首个工程师Cognition创始人表示,统一的界面是向扩展无处不在的智能体迈出的一大步。
还有人表示,当AI与我们的工具无缝集成时,感觉AGI快要来了。
Block首席技术官Dhanji R. Prasanna说:「像模型上下文协议这样的开放技术,是连接人工智能与现实世界应用的桥梁,确保了创新的可及性、透明性和协作性。我们很高兴能在协议上进行合作,并利用它来构建智能体系统,从而消除机械性工作的负担,让人们可以专注于创意。」
创建Server代码
我们可以利用MCP Python SDK来轻松创建具有MCP能力的服务器与客户端,实现相应的功能。
例如,下述代码就是结合MCP Python SDK实现了服务器的搭建。
# /// script
# dependencies = [
# "mcp"
# ]
# ///
from mcp.server import Server, NotificationOptions
from mcp.server.models import InitializationOptions
import mcp.server.stdio
import mcp.types as types
# Create a server instance
server = Server("example-server")
# Add prompt capabilities
@server.list_prompts()
async def handle_list_prompts() -> list[types.Prompt]:
return [
types.Prompt(
name="example-prompt",
description="An example prompt template",
arguments=[
types.PromptArgument(
name="arg1",
description="Example argument",
required=True
)
]
)
]
@server.get_prompt()
async def handle_get_prompt(
name: str,
arguments: dict[str, str] | None
) -> types.GetPromptResult:
if name != "example-prompt":
raise ValueError(f"Unknown prompt: {name}")
return types.GetPromptResult(
description="Example prompt",
messages=[
types.PromptMessage(
role="user",
content=types.TextContent(
type="text",
text="Example prompt text"
)
)
]
)
async def run():
# Run the server as STDIO
async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
await server.run(
read_stream,
write_stream,
InitializationOptions(
server_name="example",
server_version="0.1.0",
capabilities=server.get_capabilities(
notification_options=NotificationOptions(),
experimental_capabilities={},
)
)
)
if __name__ == "__main__":
import asyncio
asyncio.run(run())
工作流程
作者给出了一个案例:利用MCP实现Claude Desktop访问查询本地SQLite数据库,来说明整体的交互工作流程。
实现效果
这个例子中使用MCP与Claude Desktop交互时的具体流程如下:
- Claude Desktop在启动时连接到用户配置的MCP服务器
- Claude Desktop确定哪个MCP服务器可以提供帮助,本例中就是SQLite
- 通过协议来确定功能的实现方式
- 从MCP服务器(SQLite)请求数据或操作
交互流程
网友自主搭建
Claude研究人员在短短5分钟内,使用MCP就将Claude和搜索引擎连接起来。
EverArt AI的创始人创建一个server,使用自家平台API去让Claude生成图像。这个server可以访问其帐户上所有可用的图像模型。
要求Claude通过使用EverArt和Flux模型,生成一张美丽的家的图片,它会调用本地mcp-server-everart,然后弹出一个「是否允许」界面。
同意之后,它会立即生成出一张符合要求的图片。
再比如,创建一副35mm镜头拍摄的飞船登陆火星的照片。
另有开发者搭建了一个YouTube MCP server,直接能让Claude下载YouTube字幕,并通过yt-dlp进行总结。
项目地址:https://github.com/anaisbetts/mcp-youtube
- 上一篇: 护肤品化妆品英文大全,去香港不用怕买错了!
- 下一篇: 原 荐 ApacheBench压测 那点事儿
猜你喜欢
- 2024-12-08 护肤品化妆品英文大全,去香港不用怕买错了!
- 2024-12-08 ansible之playbook
- 2024-12-08 修改Keil工程名称并添加其他模块文件
- 2024-12-08 10-Vue新手快速入门
- 2024-08-02 web前端你学到哪个阶段了?(web前端需要学多长时间)
- 2024-08-02 基于Flask开发的前后端分离租房项目(五)
- 2024-08-02 超详细的vue指令(说出几种vue当中的指令和它的用法?)
- 2024-08-02 node.js 基础操作(node.js基础入门)
- 2024-08-02 5天爆肝整理Vue开发入门(vue实战开发项目视频)
- 2024-08-02 我第一份Web前端工作能找到12k的工作,就是掌握了这些技术栈
你 发表评论:
欢迎- 05-16东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 05-16这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 05-16湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- 05-16Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- 05-16G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- 05-16DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 05-16上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- 05-16WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 最近发表
-
- 东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 湖人自媒体调查:89%球迷希望DFS回归 79%希望詹姆斯回归
- 一觉醒来湖人苦盼的纯3D终于到位 DFS能带给紫金军多少帮助
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)