Juhe Mcp Server

Juhe Mcp Server

juhemcp

开发者工具
访问服务器

README

mcp-proxy

GitHub 许可证 PyPI - Python 版本 PyPI - 下载量 codecov smithery badge

关于

mcp-proxy 是一个允许您在服务器传输方式之间切换的工具。支持两种模式:

  1. stdio 到 SSE
  2. SSE 到 stdio

1. stdio 到 SSE

从 stdio 运行代理服务器,该服务器连接到远程 SSE 服务器。

此模式允许像 Claude Desktop 这样的客户端通过 SSE 与远程服务器通信,即使它本身不支持。

graph LR
    A["Claude Desktop"] <--> |stdio| B["mcp-proxy"]
    B <--> |SSE| C["External MCP Server"]

    style A fill:#ffe6f9,stroke:#333,color:black,stroke-width:2px
    style B fill:#e6e6ff,stroke:#333,color:black,stroke-width:2px
    style C fill:#e6ffe6,stroke:#333,color:black,stroke-width:2px

1.1 配置

此模式需要将 MCP 服务器 SSE 端点的 URL 作为程序的第一个参数传递。

参数

名称 必需 描述 示例
command_or_url 要连接的 MCP 服务器 SSE 端点 http://example.io/sse
--headers 用于 MCP 服务器 SSE 连接的标头 Authorization 'Bearer my-secret-access-token'

环境变量

名称 必需 描述 示例
API_ACCESS_TOKEN 可以代替 --headers Authorization 'Bearer <API_ACCESS_TOKEN>' 使用 YOUR_TOKEN

1.2 使用示例

mcp-proxy 应该由 MCP 客户端启动,因此必须相应地完成配置。

对于 Claude Desktop,配置条目可能如下所示:

{
  "mcpServers": {
    "mcp-proxy": {
        "command": "mcp-proxy",
        "args": ["http://example.io/sse"],
        "env": {
          "API_ACCESS_TOKEN": "access-token"
        }
    }
  }
}

2. SSE 到 stdio

运行一个代理服务器,该服务器公开一个 SSE 服务器,该服务器连接到本地 stdio 服务器。

这允许远程连接到本地 stdio 服务器。 mcp-proxy 打开一个端口来监听 SSE 请求,生成一个处理 MCP 请求的本地 stdio 服务器。

graph LR
    A["LLM Client"] <-->|SSE| B["mcp-proxy"]
    B <-->|stdio| C["Local MCP Server"]

    style A fill:#ffe6f9,stroke:#333,color:black,stroke-width:2px
    style B fill:#e6e6ff,stroke:#333,color:black,stroke-width:2px
    style C fill:#e6ffe6,stroke:#333,color:black,stroke-width:2px

2.1 配置

此模式需要设置 --sse-port 参数。 可以设置 --sse-host 参数来指定 SSE 服务器将监听的主机 IP 地址。 可以使用 --env 参数将其他环境变量传递到本地 stdio 服务器。 本地 stdio 服务器的命令行参数必须在 -- 分隔符之后传递。

参数

名称 必需 描述 示例
command_or_url 用于生成 MCP stdio 服务器的命令 uvx mcp-server-fetch
--sse-port 否, 随机可用 要监听的 SSE 服务器端口 8080
--sse-host 否, 默认为 127.0.0.1 SSE 服务器将监听的主机 IP 地址 0.0.0.0
--env 要传递到 MCP stdio 服务器的其他环境变量 FOO=BAR
--pass-environment 生成服务器时传递所有环境变量 --no-pass-environment
--allow-origin 生成服务器时传递所有环境变量 --allow-cors "*"

2.2 使用示例

要启动监听端口 8080 并连接到本地 MCP 服务器的 mcp-proxy 服务器:

# 在代理后面启动 MCP 服务器
mcp-proxy uvx mcp-server-fetch

# 在代理后面启动 MCP 服务器,使用自定义端口
mcp-proxy --sse-port=8080 uvx mcp-server-fetch

# 在代理后面启动 MCP 服务器,使用自定义主机和端口
mcp-proxy --sse-host=0.0.0.0 --sse-port=8080 uvx mcp-server-fetch

# 在代理后面启动 MCP 服务器,使用自定义用户代理
# 请注意,`--` 分隔符用于分隔 `mcp-proxy` 参数和 `mcp-server-fetch` 参数
mcp-proxy --sse-port=8080 -- uvx mcp-server-fetch --user-agent=YourUserAgent

这将启动一个 MCP 服务器,可以通过 http://127.0.0.1:8080/sse 连接到该服务器。

安装

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 MCP Proxy:

npx -y @smithery/cli install mcp-proxy --client claude

通过 PyPI 安装

该软件包的稳定版本可在 PyPI 存储库中找到。 您可以使用以下命令安装它:

# 选项 1:使用 uv (推荐)
uv tool install mcp-proxy

# 选项 2:使用 pipx (替代方案)
pipx install mcp-proxy

安装完成后,您可以使用 mcp-proxy 命令运行服务器。 请参阅上面每种模式的配置选项。

通过 Github 仓库安装 (最新)

可以使用以下命令从 git 存储库安装该软件包的最新版本:

uv tool install git+https://github.com/sparfenyuk/mcp-proxy

[!NOTE] 如果您已经安装了服务器,则可以使用 uv tool upgrade --reinstall 命令更新它。

[!NOTE] 如果要删除服务器,请使用 uv tool uninstall mcp-proxy 命令。

作为容器安装

从 0.3.2 版本开始,可以拉取并运行相应的容器镜像:

docker run -t ghcr.io/sparfenyuk/mcp-proxy:v0.3.2-alpine --help

扩展容器镜像

您可以扩展 mcp-proxy 容器镜像以包含其他可执行文件。 例如,默认情况下不包含 uv,但您可以创建一个包含它的自定义镜像:

# file: mcp-proxy.Dockerfile

FROM ghcr.io/sparfenyuk/mcp-proxy:latest

# 安装 'uv' 包
RUN python3 -m ensurepip && pip install --no-cache-dir uv

ENV PATH="/usr/local/bin:$PATH" \
    UV_PYTHON_PREFERENCE=only-system

ENTRYPOINT [ "mcp-proxy" ]

Docker Compose 设置

使用自定义 Dockerfile,您可以在 Docker Compose 文件中定义一个服务:

services:
  mcp-proxy-custom:
    build:
      context: .
      dockerfile: mcp-proxy.Dockerfile
    network_mode: host
    restart: unless-stopped
    ports:
      - 8096:8096
    command: "--pass-environment --sse-port=8096 --sse-host 0.0.0.0 uvx mcp-server-fetch"

[!NOTE] 不要忘记设置 --pass-environment 参数,否则您将遇到错误“No interpreter found in managed installations or search path”

命令行参数

usage: mcp-proxy [-h] [-H KEY VALUE] [-e KEY VALUE] [--pass-environment | --no-pass-environment] [--sse-port SSE_PORT] [--sse-host SSE_HOST]
                 [--allow-origin ALLOW_ORIGIN [ALLOW_ORIGIN ...]]
                 [command_or_url] [args ...]

Start the MCP proxy in one of two possible modes: as an SSE or stdio client.

positional arguments:
  command_or_url        Command or URL to connect to. When a URL, will run an SSE client, otherwise will run the given command and connect as a stdio client. See corresponding options for more details.

options:
  -h, --help            show this help message and exit

SSE client options:
  -H KEY VALUE, --headers KEY VALUE
                        Headers to pass to the SSE server. Can be used multiple times.

stdio client options:
  args                  Any extra arguments to the command to spawn the server
  -e KEY VALUE, --env KEY VALUE
                        Environment variables used when spawning the server. Can be used multiple times.
  --pass-environment, --no-pass-environment
                        Pass through all environment variables when spawning the server.

SSE server options:
  --sse-port SSE_PORT   Port to expose an SSE server on. Default is a random port
  --sse-host SSE_HOST   Host to expose an SSE server on. Default is 127.0.0.1
  --allow-origin ALLOW_ORIGIN [ALLOW_ORIGIN ...]
                        Allowed origins for the SSE server. Can be used multiple times. Default is no CORS allowed.

Examples:
  mcp-proxy http://localhost:8080/sse
  mcp-proxy --headers Authorization 'Bearer YOUR_TOKEN' http://localhost:8080/sse
  mcp-proxy --sse-port 8080 -- your-command --arg1 value1 --arg2 value2
  mcp-proxy your-command --sse-port 8080 -e KEY VALUE -e ANOTHER_KEY ANOTHER_VALUE
  mcp-proxy your-command --sse-port 8080 --allow-origin='*'

测试

通过使用 mcp-server-fetch 服务器运行 mcp-proxy 服务器来检查它。 您可以使用 inspector tool 来测试目标服务器。

# 在 SSE 上通过代理运行名为 mcp-server-fetch 的 stdio 服务器
mcp-proxy --sse-port=8080 uvx mcp-server-fetch &

# 给定 SSE 服务器的 URL,使用 mcp-proxy 的另一个实例连接到上面生成的 SSE 代理服务器
mcp-proxy http://localhost:8080/sse

# 发送 CTRL+C 停止第二个服务器

# 将第一个服务器带到前台
fg

# 发送 CTRL+C 停止第一个服务器

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript