AI MCP 约 10 分钟

让Claude调用你的代码:桌面版集成实战[深度RAG笔记04]

MCP 开发教程

MCP AI FastMCP 工具连接器
让Claude调用你的代码:桌面版集成实战[深度RAG笔记04]
MCP Agent 生态
sequenceDiagram
    participant U as 用户
    participant CD as Claude Desktop
    participant MCP as MCP服务器
    participant DB as 数据库
    
    U->>CD: "查询用户张三的信息"
    CD->>MCP: 调用search_users("张三")
    MCP->>DB: 执行SQL查询
    DB-->>MCP: 返回用户数据
    MCP-->>CD: 格式化结果
    CD-->>U: 用户详细信息
    
    U->>CD: "给张三发欢迎邮件"
    CD->>MCP: 调用send_welcome_email(1)
    MCP-->>CD: 邮件发送成功
    CD-->>U: "欢迎邮件已发送"

图:Claude Desktop与MCP服务器的完整交互流程

前面三篇教程我们写了完整的MCP服务器,但一直在命令行里测试,总感觉不太过瘾。这周我终于把它接入Claude Desktop了,效果简直超预期。

现在我可以直接问Claude:”张三这个月消费了多少?”Claude立刻调用我的用户查询工具,3秒返回详细数据。以前需要写SQL、跑脚本的事情,现在就是一句话的事。

同事看到我这样操作都惊了:”这就是传说中的AI工作台?”没错,这就是MCP真正的威力——让AI直接调用你的代码。

Claude Desktop:你的AI工作台

Claude Desktop就是Anthropic官方出品的桌面版AI工具,原生支持MCP。你不需要写任何适配代码,配置文件设置好就能用。

为什么我推荐Claude Desktop?

部署模式选择:开发vs生产环境

flowchart TD
    A[开发模式 STDIO] --> A1[配置简单]
    A --> A2[调试方便]
    
    B[生产模式 HTTP] --> B1[多客户端支持]
    B --> B2[独立运行]
    
    C[个人开发] --> A
    D[团队协作] --> B
    
    style A fill:#e1f5fe
    style B fill:#e8f5e8

图:STDIO vs HTTP部署模式对比 - 开发便利性与生产稳定性的权衡

我踩过这个坑,选错部署模式真的很头疼。来分享下我的经验:

STDIO模式:适合个人开发

这是我最常用的方式

HTTP模式:生产环境首选

团队项目必须用这个

STDIO部署:最简单的方式

拿我们之前的用户管理系统来试试手,整个过程就三步。

第1步:检查服务器代码

确保你的代码是这样的:

if __name__ == "__main__":
    mcp.run()  # 默认STDIO模式

第2步:找到配置文件

根据你的系统创建配置文件:

第3步:添加服务器配置

{
  "mcpServers": {
    "user-manager": {
      "command": "python",
      "args": ["/你的项目路径/user_manager.py"]
    }
  }
}

重要提醒:路径必须写绝对路径,用which python确认Python位置。

重启Claude Desktop,看到界面上的小工具图标就成功了。直接问Claude:”查询ID为1的用户”,看Claude调用你的工具返回数据。

HTTP部署:生产环境选择

团队使用或者想做成服务,HTTP模式是更好的选择。

在你的代码里加个启动参数:

if __name__ == "__main__":
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("--http", action="store_true")
    args = parser.parse_args()
    
    if args.http:
        mcp.run(transport="http", port=8000)
    else:
        mcp.run()

启动服务器:python user_manager.py --http

Claude配置稍微复杂点:

{
  "mcpServers": {
    "user-manager": {
      "command": "npx", 
      "args": ["@modelcontextprotocol/server-http", "http://localhost:8000"]
    }
  }
}

简单总结:选择合适的方案

STDIO模式:个人开发首选,配置简单,调试方便 HTTP模式:团队协作必备,支持多客户端,适合生产环境

我的建议是先用STDIO模式快速验证功能,确认无误后再考虑HTTP部署。

MCP Inspector:可视化调试

开发MCP服务器时,最头疼的就是调试。Inspector能让你在浏览器里直接测试工具,超级方便。

启动Inspector:

fastmcp dev user_manager.py

一个命令启动两个服务:

Inspector主要功能:

我现在每次开发都用Inspector,省了不少调试时间。强烈推荐!

实际使用体验:Claude真的很聪明

我已经用了一段时间,Claude的智能程度确实超出预期。给你分享几个真实场景:

自然语言查询

我说:”张三这个用户怎么样?” Claude做的事:自动调用search_users工具,用”张三”做关键词搜索,返回完整用户档案

我说:”系统里总共多少用户了?” Claude做的事:读取统计资源,给我一个数据报告

复杂业务处理

我说:”创建个用户叫john,邮箱是john@example.com,然后给他发欢迎邮件” Claude的处理:先创建用户→拿到用户ID→发送邮件→告诉我完成状态

这种多步骤的任务,Claude都能自动拆解执行,不用我一步步指导。

最让我惊喜的是Claude的理解能力,我说话很随意,它都能准确理解我想做什么,选择正确的工具。

常见问题快速解决

部署过程中最容易出错的几个地方:

连接不上?检查这些:

想同时用多个服务?

{
  "mcpServers": {
    "user-service": {"command": "python", "args": ["/path/to/user_manager.py"]},
    "email-service": {"command": "python", "args": ["/path/to/email_server.py"]}
  }
}

Claude会根据你的问题智能选择用哪个服务器。我现在就是这样配置的,一个Claude Desktop对接了好几个业务系统。

小结:你的AI助手上线了

恭喜!完成这课后,你已经实现了一个真正可用的AI工作台。

你现在掌握了什么:

最重要的是体验变化:

以前查个用户信息要写SQL、跑脚本,现在直接问Claude:”张三这个用户最近活跃吗?”3秒钟就有答案。

我们团队用了这套系统后,客服查询效率提升了一倍多。数据分析也从原来的半小时缩短到几分钟。最关键的是,新同事不用学复杂的查询语言,会说话就会用。

下一步:企业级增强

下一课我们会讲企业级的高级功能:权限控制、性能监控、错误处理等。让你的AI助手更稳定、更安全。

你现在就可以开始在团队里推广这个AI工作台了。相信我,同事们会被震撼的!

文档信息

京ICP备2021015985号-1