Skip to main content
Glama

1MCP Server

proxy.md8.68 kB
# Proxy 命令 启动 STDIO 代理,将仅支持 STDIO 传输的 MCP 客户端连接到运行中的 1MCP HTTP 服务器。 ## 概要 ```bash npx -y @1mcp/agent proxy [选项] ``` ## 描述 `proxy` 命令创建一个 STDIO 传输代理,将所有 MCP 协议通信转发到运行中的 1MCP HTTP 服务器。这使得仅支持 STDIO 传输的 MCP 客户端(如 Claude Desktop)能够连接到具有身份验证、过滤和多客户端支持等高级功能的集中式 1MCP HTTP 服务器。 代理使用多种方法自动发现运行中的 1MCP 服务器,并在支持标签过滤和预设配置的同时,为 STDIO 和 HTTP 传输提供无缝桥接。 ## 自动发现 代理按以下顺序自动发现运行中的 1MCP 服务器: 1. **PID 文件** - 从 `~/.config/1mcp/server.pid` 读取服务器 URL 2. **端口扫描** - 在本地主机上扫描常用端口(3050、3051、3052) 3. **环境变量** - 使用 `ONE_MCP_HOST` 和 `ONE_MCP_PORT` 4. **用户覆盖** - 使用 `--url` 选项指定的 URL ## 项目配置(.1mcprc) 您可以在项目目录中创建名为 `.1mcprc` 的项目级配置文件,为代理命令设置默认连接设置。这允许您避免重复命令行选项,并在团队成员之间共享配置。 ### 先决条件 **项目配置专门为满足以下条件的 MCP 客户端设计:** - **不支持** HTTP 或 SSE(Server-Sent Events)传输 - **仅支持** STDIO 传输(如 Claude Desktop) - **需要通过代理**连接到运行中的 1MCP HTTP 服务器 **必需设置:** 1. **运行中的 1MCP 服务器**:必须在某个端口上运行 `npx -y @1mcp/agent serve` 2. **MCP 客户端限制**:客户端无法直接连接到 HTTP/SSE 端点 3. **桥接需求**:需要代理来转换 STDIO ↔ HTTP 通信 对于可以直接连接到 HTTP/SSE 端点的 MCP 客户端,**不需要**此配置。 ### 配置优先级 设置按以下顺序加载(高优先级覆盖低优先级): 1. **命令行选项**(最高优先级) 2. **项目配置文件**(`.1mcprc`) 3. **默认值**(最低优先级) ### 配置结构 在项目目录中创建 `.1mcprc` 文件: ```json { // 1MCP 代理命令的项目级配置 // 使用预设进行团队协作和配置管理 "preset": "my-preset" } ``` ### 推荐方法 我们建议使用预设以获得更好的配置管理和团队协作: 1. **创建预设**用于不同环境(开发、生产、测试) 2. **与团队成员共享预设**以获得一致的配置 3. **轻松切换环境**,只需更改预设名称 ### 配置示例 #### 开发环境 ```json { "preset": "dev-environment" } ``` #### 生产环境设置 ```json { "preset": "production" } ``` #### 测试环境 ```json { "preset": "testing" } ``` 从项目根目录复制 `.1mcprc.example` 文件作为起始模板。 ## 选项 ### 连接选项 - **`--url, -u <url>`** - 覆盖自动发现的 1MCP 服务器 URL - **`--timeout, -t <ms>`** - 连接超时时间(毫秒,默认:10000) ### 过滤选项 - **`--filter, -f <表达式>`** - 服务器选择的过滤表达式 - **`--preset, -P <名称>`** - 加载预设配置(URL、过滤器等) ### 全局选项 - **`--config-dir, -d <路径>`** - 用于发现的配置目录路径 - **`--log-level <级别>`** - 设置日志级别(`debug`、`info`、`warn`、`error`) - **`--log-file <路径>`** - 将日志写入文件 ## 标签过滤 使用 `--filter` 选项限制通过代理暴露哪些 MCP 服务器: ### 简单过滤(OR 逻辑) ```bash --filter "web,api,database" # 暴露具有这些标签中任意一个的服务器 ``` ### 高级过滤(布尔表达式) ```bash --filter "web AND database" # 同时具有两个标签的服务器 --filter "(web OR api) AND database" # 复杂逻辑 --filter "web AND NOT test" # 排除逻辑 ``` ### 优先级顺序 1. `--filter` 选项(最高优先级) 2. 预设标签查询(如果指定了 `--preset`) 3. `.1mcprc` 配置文件(仅预设) 4. 无过滤(暴露所有服务器) ## 示例 ### 基本用法 ```bash # 自动发现并连接到运行中的 1MCP 服务器 npx -y @1mcp/agent proxy # 使用调试日志连接 npx -y @1mcp/agent proxy --log-level=debug # 使用自定义配置目录进行发现 npx -y @1mcp/agent proxy --config-dir=./test-config # 使用项目配置文件(.1mcprc) npx -y @1mcp/agent proxy ``` ### 特定服务器连接 ```bash # 连接到特定的服务器 URL npx -y @1mcp/agent proxy --url http://localhost:3051/mcp # 使用自定义超时时间连接 npx -y @1mcp/agent proxy --url http://192.168.1.100:3051/mcp --timeout=5000 ``` ### 标签过滤 ```bash # 仅暴露具有 web 和 api 标签的服务器 npx -y @1mcp/agent proxy --filter "web AND api" # 暴露开发服务器 npx -y @1mcp/agent proxy --filter "dev OR test" # 复杂过滤逻辑 npx -y @1mcp/agent proxy --filter "(web OR mobile) AND NOT production" ``` ### 预设集成 ```bash # 从保存的预设加载 URL 和过滤器 npx -y @1mcp/agent proxy --preset my-dev-setup # 使用预设和自定义配置目录 npx -y @1mcp/agent proxy --preset production --config-dir ./prod-config ``` ### 开发和测试 ```bash # 完整日志记录的开发模式 npx -y @1mcp/agent proxy \ --log-level=debug \ --log-file=proxy-debug.log \ --config-dir=./dev-config # 测试特定服务器和过滤 npx -y @1mcp/agent proxy \ --url http://localhost:3051/mcp \ --filter "filesystem,editing" \ --timeout=15000 # 在开发中使用项目配置 # 创建包含开发预设的 .1mcprc 文件 echo '{"preset": "dev-setup"}' > .1mcprc npx -y @1mcp/agent proxy ``` ## 身份验证注意事项 ### STDIO 传输限制 - STDIO 传输**不**支持 OAuth 2.1 身份验证 - STDIO 客户端无法向启用身份验证的服务器进行身份验证 ### 推荐设置 #### 对于 STDIO 客户端(Claude Desktop 等) ```bash # 为 STDIO 客户端启动无身份验证的服务器 npx -y @1mcp/agent serve --port=3051 # 启动代理(开箱即用) npx -y @1mcp/agent proxy ``` #### 对于 HTTP/SSE 客户端 ```bash # 为 Web 客户端启动带身份验证的服务器 npx -y @1mcp/agent serve --port=3052 --enable-auth # HTTP/SSE 客户端可以通过 OAuth 进行身份验证 curl "http://localhost:3052/mcp?app=cursor" ``` ### 混合环境策略 为不同客户端类型运行独立的服务器实例: - **端口 3051**:STDIO 客户端无身份验证(通过代理) - **端口 3052**:HTTP/SSE 客户端有身份验证 ## 工作流集成 ### 典型开发工作流 1. **启动 1MCP 服务器** ```bash npx -y @1mcp/agent serve --port=3051 ``` 2. **添加 MCP 服务器** ```bash npx -y @1mcp/agent mcp add filesystem -- npx mcp-server-filesystem npx -y @1mcp/agent mcp add github -- npx mcp-server-github ``` 3. **创建预设(可选)** ```bash npx -y @1mcp/agent preset create dev --filter "filesystem,github" ``` 4. **启动代理** ```bash npx -y @1mcp/agent proxy --preset dev ``` 5. **配置客户端** - 将 Claude Desktop 指向代理命令 - 客户端通过 STDIO 与代理通信 - 代理将请求转发到带过滤的 HTTP 服务器 ### 生产部署 ```bash # 带过滤的生产服务器 npx -y @1mcp/agent serve \ --port=3051 \ --enable-enhanced-security # 带预设的生产代理 npx -y @1mcp/agent proxy \ --preset production \ --log-level=info \ --config-dir /etc/1mcp ``` ## 故障排除 ### 常见问题 #### 未找到服务器 ```bash # 检查服务器是否正在运行 npx -y @1mcp/agent mcp status # 手动验证服务器 URL curl http://localhost:3051/mcp ``` #### 连接超时 ```bash # 为慢速服务器增加超时时间 npx -y @1mcp/agent proxy --timeout=30000 # 检查网络连接 netstat -an | grep 3051 ``` #### 过滤器不工作 ```bash # 使用调试日志查看过滤详情 npx -y @1mcp/agent proxy --filter "web" --log-level=debug # 验证服务器标签 npx -y @1mcp/agent mcp list --tags=web ``` ### 调试信息 启用调试日志来排查问题: ```bash npx -y @1mcp/agent proxy --log-level=debug ``` 调试输出显示: - 服务器发现尝试 - 连接建立详情 - 标签解析和过滤逻辑 - MCP 协议转发 ## 另请参阅 - **[Serve 命令](./serve.md)** - 启动 1MCP 服务器 - **[MCP 命令](./mcp/)** - 管理 MCP 服务器配置 - **[预设命令](./preset/)** - 创建和管理预设 - **[配置指南](../guide/essentials/configuration.md)** - 配置选项 - **[Claude Desktop 集成](../guide/integrations/claude-desktop.md)** - 桌面客户端设置 - **[架构参考](../reference/architecture.md)** - 传输层详情

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/1mcp-app/agent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server