云计算百科
云计算领域专业知识百科平台

【MCP教程】Claude Desktop 如何连接部署在远程的remote mcp server服务器(remote host)

前言

最近MCP特别火热,笔者自己也根据官方文档尝试了下。

官方文档给的Demo是在本地部署一个weather.py,然后用本地的Claude Desktop去访问该mcp服务器,从而完成工具的调用:

添加图片注释,不超过 140 字(可选)

但是,问题来了,Claude Desktop只能用在Windows和Mac OS平台: 添加图片注释,不超过 140 字(可选)

但我的一些算法(以下简称算法A)都是部署在Linux平台的,那么本地的Claude Desktop和mcp服务器如何访问Linux平台的算法A呢?

你可能会想:“这还不简单,把mcp服务器直接部署在Linux平台上,然后把算法A集成到mcp服务器的tools里,最后让Win10系统下的Claude Desktop去远程访问Linux服务器上的mcp服务器,从而完成工具调用。”

我个人一开始也是这样想的,但后续查资料发现Claude Desktop不支持访问远程服务器,只能访问本地的文件,故该方法行不通。

虽然我们也可以采用将mcp服务器部署在本地Windows系统上,然后让mcp与远程服务器进行通信(ssh,socket)从而完成数据传输,但终究不太方便。

故这里个人提供一个简单的方法:端口转发(端口转发介绍)。

步骤:

  • 下载端口转发工具(Termius或者VSCode都可以)
  • 将mcp server部署在远程服务器上(比如远程服务器上的127.0.0.1:8080 端口上)
  • 利用端口转发技术,将远程服务器上的端口映射到你本地的端口(比如将远程服务器上的127.0.0.1:8080 端口映射到你本地的127.0.0.1:8080 上)
  • 让Claude Desktop访问本地127.0.0.1:8080 端口,这样就相当于在访问远程服务器上的mcp server,从而完成工具的调用。
  • 说白了,端口转发就是做了一次映射,将部署在远程服务器127.0.0.1:8080 端口的mcp server服务,映射到了你本地的127.0.0.1:8080 端口上,让你通过访问本地网址就能达到访问远程网址的效果。

    教程

    1.环境安装

    进入你的服务器,安装MCP所需环境。

    conda环境安装mcp指令如下:

    conda create -n mcp_demo python=3.10
    conda activate mcp_demo
    pip install mcp openai python-dotenv mcp[cli]

    2.用VSCode完成端口转发

    假设你是用VSCode连接的你的服务器,那你可以用VSCode自带的“端口转发”工具来操作。

    首先,创建任意一个py文件(本文以weatherSSE.py为例),在红框内输入以下Mcp server的代码:

    在这里插入图片描述

    from typing import Any, Dict
    import httpx
    from mcp.server.fastmcp import FastMCP

    # 初始化FastMCP服务器
    # mcp = FastMCP("weather")
    mcp = FastMCP(
    name="weather",
    host="127.0.0.1",
    port=8000,
    description="Linux的mcp服务器用于完成加法运算",
    sse_path='/sse'
    )

    #这里的port只要不与其他程序的端口冲突都可以

    @mcp.tool()
    def add(a: int, b: int) > int:
    """Add remote two numbers"""
    return a + b

    if __name__ == "__main__":
    # 初始化并运行服务器
    try:
    print("Starting server…")
    mcp.run(transport='sse')
    except Exception as e:
    print(f"Error: {e}")

    然后在命令行里输入(这里的weatherSSE是你刚刚创建的py文件):

    python weatherSSE.py

    运行程序后,正常而言,你应该能看到如下提示(mcp server运行在了127.0.0.1:8000): 在这里插入图片描述

    更具体来说,你应该还能看到右下角有个关于port的提示:

    在这里插入图片描述

    点击PORTS,可以看到VSCode自动把远程服务器127.0.0.1:8000映射到了本地服务器上的127.0.0.1:8001

    在这里插入图片描述

    进入Claude Desktop->File->Setting->Developer->Edit Config

    在这里插入图片描述

    打开Config文件,输入以下指令:

    在这里插入图片描述

    "math": {
    "command": "npx",
    "args": ["mcp-remote", "http://127.0.0.1:8001/sse"]
    }

    询问Claude Desktop问题,可以看到正常调用了add函数(这里显示local是因为我们把server服务映射到了local,自然就相当于从local调用): 添加图片注释,不超过 140 字(可选)

    3.(可选)用Termius进行端口转发

    如果你的VSCode没法完成端口转发,你也可以用Termius工具完成转发。 Termius工具下载:https://www.termius.com/ 填写你服务器的IP,用户,密码,连接你的服务器:

    添加图片注释,不超过 140 字(可选)

    连接上服务器后,如何配置mcp环境,如何编写程序就跟上述步骤一样。 重点是下面的操作:点击Termius的Port Forwarding设置转发规则:

    添加图片注释,不超过 140 字(可选)

    双击规则,启动该规则(图标变蓝色就代表启动成功):

    添加图片注释,不超过 140 字(可选)

    测试成功:

    添加图片注释,不超过 140 字(可选)

    总结 本文讲了如何用Claude Desktop访问Linux服务器mcp server的方法,本人也是初学者,如有错误,欢迎指出

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【MCP教程】Claude Desktop 如何连接部署在远程的remote mcp server服务器(remote host)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!