网易首页 > 网易号 > 正文 申请入驻

1W8000字 从理论到实践: MCP 在 7 大 AI 框架中的具体应用

0
分享至

用Python和TypeScript框架,基于MCP服务器为LLM赋能,打造AI应用
MCP支持的AI框架 MCP支持的AI框架

AI代理工具包为开发者开放了各种API,让AI解决方案具备执行任务的工具,确保能给出准确结果,提升用户满意度。然而,把这些工具集成到AI应用里并进行管理,过程往往很繁琐。本文将为你介绍一种行业标准方法——利用模型上下文协议(MCP),为大语言模型(LLM)和代理提供上下文信息。

LLM上下文提供方法和规范

默认情况下,如果不给LLM和AI聊天机器人设定合适的上下文,它们就无法获取实时信息、执行代码、调用外部工具及API,甚至不能代用户使用网页浏览器。开发者可借助以下方法,突破LLM和代理的这些局限。

  • Composio:Composio有用于集成人工智能代理和LLM的规范及工具包库。除了现成的工具包库,他们最近还推出了Composio MCP,开发者借此能为集成开发环境(IDE)连接100多个MCP服务器。从上面的链接查看Composio MCP工具类别,就能在Cursor、Claude和Windsurf等支持MCP的IDE中,把多个应用连接到自己的项目里。

  • Agents.json:这是基于OpenAI标准构建的规范,旨在保障AI代理之间交互顺畅,方便其访问API和外部工具。尽管Agent.json很出色,但不像MCP那样被广泛应用和采用。想深入了解并上手的话,可以参考其GitHub仓库。

  • MCP:MCP为开发者提供了向LLM和AI助手提供上下文数据以解决问题的最佳方式。例如,你可以搭建一个MCP文档服务器,让IDE和代理框架能全面访问文档内容,就像使用llms.txt文件一样。

什么是MCP?

不妨把MCP看作LLM的第三次重大变革。在LLM发展的第一阶段,若能在训练数据里找到对应查询,LLM就能准确回答用户的提示信息。但这个阶段的LLM无法处理训练数据之外的提示,因为它们无法访问外部工具。到了第二阶段,虽然给LLM接入了额外的上下文(工具),但使用起来并不直观。不过,这些工具能帮助LLM更精准地预测和理解用户意图并做出回应。而第三次变革,依然是围绕LLM和工具展开,只是构建了一套更完善的基础设施,让它们能便捷地访问外部应用,并且更易于维护。

构建人工智能服务时,在企业场景下用于回复客户支持工单的AI助手应用,其数据可能存于云端。MCP是Anthropic推出的开源协议,借助它,能把企业数据接入AI系统。

MCP提供了一种标准化途径,可将内容存储库(如GitHub、Notion)、开发环境、网页及商业工具与辅助AI技术连接起来。MCP一个热门且应用越来越广泛的场景是AI辅助编程。Cursor和Windsurf等开发环境及工具,通过数百个MCP集成,让开发者在开发过程中能与外部应用连接并交互。

注意:本文聚焦于使用Python和TypeScript构建AI助手和代理系统时如何实现MCP,而非基于IDE的MCP集成。

MCP是如何工作的

在LLM和代理的应用场景中,MCP能帮助它们针对内置知识以外的用户提问,给出有价值的回复。比方说,让ChatGPT给特定的Slack频道发消息、查看你的日历日程并安排与队友的会议,它肯定无法满足你的要求,因为它无法访问这些应用。但要是集成了MCP,就能让这类助手给出有用的反馈。

开发者最先好奇的往往是MCP的工作原理。在MCP的基础运行流程里,用户向代理发出查询请求,代理随后判断调用哪个MCP服务器和工具,获取操作所需的相关信息,最后利用特定工具返回的数据答复用户。


为什么要为AI代理和基于LLM的应用程序采用MCP?

MCP正逐渐成为一项行业标准,助力开发者打造能与外部应用高效通信的AI系统。微软近期宣布在Copilot Studio中集成MCP,简化了AI应用和代理访问工具的流程。OpenAI也宣称其包括Agents SDK和ChatGPT桌面应用等多款产品都支持MCP。直接给工具配备AI助手并非不可行,只是对于由多个执行不同任务(如读取和回复邮件、网页数据抓取、财务分析、获取实时天气信息等)的多代理构成的AI代理系统而言,管理起来会变得异常复杂。

具有工具集成的AI代理

在上图中,三个外部工具连接到LLM。如果工具数量增加到100多个,管理和保障它们的安全会让人焦头烂额。改进方法是通过MCP注册表访问同样多甚至更多的工具,下一部分会详细说明。

具有MCP集成的AI代理

在此图中,我们整合了代理系统所需的工具,并通过MCP服务器访问它们,以提供更有凝聚力的用户体验。MCP方法使通过中心位置保护和管理这些工具变得更加容易。

使用MCP相对于传统工具包集成的优势

与传统的将工具集成到AI代理的方式相比,MCP有诸多显著优势:

  • 架构灵活:与AI代理预构建的工具规范不同,MCP的架构简洁且灵活,与工具和API交互更顺畅。

  • 管理更优:MCP通过标准化接口,让AI模型能便捷地访问工具,有效解决了LLM与第三方系统通信不畅的问题。

  • 适用性广:MCP工具既能满足单用户需求,也适用于团队协作场景,弥补了独立工具的局限性。

  • 社区支持:MCP拥有丰富的开源服务器资源和开发者生态系统,在众多应用场景中都得到了开发者社区的广泛认可。

  • 认证安全:MCP内置强大的认证和权限系统,严格管控工具访问权限。比如使用Composio提供的MCP工具时,能用Google表格或Gmail对用户进行身份验证。

  • 工具查找便捷:与传统安装、配置、集成AI聊天机器人工具的繁琐流程不同,MCP能让开发者更轻松地搜索和找到外部工具。

  • 易于扩展:MCP可轻松扩展,满足大量用户和应用程序的使用需求。

  • 行业标准规范:虽然可以通过安装硬编码工具为AI应用提供上下文,但MCP提供了更规范的行业标准方案。

MCP服务器的种类

Anthropic的MCP规范定义了两种服务器类型,方便为代理和AI项目添加工具:

  • 服务器发送事件(SSE):通过HTTP协议连接远程服务。

  • STDIO:支持通过标准输入/输出执行本地命令和通信。

构建AI应用时选用的框架,会提供连接这些服务器所需的类。

访问MCP注册表/服务器的生态系统

有不少托管MCP工具的开源库,能增强LLM和代理的能力,确保它们给出的回复可靠。这些工具库被称为注册表,里面汇聚了各类精选服务。借助它们的工具,能把AI应用连接到以下注册表。此外,还能选择不同类型的服务器,像uvx,它基于Python开发,使用时无需安装;也有基于Docker运行MCP工具的方案,以及需要安装Node.js的npx服务器。

  • GitHub上的MCP服务器:这是社区构建的服务器集合,包含丰富的MCP资源。

  • Glama Registry:面向开发者的生产就绪型开源MCP服务器。

  • Smithery Registry:借助Smithery,开发者能访问2000多个MCP服务器,大幅拓展AI代理和LLM的功能。

  • OpenTools:OpenTools为MCP工具使用提供生成性API。利用它,开发者能获取数百个现成的MCP工具用于AI项目开发。借助OpenTools API,还能拓展LLM的网页搜索、实时位置数据获取和网页数据抓取等功能。该API支持Curl、Python和TypeScript。想使用API的话,可以查看OpenTools快速入门指南。

from openai import OpenAI
client = OpenAI(
    base_url="https://api.opentools.com",
    api_key=" " 
)
completion = client.chat.completions.create(
    model="anthropic/claude-3.7-sonnet",
    messages=[
        { "role": "user", "content": "Compare specs of top 5 EVs on caranddriver.com" }
    ],
    tools=[{ "type": "mcp", "ref": "firecrawl" }]
)
  • PulseMCP Registry:使用PulseMCP,能浏览适合AI项目的托管MCP工具和应用案例。关注PulseMCP News,还能了解近期热门的MCP服务器和应用。

  • mcp.run:通过这个注册表,开发者能访问数百个用于商业用途的MCP应用。

  • Composio Registry:Composio基于SSE的MCP服务器,能轻松将工具与不同AI框架集成,便于开发应用程序。

  • guMCP:Gumloop的guMCP提供免费、开源且全托管的MCP服务器,可与任何AI应用无缝集成。

将MCP添加到LLM和代理的7大客户端框架

虽说MCP如今热度很高,开发人员社区都在讨论,但要选对与AI应用和代理集成的MCP客户端框架并非易事。经过研究,下面为大家介绍几款领先的、适用于基于Python和TypeScript的代理工作流及AI助手的MCP客户端平台。

  1. 使用OpenAI代理SDK构建Git MCP代理:利用OpenAI Agents SDK构建代理时,借助SDK里的MCPServerStdio和MCPServerSse类,就能连接到社区构建的MCP服务器。下面的MCP代理代码实现了访问本地Git仓库根目录,并能响应用户对仓库相关的查询。

import asyncio
import shutil
import streamlit as st
from agents import Agent, Runner, trace
from agents.mcp import MCPServer, MCPServerStdio

async def query_git_repo(mcp_server: MCPServer, directory_path: str, query: str):
    agent = Agent(
        name="Assistant",
        instructions=f"Answer questions about the localgit repository at {directory_path}, use that for repo_path",
        mcp_servers=[mcp_server],
    )
    with st.spinner(f"Running query: {query}"):
        result = await Runner.run(starting_agent=agent, input=query)
    return result.final_output

async def run_streamlit_app():
    st.title("Local Git Repo Explorer")
    st.write("This app allows you to query information about a local git repository.")
    directory_path = st.text_input("Enter the path to the git repository:")
    if directory_path:
        col1, col2 = st.columns(2)
        with col1:
            if st.button("Most frequent contributor"):
                query = "Who's the most frequent contributor?"
                run_query(directory_path, query)
        with col2:
            if st.button("Last change summary"):
                query = "Summarize the last change in the repository."
                run_query(directory_path, query)
        custom_query = st.text_input("Or enter your own query:")
        if st.button("Run Custom Query") and custom_query:
            run_query(directory_path, custom_query)

def run_query(directory_path, query):
    if not shutil.which("uvx"):
        st.error("uvx is not installed. Please install it with `pip install uvx`.")
        return
    async def execute_query():
        async with MCPServerStdio(
            cache_tools_list=True,
            params={
                "command": "python",
                "args": [
                    "-m",
                    "mcp_server_git",
                    "--repository",
                    directory_path
                ],
            },
        ) as server:
            with trace(workflow_name="MCP Git Query"):
                result = await query_git_repo(server, directory_path, query)
            st.markdown("### Result")
            st.write(result)
    asyncio.run(execute_query())

if __name__ == "__main__":
    st.set_page_config(
        page_title="Local Git Repo Explorer",
        page_icon="",
        layout="centered"
    )
    def main_streamlit_app():
        st.title("Local Git Repo Explorer")
        st.write("This app allows you to query information about a Git repository.")
        directory_path = st.text_input("Enter the path to the git repository:")
        if directory_path:
            col1, col2 = st.columns(2)
            with col1:
                if st.button("Most frequent contributor"):
                    query = "Who's the most frequent contributor?"
                    run_query(directory_path, query)
            with col2:
                if st.button("Last change summary"):
                    query = "Summarize the last change in the repository."
                    run_query(directory_path, query)
            custom_query = st.text_input("Or enter your own query:")
            if st.button("Run Custom Query") and custom_query:
                run_query(directory_path, custom_query)
    main_streamlit_app()

上面的代码将Streamlit与OpenAI MCP代理集成,这样就能用Git MCP服务器与本地Git仓库交互了。运行这个示例前,需要安装以下依赖:

pip install streamlit openai-agents mcp-server-git

然后,通过export OPENAI_API_KEY=sk-....导出OpenAI API密钥。

你还能在GitHub上探索更多OpenAI MCP的示例。使用Agents SDK的MCP集成有个突出优势,OpenAI的仪表板上内置了MCP代理监控系统,能自动记录代理的MCP操作,比如工具列表、POST响应以及函数调用数据等信息。

2. 利用Praison AI构建MCP人工智能代理

Praison AI是一个基于Python的人工智能框架,用于组建代理团队。它提供了一种极为简便的方式,仅需一行代码,就能像为代理配备传统工具那样,将MCP服务器工具融入代理工作流程。

下面的示例通过Streamlit用户界面,把Airbnb的MCP服务器与Praison AI代理进行集成,以此帮助用户在指定地点寻找公寓。若要使用Praison AI创建你的首个MCP代理,需安装以下内容:

pip install praisonaiagents mcp streamlit

接下来,导出你的OpenAI API密钥:export OPENAI_API_KEY='sk-proj-qZIGbi....'

创建一个Python文件,比如streamlit_praison_airbnb_mcp_agent.py,并将以下代码写入其中:

import streamlit as st
from praisonaiagents import Agent, MCP

st.title(" Airbnb预订助手")

@st.cache_resource
def get_agent():
    return Agent(
        instructions="""你帮助在爱彼迎上预订公寓。""",
        llm="gpt-4o-mini",
        tools = MCP("npx -y @openbnb/mcp-server-airbnb --ignore-robots-txt")
    )

if "messages" not in st.session_state:
    st.session_state.messages = []

for message in st.session_state.messages:
    with st.chat_message(message["role"]):
        st.markdown(message["content"])

with st.form("booking_form"):
    st.subheader("输入你的预订详情")
    destination = st.text_input("目的地:", "巴黎")
    col1, col2 = st.columns(2)
    with col1:
        check_in = st.date_input("入住日期")
    with col2:
        check_out = st.date_input("退房日期")
    adults = st.number_input("成人数量:", min_value = 1, max_value = 10, value = 2)
    submitted = st.form_submit_button("搜索住宿")
    if submitted:
        search_agent = get_agent()
        query = f"我想在{destination}预订一间公寓,从{check_in.strftime('%m/%d/%Y')}入住至{check_out.strftime('%m/%d/%Y')},共{adults}位成人"
        st.session_state.messages.append({"role": "用户", "content": query})
        with st.chat_message("用户"):
            st.markdown(query)
        with st.chat_message("助手"):
            with st.spinner("正在搜索住宿..."):
                response = search_agent.start(query)
            st.markdown(response)
            st.session_state.messages.append({"role": "助手", "content": response})
    if st.session_state.messages:
        prompt = st.chat_input("询问关于住宿的后续问题")
        if prompt:
            search_agent = get_agent()
            st.session_state.messages.append({"role": "用户", "content": prompt})
            with st.chat_message("用户"):
                st.markdown(prompt)
            with st.chat_message("助手"):
                with st.spinner("思考中..."):
                    response = search_agent.start(prompt)
                st.markdown(response)
                st.session_state.messages.append({"role": "助手", "content": response})

运行这段示例代码,它会调用所需的Airbnb MCP工具,帮你在特定地点寻找住所。

搭载Praison AI的MCP人工智能代理

你会发现,它仅用一行代码tools = MCP("npx -y @openbnb/mcp-server-airbnb --ignore-robots-txt")就为代理添加了MCP支持。这里的npx是用于启动MCP服务器的命令,-y是传递给该命令的命令行参数。想要了解更多相关信息,可参考OpenAI Agents SDK文档中的MCP服务器部分。

3. 将MCP用于LangChain AI应用程序

LangChain支持调用MCP工具,这一特性允许开发者通过设置Python函数,访问不同的MCP服务器,并获取工具以在AI项目中执行任务。下面的示例代码展示了如何连接到一个安全的MCP文件系统服务器,使大语言模型(LLM)能够准确回答与你提供的任何文件相关的问题。

import asyncio
import pathlib
import sys
import typing as t
from langchain_core.messages import AIMessage, BaseMessage, HumanMessage
from langchain_core.output_parsers import StrOutputParser
from langchain_core.tools import BaseTool
from langchain_groq import ChatGroq
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from langchain_mcp import MCPToolkit

async def run(tools: list[BaseTool], prompt: str) -> str:
    model = ChatGroq(model_name="llama-3.1-8b-instant", stop_sequences=None)
    tools_map = {tool.name: tool for tool in tools}
    tools_model = model.bind_tools(tools)
    messages: list[BaseMessage] = [HumanMessage(prompt)]
    ai_message = t.cast(AIMessage, await tools_model.ainvoke(messages))
    messages.append(ai_message)
    for tool_call in ai_message.tool_calls:
        selected_tool = tools_map[tool_call["name"].lower()]
        tool_msg = await selected_tool.ainvoke(tool_call)
        messages.append(tool_msg)
    return await (tools_model | StrOutputParser()).ainvoke(messages)

async def main(prompt: str) -> None:
    server_params = StdioServerParameters(
        command="npx",
        args=["-y", "@modelcontextprotocol/server-filesystem", str(pathlib.Path(__file__).parent.parent)],
    )
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            toolkit = MCPToolkit(session=session)
            await toolkit.initialize()
            response = await run(toolkit.get_tools(), prompt)
            print(response)

if __name__ == "__main__":
    prompt = sys.argv[1] if len(sys.argv) > 1 else "Read and summarize the file ./readme.md"
    asyncio.run(main(prompt))

在运行这段Python脚本之前,你需要安装所需的依赖项:langchain - corelangchain - groqlangchain - mcp

pip install langchain-core langchain-groq langchain-mcp

上述MCP配置使用了npx服务器类型,因此你还需要安装server - filesystem包。

pm install -g @modelcontextprotocol/server-filesystem

注意:本示例取自LangChain的GitHub仓库。

4. 将MCP用于Chainlit AI应用程序

Chainlit是一个用Python构建AI应用程序的平台。它内置了对MCP服务器的支持,所以你可以配置应用程序,发现可用的MCP工具,并将工具调用集成到应用程序流程中,以获得更好的结果。你可以将Chainlit应用程序与基于服务器发送事件(SSE)和命令行(stdio)的服务集成。在下面的示例中,我们将把一个Chainlit应用程序连接到Linear MCP服务器,使该应用程序能够管理Linear中的问题、项目和团队。你可以使用本示例中提供的Linear工具来创建、更新、搜索和获取用户问题,或者为问题添加评论。

配置你的Chainlit应用程序以连接到MCP服务器

将Chainlit应用程序连接到MCP服务器以访问工具,主要涉及两个步骤。

  1. 注册MCP连接:在这一步中,你需要实现Chainlit的on_mcp_connect异步函数,以建立成功的连接。你也可以实现on_mcp_disconnect函数来处理连接断开时的清理工作。

import chainlit as cl
from mcp import ClientSession

@cl.on_mcp_connect
async def on_mcp_connect(connection, session: ClientSession):
    """当MCP连接建立时调用"""

@cl.on_mcp_disconnect
async def on_mcp_disconnect(name: str, session: ClientSession):
    """当MCP连接终止时调用"""
  1. 配置MCP客户端(Chainlit、LangChain、Mastra):为了让MCP服务器与Chainlit应用程序协同工作,客户端需要通过Chainlit的用户界面提供连接详细信息。此配置包含以下内容:

  • 唯一标识符:一个代表连接名称的唯一标识。

  • 客户端类型:你需要指定是使用sse还是stdio。如果使用sse,需要添加一个URL端点;使用stdio时,则需要一个完整的命令(例如,npx your - tool - packageuvx your - tool - package)。下面是一个完整的命令示例:

npx -y linear-mcp-server --tools=all --api-key=lin_api_your_linear_API_Key

建立MCP服务器连接后,你可以使用MCP会话来执行工具。最后,通过工具调用,将MCP工具与Chainlit应用程序的模型/代理无缝集成。你可以从GitHub上Chainlit的示例应用程序中找到此Linear MCP集成的完整源代码。

当你从Chainlit的GitHub仓库获取上述源代码并运行,然后通过Chainlit界面设置npx -y linear - mcp - server -- tools = all -- api - key = lin_api_your_linear_API_Key,你将能够创建和更新Linear中的问题/项目。

构建连接到MCP服务器的Chainlit应用程序 5. 为Agno AI代理集成MCP

Agno是一个用于构建复杂代理工作流的Python框架。它因其简单性、易用性以及与MCP服务器的无缝集成而广受欢迎。本节中的示例MCP实现,与由四个独立的贡献代理(如Airbnb、Google Maps、网络搜索和天气MCP代理)组成的多代理团队进行了集成。Agno的多个代理相互协作,提供关于特定地点旅行的信息。

先决条件

为了测试本节中的Agno MCP实现示例:

  1. 安装Agno、DuckDuckGo和Exa:pip install -U openai agno duckduckgo - search exa - py

  2. 获取GOOGLE_MAPS_API_KEY,并将其添加到项目的.env文件中。

  3. 获取一个APIFY_TOKEN,并添加到你的.env文件中。

  4. 验证Google地址API。

配置Agno MCP代理团队

在这一步中,你需要定义MCP服务器参数,并使用AsyncExitStack管理多个上下文管理器。然后,创建代理并运行它们。

airbnb_server_params = StdioServerParameters(
    command="npx",
    args=["-y", "@openbnb/mcp-server-airbnb", "--ignore-robots-txt"],
    env=env,
)
maps_server_params = StdioServerParameters(
    command="npx", args=["-y", "@modelcontextprotocol/server-google-maps"], env=env
)
async with contextlib.AsyncExitStack() as stack:
    airbnb_client, _ = await stack.enter_async_context(stdio_client(airbnb_server_params))
    maps_client, _ = await stack.enter_async_context(stdio_client(maps_server_params))
    airbnb_agent = Agent(
        name="Airbnb",
        role="Airbnb Agent",
        model=OpenAIChat("gpt-4o"),
        tools=[airbnb_client],
        instructions=dedent("""\         你是一个可以在给定地点查找爱彼迎房源的代理。\         """),
        add_datetime_to_instructions=True,
    )
为Agno AI代理集成MCP 6. 将MCP用于Upsonic代理

Upsonic是一个用于创建AI代理的Python框架。使用Upsonic,你可以构建自己的代理,为代理定义任务,并使用MCP工具处理每个任务定义,如下面的示例代码所示:

import os
from dotenv import load_dotenv
from upsonic import Task, Agent, Direct
from upsonic.client.tools import Search

load_dotenv()
openai_api_key = os.getenv("OPENAI_API_KEY")
if not openai_api_key:
    raise ValueError("OPENAI_API_KEY未在.env文件中找到")
os.environ["OPENAI_API_KEY"] = openai_api_key

class HackerNewsMCP:
    command = "uvx"
    args = ["mcp-hn"]

task = Task(
    "分析今日HackerNews上排名前五的文章。简要总结每篇文章,"
    "找出任何共同的主题或趋势,并突出哪些文章可能与对AI和软件开发感兴趣的人最相关。",
    tools=[HackerNewsMCP, Search]
)
agent = Agent(
    "科技新闻分析师",
    company_url="https://news.ycombinator.com/",
    company_objective="提供对科技行业新闻和趋势的深刻分析"
)
print("正在分析HackerNews文章...")
agent.print_do(task)

在上述示例中,我们在Upsonic中创建了一个AI代理,它从Hackernews中检索前五个最近的故事。

7. 为Mastra代理使用MCP

Mastra是一个TypeScript框架,用于构建原型和可投入生产的AI代理。与Chainlit类似,Mastra提供了一种标准化的方式来连接到MCP服务器,通过基于stdio或sse的连接访问广泛的工具。

要将Mastra代理连接到MCP服务器,你应该使用其MCPConfiguration类。此类在任何Mastra代理工作流中处理多个服务器连接,如生命周期、命名空间和工具管理。在Master应用程序和MCP服务器之间创建连接涉及以下步骤:

  1. 创建MCPConfiguration类的实例并添加服务器配置。

  2. 使用getTools()getToolsets()方法检索MCP工具。

以下示例代码展示了使用Mastra代理实现MCP服务器的基本用法:

import { MCPConfiguration } from "@mastra/mcp";
import { Agent } from "@mastra/core/agent";
import { openai } from "@ai-sdk/openai";

const mcp = new MCPConfiguration({
    servers: {
        stockPrice: {
            command: "npx",
            args: ["tsx", "stock-price.ts"],
            env: {
                API_KEY: "your-api-key",
            },
        },
        weather: {
            url: new URL("http://localhost:8080/sse"),
        },
    },
});

const agent = new Agent({
    name: "多功能代理",
    instructions: "你可以访问多个工具服务器。",
    model: openai("gpt-4"),
    tools: await mcp.getTools(),
});
LLM应用程序和代理中MCP的挑战和下一步是什么

本教程向你介绍了MCP,并解释了为什么它在开发者社区中如此受欢迎。我们强调了MCP与诸如Cursor和Windsurf等IDE的集成。此外,我们还在七种不同的Python和TypeScript框架中实现了MCP,用于构建基于LLM的应用程序、AI助手和代理。

MCP虽然强大,但也面临以下挑战。在为项目搜索MCP工具时,你可能会发现难以检查或验证工具的质量,也难以确定其是否适用于你的AI项目。这是因为其工具搜索和发现功能尚未标准化。此外,由于MCP服务器提供商的架构不同,其配置无法提供一致的用户体验。

目前,MCP生态系统正在讨论对MCP的各个方面进行标准化。未来可能会有一种标准的方法来安装基于MCP的应用程序,就像我们在Python中使用pip install安装软件包一样。PulseMCP也在努力使浏览和发现MCP工具变得更加容易。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
暴走团堵死城市大道,交警劝离无果,卡车司机怒了:让你们走个够

暴走团堵死城市大道,交警劝离无果,卡车司机怒了:让你们走个够

红豆讲堂
2025-07-26 10:30:09
免费领鸡蛋,骗244亿养老钱!中国老年人“第一大忽悠”终于倒了

免费领鸡蛋,骗244亿养老钱!中国老年人“第一大忽悠”终于倒了

新语爱八卦
2025-07-22 17:59:09
工地男子扛蛇皮袋坐软卧被乘客举报,乘警检查后,全车人集体起立

工地男子扛蛇皮袋坐软卧被乘客举报,乘警检查后,全车人集体起立

悬案解密档案
2025-07-14 16:42:58
久帅正式下课,国足新帅或锁定,57岁,年薪350万,最快9月上任

久帅正式下课,国足新帅或锁定,57岁,年薪350万,最快9月上任

东球弟
2025-07-26 14:57:56
令人震惊:越南超过8万个商家退出电商平台

令人震惊:越南超过8万个商家退出电商平台

缅甸中文网
2025-07-25 14:02:10
我第一次见男友养父,在闻到他身上味道后我当场跑路:这是尸臭

我第一次见男友养父,在闻到他身上味道后我当场跑路:这是尸臭

古怪奇谈录
2025-06-21 17:18:27
中国芯片专家在米兰被捕后续,中方出手了,仅用一招让美吃哑巴亏

中国芯片专家在米兰被捕后续,中方出手了,仅用一招让美吃哑巴亏

肖兹探秘说
2025-07-26 14:10:47
1年5263万美金!历史第1!老詹作茧自缚,自己选的路跪着也要走完

1年5263万美金!历史第1!老詹作茧自缚,自己选的路跪着也要走完

世界体育圈
2025-07-25 15:16:40
水利部和中国气象局联合发布橙色山洪灾害气象预警

水利部和中国气象局联合发布橙色山洪灾害气象预警

界面新闻
2025-07-26 18:08:13
阿萨德东山再起?7 月 26 日,叙利亚传来新消息

阿萨德东山再起?7 月 26 日,叙利亚传来新消息

一个有灵魂的作者
2025-07-26 21:13:39
岳云鹏演唱会座无虚席,郭德纲压轴献唱,黄晓明陈梦现身捧场

岳云鹏演唱会座无虚席,郭德纲压轴献唱,黄晓明陈梦现身捧场

振华观史
2025-07-26 23:29:22
马云曾斥巨资,承诺每年在沙漠里种1亿棵树!9年过去了,树怎样了

马云曾斥巨资,承诺每年在沙漠里种1亿棵树!9年过去了,树怎样了

寒士之言本尊
2025-07-26 13:58:12
万事不决,赖俄罗斯?泽连斯基踢到铁板|国际识局

万事不决,赖俄罗斯?泽连斯基踢到铁板|国际识局

环球网资讯
2025-07-26 14:28:03
中美谈判前夕,原来中国真在脱钩,重拳砸向特朗普基本盘和大金主

中美谈判前夕,原来中国真在脱钩,重拳砸向特朗普基本盘和大金主

闻识
2025-07-26 05:51:49
花千骨制片人回应年轮原唱风波:用的是张碧晨版,她与汪苏泷的恩怨不清楚!

花千骨制片人回应年轮原唱风波:用的是张碧晨版,她与汪苏泷的恩怨不清楚!

喜欢历史的阿繁
2025-07-25 19:33:46
番薯依然是番薯!广东夏训仍无进步,还不如张文逸徐昕变化大!

番薯依然是番薯!广东夏训仍无进步,还不如张文逸徐昕变化大!

篮球资讯达人
2025-07-26 23:07:39
又一巨头出事!354亿资产99.9%在美国,10万股民血汗钱恐打水漂

又一巨头出事!354亿资产99.9%在美国,10万股民血汗钱恐打水漂

财经八卦
2025-07-26 20:53:43
央视夸完就叛逃!裁员、清空、屏蔽,中国顶级AI公司出走国外

央视夸完就叛逃!裁员、清空、屏蔽,中国顶级AI公司出走国外

大嘴爱哔哔
2025-07-20 11:54:44
女篮世大运夺冠奖金出炉!中国队获20万奖励:刘禹彤至少瓜分2万

女篮世大运夺冠奖金出炉!中国队获20万奖励:刘禹彤至少瓜分2万

篮球快餐车
2025-07-26 14:34:58
红军城本是物资枢纽,如今沦为俄军据点,70%物资通道彻底断绝

红军城本是物资枢纽,如今沦为俄军据点,70%物资通道彻底断绝

流年拾光
2025-07-25 18:10:16
2025-07-27 06:16:49
人工智能学家 incentive-icons
人工智能学家
人工智能领域权威媒体
4048文章数 37241关注度
往期回顾 全部

科技要闻

AI教父辛顿现身上海:人类如何不被AI杀掉

头条要闻

佩通坦再发声:虽无法履行总理职责 但一直在听取汇报

体育要闻

杨瀚森效力NBA期间 青岛男篮将暂存球队15号球衣

娱乐要闻

董璇首谈保释前夫细节!高云翔突然不回消息

财经要闻

刘煜辉:当下重要不是找确定性而是转折点

汽车要闻

"得房率"超90% 全新岚图知音空间信息曝光

态度原创

时尚
艺术
家居
游戏
本地

金童玉女离婚20年,怎么不算圆满大结局呢?

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

家居要闻

环绕设计 空间动线合理

Xbox 3A大作降价!难道是担忧预购惨淡?

本地新闻

换个城市过夏天|风拂盐湖,躲进格尔木的盛夏清凉