Type something to search...
Anthropic 的模型上下文协议 (MCP) 是我们期待已久的互操作性标准吗?

Anthropic 的模型上下文协议 (MCP) 是我们期待已久的互操作性标准吗?

向Anthropic团队致敬!他们不断推出新功能,吸引了开发者社区的关注。首先是Artifacts,然后是Computer Use。现在,他们又推出了另一个突破性的新增功能:模型上下文协议(MCP)。

模型上下文协议(MCP)引入了一种标准化的方法,以实现AI应用程序、数据源和其他系统之间的互操作性。

该标准的架构在这里有详细描述。标准实现配备了Python和TypeScript SDK。Python SDK的github仓库在这里

好消息是,您可以通过Claude Desktop快速轻松地尝试它。您需要下载最新版本。是的,它可以在免费版上运行,并且支持Windows。

要快速入门,您可以尝试sqlite 演示。已经有许多参考实现和社区贡献的服务器可用,可以在这里查看。

您可以轻松地创建自己的MCP服务器并将其添加到Claude Desktop配置文件中。可以使用有用的create-mcp-server工具引导python项目。

以下是我实施最小MCP服务器的逐步过程:

安装 Claude Desktop 并修改配置文件:

从 Claude Desktop 菜单中打开设置(如果您已经安装了,请将其升级到最新版本),然后点击开发者。点击编辑配置后,将打开安装文件夹的资源管理器,并突出显示配置文件。

编辑配置文件:

将您的 MCP 服务器规格添加到文件中。如果您尝试过 sqlite 快速入门,请在其下方添加您的服务器规格。您必须按照 这里 的说明安装 uv。

{
  "mcpServers": {
    "heartbeat": {
      "command": "uv",
      "args": [
        "--directory",
        "<server-path>",
        "run",
        "heartbeat.py"
      ]
    }
  }
}

MCP服务器代码:

我们将实现一个简单的“心跳” 工具,该工具仅返回对客户端的回复。我们将使用 stdio 传输。

公开工具列表:

@app.list_tools()
async def list_tools() -> list[Tool]:
    """列出可用工具。"""
    return [
        Tool(
            name="get_heartbeat",
            description="获取心跳",
            inputSchema={
                "type": "object",
                "properties": {
                    "user": {
                        "type": "string",
                        "description": "用户名"
                    },
                },
                "required": ["user"]
            }
        )
    ]

实现你的工具:

@app.call_tool()
async def call_tool(name: str, arguments: Any) -> Sequence[TextContent | ImageContent | EmbeddedResource]:
    """处理心跳的工具调用。"""
    if name != "get_heartbeat":
        raise ValueError(f"未知工具: {name}")

    if not isinstance(arguments, dict) or "user" not in arguments:
        raise ValueError("无效的参数")

    reply = {
        "text": f"你好 {arguments['user']},我的心为你跳动!"
    }

    return [
        TextContent(
            type="text",
            text=json.dumps(reply, indent=2)
        )
    ]

添加stdio服务器:

## 创建服务器实例
app = Server("heartbeat-server")

async def main():
    # 在此处导入以避免事件循环问题
    from mcp.server.stdio import stdio_server

    async with stdio_server() as (read_stream, write_stream):
        await app.run(
            read_stream,
            write_stream,
            app.create_initialization_options()
        )

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

测试 MCP 服务器:

如果配置正确,您将能够在设置 -> 开发者部分看到该工具。您实际上可以向 Claude 询问这些工具:

Claude Desktop 将启动服务器进程,这些进程看起来像命令窗口。这是正常且预期的。

使用简单的提示测试心跳。

具有讽刺意味的是,Claude 聊天机器人尚未意识到这一标准,因此无法生成代码。不过,您可以将标准文档放入上下文中,看看会发生什么。

MCP 协议看起来非常像 LLM 函数调用的增强版本。然而,这种架构将使其与模型无关。抽象将有助于安全性,您需要将遗留或专有数据暴露给 LLM。

看看标准如何发展以及其他 AI 参与者是否会参与将会很有趣。

代码 用于服务器 https://github.com/sanimesa/genai/tree/main/claude_mcp

Related Posts

使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
10 个强大的 Perplexity AI 提示,让您的营销任务自动化

10 个强大的 Perplexity AI 提示,让您的营销任务自动化

在当今快速变化的数字世界中,营销人员总是在寻找更智能的方法来简化他们的工作。想象一下,有一个个人助理可以为您创建受众档案,建议营销策略,甚至为您撰写广告文案。这听起来像是一个梦想? 多亏了像 Perplexity 这样的 AI 工具,这个梦想现在成为现实。通过正确的提示,您可以将 AI 转变为您的 个人营销助理。在本文中,我将分享 10 个强大的提示,帮助您自动

阅读更多
10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

人工智能技术,如机器学习、自然语言处理和数据分析,正在重新定义传统设计方法。从自动化重复任务到实现个性化用户体验,人工智能使设计师能够更加专注于战略思维和创造力。随着这一趋势的不断增长,UI/UX 设计师越来越多地采用 AI 驱动的工具来促进他们的工作。利用人工智能不仅能提供基于数据的洞察,还为满足多样化用户需求的创新设计解决方案开辟了机会。 1. 用户角色开发 目的

阅读更多
在几分钟内完成数月工作的 100 种人工智能工具

在几分钟内完成数月工作的 100 种人工智能工具

人工智能(AI)的快速发展改变了企业的运作方式,使人们能够在短短几分钟内完成曾经需要几周或几个月的任务。从内容创作到网站设计,AI工具帮助专业人士节省时间,提高生产力,专注于创造力。以下是按功能分类的100个AI工具的全面列表,以及它们在现实世界中的使用实例。 1. 研究工具 研究可能耗时,但人工智能工具使查找、分析和组织数据变得更加容易。**ChatGPT, Cop

阅读更多
你从未知道的 17 个令人惊叹的 GitHub 仓库

你从未知道的 17 个令人惊叹的 GitHub 仓库

Github 隐藏的宝石!! 立即收藏的代码库 学习编程相对简单,但掌握编写更好代码的艺术要困难得多。GitHub 是开发者的宝藏,那里“金子”是其他人分享的精心编写的代码。通过探索 GitHub,您可以发现如何编写更清晰的代码,理解高质量代码的样子,并学习成为更熟练开发者的基本步骤。 1. notwaldorf/emoji-translate *谁需

阅读更多