mcpField
P
PipesHub

PipesHub

远程服务
docs.pipeshub.com搜索与检索171 天前更新

关于 PipesHub

PipesHub 是用于搜索办公内容并返回带引用答案的远程 MCP 服务,面向需要按权限访问企业内容的团队与 Agent。

主要功能

  1. 01按权限搜索办公内容
  2. 02跨来源生成引用答案
  3. 03读取和下载记录
  4. 04发现目录与数据源
  5. 05可选聊天和 Agent 工具

适用场景

  1. 01查找 Jira、Slack 或 Drive 信息
  2. 02按用户权限读取记录
  3. 03向编码 Agent 接入办公内容

MCP 相关

通过 `/mcp` 提供 Streamable HTTP MCP 端点,工具涵盖搜索、聊天、记录读取、目录、数据源和 Agent;客户端可用 OAuth 或 bearer token 认证。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://{instance_host}/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://{instance_host}/mcp需要授权
安装包
npm@pipeshub-ai/mcp4.8.0

工具

详细介绍

将 MCP 客户端连接到 PipesHub MCP 服务

本指南介绍如何使用静态 OAuth 凭据或 bearer token,将 PipesHub 的远程 MCP 服务连接到 Cursor、Claude Code、Gemini CLI、Codex CLI、Claude.ai (Web) 和 LibreChat。

PipesHub 通过 /mcp 上的 Streamable HTTP 暴露远程 MCP 端点。MCP 客户端直接连接此端点——无需本地 npm 包或 stdio 进程。

在 YouTube 上观看 PipesHub 演示

▶ 观看 2 分半钟的演示:Claude Code 使用此 MCP 服务从 Jira、Slack、GitHub 和 Drive 获取答案,并遵循每个人各自的权限。

正在使用编码 Agent? 从编码 Agent 指南开始。使用 npx skills add pipeshub-ai/mcp-server 将技能安装到用户的仓库中(参见 skills/pipeshub),并附上该页面中的 AGENTS.md 代码片段。PipesHub 已列入官方 MCP 注册表,条目为 io.github.pipeshub-ai/mcp,也已作为 PipesHub 列入 Cursor Directory。清单文件(plugin.json、mcp.json)默认将 MCP 指向 http://localhost:3000/mcp(Docker)。公司实例请更改 URL;这些文件不包含机密信息。在此仓库中参与贡献的人员请阅读 AGENTS.md。

Claude Code 插件: 运行 /plugin marketplace add pipeshub-ai/mcp-server,然后运行 /plugin install pipeshub@pipeshub,即可添加 MCP 服务、技能以及 /pipeshub:ask 和 /pipeshub:setup 命令。它通过 Authorization: Bearer ${PIPESHUB_MCP_TOKEN} 连接到 ${PIPESHUB_MCP_URL:-https://app.pipeshub.com/mcp};请在 shell 中导出这两个变量(可自托管:将 URL 设置为 https://<your-instance>/mcp),然后重启 Claude Code。

要查阅工具参考吗? 请参见 TOOLS.md,其中包含 MCP 服务提供的每个工具(pipeshub_chat、pipeshub_search、pipeshub_get_record_content、pipeshub_download_record、pipeshub_directory、pipeshub_sources、pipeshub_agents)的说明、参数和决策指南。默认推荐搜索和读取记录;pipeshub_chat 为可选项(参见不配置 pipeshub_chat)。

正在使用 QM? QM 无法连接第三方 MCP 端点——它是自身运行框架的 MCP 服务,而非客户端。请参阅将 PipesHub 与 QM 配合使用。qm/ 中的部署层套件可让 Agent 在沙盒中使用 pipeshub 命令;此软件包将该命令作为第二个可执行文件发布。

前置条件

  • 正在运行的 PipesHub 实例:PipesHub Cloud 或自托管实例。若要自托管,本地 Docker 演示操作手册涵盖了安装和首次运行——请勿搭建 LangChain。首次运行(账户 + 大模型)仍需在浏览器中完成;配置大模型之前,搜索会返回 500 错误。
  • 在 PipesHub 中创建的 OAuth 应用(参见步骤 1)

步骤 1:在 PipesHub 中创建 OAuth 应用

  1. 以管理员身份登录你的 PipesHub 实例
  2. 前往 Settings > Developer Settings > OAuth Apps
  3. 点击 Create OAuth App
  4. 填写应用详情:
    • Name:例如,MCP Integration

    • Redirect URIs:添加你计划使用的客户端的所有重定向 URI:

      客户端重定向 URI
      Cursorcursor://anysphere.cursor-mcp/oauth/callback
      Claude Codehttp://localhost:<PORT>/callback(例如,http://localhost:8080/callback)
      Claude.ai (Web)https://claude.ai/api/mcp/auth_callback
      Gemini CLIhttp://localhost:7777/oauth/callback
      LibreChathttp://localhost:3080/api/mcp/<server-identifier>/oauth/callback

**重要:**为你的 OAuth 应用授予发现端点列出的所有范围(请参阅自定义默认范围)。登录时会授予应用允许的请求范围,并忽略其余范围,因此应用缺少某个范围不会导致登录失败;需要该范围的工具会被拒绝访问。如果应用不允许任何请求的范围,或请求的范围名称未知,登录将因 invalid_scope 而失败。

  1. 保存应用,并复制 Client ID 和 Client Secret
自定义默认范围

/.well-known/oauth-protected-resource/mcp 发现端点会列出 MCP 工具使用的范围,因此 Claude Code 等会请求所有列出范围的客户端,只会请求工具所需的范围:

范围使用方
semantic:writepipeshub_search
conversation:chatpipeshub_chat
agent:read、agent:executepipeshub_agents、pipeshub_sources、使用 Agent 的 pipeshub_chat
kb:read、connector:read、config:readpipeshub_sources、pipeshub_get_record_content、pipeshub_download_record、pipeshub_indexing_status
kb:write、kb:uploadpipeshub_create_collection、pipeshub_upload
user:read、team:read、usergroup:readpipeshub_directory
code:readpipeshub_code_* 工具

发现端点还会列出 offline_access。它不是工具范围,而是允许客户端获取刷新令牌,这样访问令牌过期后就无需重新登录,客户端可以保持登录状态。

该列表受 PipesHub 实例的 MCP_SCOPES 环境变量限制;该变量也限定了任何个人访问令牌或 OAuth 令牌可持有的范围上限。从 MCP_SCOPES 中移除某个范围后,发现端点将不再列出它。Cursor 和 LibreChat 等自行设置范围的客户端仍会请求该范围,但 PipesHub 不会授予 MCP_SCOPES 排除的范围。使用此行为之前版本的 PipesHub 服务会列出 MCP_SCOPES 中的所有范围。

占位符

在以下所有配置中替换这些占位符:

占位符说明示例
PIPESHUB_INSTANCE_URL你的 PipesHub 实例 URLhttps://app.pipeshub.com
YOUR_CLIENT_IDOAuth 应用客户端 IDclid_abc123...
YOUR_CLIENT_SECRETOAuth 应用客户端密钥clsec_xyz789...

远程 MCP 端点 URL 为:PIPESHUB_INSTANCE_URL/mcp


远程 MCP 设置

Cursor

Cursor 支持通过 mcp.json 中的 auth 对象为远程 MCP 服务配置静态 OAuth。

配置

打开 Cursor Settings > Tools and Integrations > New MCP Server,或编辑项目的 .cursor/mcp.json:

{
  "mcpServers": {
    "pipeshub": {
      "url": "PIPESHUB_INSTANCE_URL/mcp",
      "auth": {
        "CLIENT_ID": "YOUR_CLIENT_ID",
        "CLIENT_SECRET": "YOUR_CLIENT_SECRET",
        "scopes": [
          "org:read", "org:write", "org:admin",
          "user:read", "user:write", "user:invite", "user:delete",
          "usergroup:read", "usergroup:write",
          "team:read", "team:write",
          "kb:read", "kb:write", "kb:delete", "kb:upload",
          "semantic:read", "semantic:write", "semantic:delete",
          "conversation:read", "conversation:write", "conversation:chat",
          "agent:read", "agent:write", "agent:execute",
          "connector:read", "connector:write", "connector:sync", "connector:delete",
          "config:read", "config:write",
          "document:read", "document:write", "document:delete",
          "crawl:read", "crawl:write", "crawl:delete"
        ]
      }
    }
  }
}

Cursor 会通过 PipesHub 的 /.well-known/oauth-protected-resource/mcp 元数据自动发现授权和令牌端点。

注意:如果省略 scopes 字段,Cursor 会获取 /.well-known/oauth-protected-resource/mcp,并请求其中列出的所有 scopes_supported。如需限制访问,请仅明确列出所需范围。你也可以在服务端控制公开哪些范围——请参阅自定义默认范围。

使用环境变量

使用 Cursor 的 ${env:VAR} 插值,避免将密钥存储在配置文件中:

{
  "mcpServers": {
    "pipeshub": {
      "url": "${env:PIPESHUB_INSTANCE_URL}/mcp",
      "auth": {
        "CLIENT_ID": "${env:PIPESHUB_CLIENT_ID}",
        "CLIENT_SECRET": "${env:PIPESHUB_CLIENT_SECRET}",
        "scopes": [
          "kb:read", "kb:write",
          "semantic:read", "semantic:write",
          "conversation:read", "conversation:write", "conversation:chat",
          "agent:read", "agent:write", "agent:execute",
          "connector:read", "connector:write",
          "config:read", "user:read"
        ]
      }
    }
  }
}
重定向 URI

Cursor 为所有 MCP 服务使用固定的重定向 URI:

cursor://anysphere.cursor-mcp/oauth/callback

在 PipesHub 中创建 OAuth 应用时,将此 URI 注册为允许的重定向 URI。

OAuth 登录故障排除

如果 Cursor 的内置浏览器无法加载 OAuth 登录页面,请从内置浏览器中复制授权 URL,并粘贴到常用浏览器中以完成登录流程。

Claude Code

Claude Code 支持通过 --client-id、--client-secret 和 --callback-port 使用静态 OAuth 凭据连接远程 HTTP MCP 服务。

PipesHub 在 /.well-known/oauth-protected-resource/mcp 提供发现信息,因此 Claude Code 会自动发现授权端点和令牌端点。

重要: Claude Code 不支持配置特定的 scope。它会获取 /.well-known/oauth-protected-resource/mcp,读取 scopes_supported 列表,并请求其中的所有 scope。PipesHub 只会列出 MCP 工具使用的 scope。请为 OAuth 应用配置所有这些 scope:登录时会授予应用允许的 scope;缺少所需 scope 的工具将无法使用;如果应用不允许其中任何 scope,登录将因 invalid_scope 而失败。要查看或限制此列表,请参阅自定义默认 Scope。

使用 CLI 添加
claude mcp add --transport http \
  --client-id YOUR_CLIENT_ID \
  --client-secret \
  --callback-port 8080 \
  pipeshub PIPESHUB_INSTANCE_URL/mcp

--client-secret 未提供值时,会提示输入并隐藏输入内容。若要跳过提示,请设置 MCP_CLIENT_SECRET 环境变量:

MCP_CLIENT_SECRET=YOUR_CLIENT_SECRET claude mcp add --transport http \
  --client-id YOUR_CLIENT_ID \
  --client-secret \
  --callback-port 8080 \
  pipeshub PIPESHUB_INSTANCE_URL/mcp

若要在所有项目中使用:

claude mcp add --transport http --scope user \
  --client-id YOUR_CLIENT_ID \
  --client-secret \
  --callback-port 8080 \
  pipeshub PIPESHUB_INSTANCE_URL/mcp
使用 JSON 添加
claude mcp add-json pipeshub '{
  "type": "http",
  "url": "PIPESHUB_INSTANCE_URL/mcp",
  "oauth": {
    "clientId": "YOUR_CLIENT_ID",
    "callbackPort": 8080
  }
}' --client-secret
项目范围配置(.mcp.json)

在项目根目录中创建 .mcp.json 文件。此文件可以提交到版本控制(通过环境变量避免将密钥存入文件):

{
  "mcpServers": {
    "pipeshub": {
      "type": "http",
      "url": "${PIPESHUB_INSTANCE_URL}/mcp",
      "oauth": {
        "clientId": "${PIPESHUB_CLIENT_ID}",
        "callbackPort": 8080
      }
    }
  }
}

启动 Claude Code 前设置环境变量:

export PIPESHUB_INSTANCE_URL="https://app.pipeshub.com"
export PIPESHUB_CLIENT_ID="your-client-id"

注意: 客户端密钥存储在系统密钥链中,而非配置文件中。首次通过 /mcp 进行身份验证时,系统会提示你输入该密钥。

身份验证

添加服务后,在 Claude Code 中运行 /mcp,并按照浏览器登录流程操作。令牌会安全存储并自动刷新。

验证
claude mcp list
claude mcp get pipeshub
Gemini CLI

Gemini CLI 通过 dynamic_discovery(默认方式)支持使用 OAuth 连接远程 MCP 服务,可自动从 PipesHub 的 /.well-known/oauth-protected-resource/mcp 发现授权端点和令牌端点。

选项 A:设置文件

编辑 ~/.gemini/settings.json:

{
  "mcpServers": {
    "pipeshub": {
      "url": "PIPESHUB_INSTANCE_URL/mcp",
      "oauth": {
        "clientId": "YOUR_CLIENT_ID",
        "clientSecret": "YOUR_CLIENT_SECRET",
        "scopes": [
          "org:read", "org:write", "org:admin",
          "user:read", "user:write", "user:invite", "user:delete",
          "usergroup:read", "usergroup:write",
          "team:read", "team:write",
          "kb:read", "kb:write", "kb:delete", "kb:upload",
          "semantic:read", "semantic:write", "semantic:delete",
          "conversation:read", "conversation:write", "conversation:chat",
          "agent:read", "agent:write", "agent:execute",
          "connector:read", "connector:write", "connector:sync", "connector:delete",
          "config:read", "config:write",
          "document:read", "document:write", "document:delete",
          "crawl:read", "crawl:write", "crawl:delete"
        ]
      }
    }
  }
}

注意: 调整 scopes 列表,使其与 OAuth 应用获准的 scope 相匹配。如果只需要部分工具,可以相应地限制 scope。

选项 B:CLI 命令
gemini mcp add --transport http pipeshub PIPESHUB_INSTANCE_URL/mcp

然后编辑 ~/.gemini/settings.json,添加上文所示的 oauth 块。

身份验证

在 Gemini CLI 中使用 /mcp auth 命令:

# List servers and their auth status
/mcp auth

# Authenticate with PipesHub (opens browser for login)
/mcp auth pipeshub

# Re-authenticate if tokens expire
/mcp auth pipeshub

首次连接时,Gemini 会自动检测 401 响应,发现 OAuth 端点并打开浏览器供你登录。令牌会安全存储在 ~/.gemini/mcp-oauth-tokens.json 中并自动刷新。

管理服务
# List all configured servers
gemini mcp list

# Remove the server
gemini mcp remove pipeshub

# Temporarily disable/enable
gemini mcp disable pipeshub
gemini mcp enable pipeshub
### OAuth 配置属性
属性必填描述
clientId是PipesHub 提供的 OAuth 2.0 客户端 ID
clientSecret否OAuth 2.0 客户端密钥(用于机密客户端)
scopes否要请求的 OAuth 作用域
authorizationUrl否覆盖授权端点(默认自动发现)
tokenUrl否覆盖令牌端点(默认自动发现)
redirectUri否覆盖重定向 URI(默认为 http://localhost:7777/oauth/callback)

注意: OAuth 需要本地浏览器。在无头环境、未启用 X11 转发的远程 SSH 环境或无法访问浏览器的容器中均无法使用。

Codex CLI

Codex CLI(OpenAI Codex)通过 Streamable HTTP 连接到远程 MCP 服务,在 ~/.codex/config.toml 中使用 [mcp_servers.<name>] 表进行配置(也可以在项目根目录的 .codex/config.toml 中配置,以限定在该项目内使用)。Codex 的 HTTP 传输通过从环境变量读取 Bearer 令牌进行身份验证,因此请传入 PipesHub JWT Bearer 令牌。

[mcp_servers.pipeshub]
url = "PIPESHUB_INSTANCE_URL/mcp"
bearer_token_env_var = "PIPESHUB_BEARER_TOKEN"

bearer_token_env_var 是存放令牌的环境变量的名称,请在启动 Codex 前导出该变量:

export PIPESHUB_BEARER_TOKEN="YOUR_BEARER_TOKEN"

令牌是原始 JWT,不包含 Bearer 关键字。

也可以通过 CLI 添加:

codex mcp add pipeshub \
  --url PIPESHUB_INSTANCE_URL/mcp \
  --bearer-token-env-var PIPESHUB_BEARER_TOKEN

--bearer-token-env-var 接收的是存放令牌的环境变量名称,而不是令牌值本身。

验证
# List configured MCP servers
codex mcp list

# Inside the Codex TUI, view server status and available tools
/mcp
Claude.ai(Web)

Claude.ai 支持通过远程 MCP 服务添加自定义连接器。这样,你无需进行任何本地设置,即可直接在 Claude.ai 网页界面中使用 PipesHub 工具。

注意: 此功能目前处于 Beta 阶段。免费套餐用户最多只能添加一个自定义连接器。

Claude.ai 连接器设置

Claude.ai 添加自定义连接器对话框

个人用户(Pro / Max 套餐)
  1. 前往 claude.ai,然后进入 设置 > 连接器
  2. 点击连接器部分底部的 添加自定义连接器
  3. 输入 MCP 服务 URL:
    PIPESHUB_INSTANCE_URL/mcp
    
  4. 点击 高级设置,并输入 OAuth 凭据:
    • OAuth 客户端 ID:YOUR_CLIENT_ID
    • OAuth 客户端密钥:YOUR_CLIENT_SECRET
  5. 点击 添加
  6. 系统会将你重定向到 PipesHub 登录页面,以进行身份验证并授予权限
  7. 完成身份验证后,连接器即会启用,PipesHub 工具也会在你的 Claude.ai 对话中提供
团队 / 企业套餐

组织所有者必须先添加连接器:

  1. 前往 组织设置 > 连接器
  2. 点击 添加自定义连接器
  3. 输入 MCP 服务 URL:PIPESHUB_INSTANCE_URL/mcp
  4. 点击 高级设置,并输入 OAuth 客户端 ID 和客户端密钥
  5. 点击 添加

然后,团队成员即可连接:

  1. 前往 设置 > 连接器
  2. 找到 PipesHub 连接器(标有“自定义”标签)
  3. 点击 连接,通过 PipesHub 的 OAuth 登录进行身份验证
重定向 URI

Claude.ai 使用以下 OAuth 重定向 URI:

https://claude.ai/api/mcp/auth_callback

请将其注册为 PipesHub OAuth 应用中允许使用的重定向 URI。

安全说明
  • 仅连接到可信的 MCP 服务
  • 查看 OAuth 身份验证流程中请求的权限
  • Claude.ai 使用已授予的 OAuth 令牌代表你与 PipesHub 交互,不会共享你的密码
LibreChat

LibreChat 支持通过自定义连接器界面使用 OAuth 身份验证连接远程 MCP 服务。这样,你可以将 PipesHub 工具连接到 LibreChat 实例中提供的任意模型。

LibreChat MCP 配置

配置
  1. 登录您的 LibreChat 实例
  2. 前往 MCP Servers 设置面板
  3. 点击 Add,创建新的自定义 MCP 连接器
  4. 填写连接器详情:
    • Name:Pipeshub(或您喜欢的任意名称)
    • MCP Server URL:PIPESHUB_INSTANCE_URL/mcp
    • Transport:选择 Streamable HTTPS
    • Authentication:选择 OAuth
  5. 输入您的 OAuth 凭据:
    • Client ID:YOUR_CLIENT_ID
    • Client Secret:YOUR_CLIENT_SECRET
    • Authorization URL:PIPESHUB_INSTANCE_URL/api/v1/oauth2/authorize
    • Token URL:PIPESHUB_INSTANCE_URL/api/v1/oauth2/token
    • Scope:openid email(或根据需要添加其他作用域)
  6. 勾选 I trust this application
  7. 点击 Add 保存连接器
  8. 添加后,LibreChat 会生成一个 Redirect URI,显示在连接器设置面板中(复制按钮旁边)。其格式如下:
    http://localhost:3080/api/mcp/<server-identifier>/oauth/callback
    
  9. 复制 Redirect URI,并将其注册为 PipesHub OAuth 应用中允许的重定向 URI(参见步骤 1)
  10. 返回 LibreChat 连接器并点击 Update,以启动 OAuth 流程 — 您将被重定向到 PipesHub 登录页面进行身份验证并授予权限
重定向 URI

LibreChat 会在创建连接器后生成重定向 URI。URI 格式如下:

http://localhost:3080/api/mcp/<server-identifier>/oauth/callback

其中,<server-identifier> 是 LibreChat 分配的唯一标识符(显示在连接器设置顶部的 "Unique Server Identifier" 中)。您必须复制此 URI,并在进行身份验证之前将其添加到 PipesHub OAuth 应用的允许重定向 URI 中。

注意: 如果您的 LibreChat 实例运行在不同的主机或端口上,URI 也会相应变化(例如,https://chat.example.com/api/mcp/pipeshub/oauth/callback)。

作用域

LibreChat 允许您在 Scope 字段中指定 OAuth 作用域。请使用以空格分隔的列表:

openid email

若要请求 PipesHub 专属作用域,请将其添加到作用域字段中:

openid email org:read kb:read kb:write semantic:read conversation:read conversation:write conversation:chat agent:read agent:execute

注意: 登录时只会授予 PipesHub 中 OAuth 应用允许的所请求作用域,因此请请求该应用已获授权的作用域。详情请参阅自定义默认作用域。


本地 MCP 服务(Stdio)

您可以使用 @pipeshub-ai/mcp npm 包,将 MCP 服务作为 stdio 进程在本地运行,而不是连接到 PipesHub 的远程 MCP 端点。如果您偏好本地设置,或需要在无法直接通过 HTTP 连接远程 MCP 端点的环境中工作,这种方式会很有用。

前置条件
  • 已安装 Node.js 18+
  • 一个 PipesHub 实例 URL
  • 一个代表您身份的凭据,以便结果遵循您的权限。可选择以下任一方式:
    • 配置中不包含令牌: 运行一次 pipeshub login(npm i -g @pipeshub-ai/mcp;自托管时使用 --url <origin>)。如果未提供 --bearer-auth,start 会使用该登录凭据,并刷新它(对于会发放设备登录刷新令牌的 PipesHub 版本;否则凭据有效期为一小时),同时默认将 --server-url 设为您登录的实例。它还会从环境中读取 PIPESHUB_TOKEN,且只会将其发送到 --server-url 或 PIPESHUB_BASE_URL。
    • 个人访问令牌(phpat_…),在 PipesHub 的 Developer Settings 中创建,并通过 --bearer-auth 传入,如下方示例所示。

使用 pipeshub login 时,Claude Desktop 配置项只需:

{
  "mcpServers": {
    "pipeshub": {
      "command": "npx",
      "args": ["@pipeshub-ai/mcp", "start"]
    }
  }
}
占位符

请在以下所有配置中替换这些占位符:

占位符说明示例
PIPESHUB_INSTANCE_URL你的 PipesHub 实例 URLhttps://app.pipeshub.com
YOUR_BEARER_TOKEN你的个人访问令牌phpat_...
Claude Desktop

在 Claude Desktop 设置中配置(claude_desktop_config.json):

{
  "mcpServers": {
    "pipeshub": {
      "command": "npx",
      "args": [
        "@pipeshub-ai/mcp",
        "start",
        "--server-url",
        "PIPESHUB_INSTANCE_URL",
        "--bearer-auth",
        "YOUR_BEARER_TOKEN"
      ]
    }
  }
}
Cursor (Local)

打开 Cursor Settings > Tools and Integrations > New MCP Server,或编辑项目的 .cursor/mcp.json:

{
  "mcpServers": {
    "pipeshub": {
      "command": "npx",
      "args": [
        "@pipeshub-ai/mcp",
        "start",
        "--server-url",
        "PIPESHUB_INSTANCE_URL",
        "--bearer-auth",
        "YOUR_BEARER_TOKEN"
      ]
    }
  }
}
Claude Code CLI (Local)
claude mcp add pipeshub -- npx -y @pipeshub-ai/mcp start \
  --server-url PIPESHUB_INSTANCE_URL \
  --bearer-auth YOUR_BEARER_TOKEN
Gemini CLI (Local)
gemini mcp add pipeshub -- npx -y @pipeshub-ai/mcp start \
  --server-url PIPESHUB_INSTANCE_URL \
  --bearer-auth YOUR_BEARER_TOKEN
Codex CLI (Local)

使用你的个人访问令牌,将 MCP 服务作为本地 stdio 进程运行。编辑 ~/.codex/config.toml(或项目根目录下的 .codex/config.toml):

[mcp_servers.pipeshub]
command = "npx"
args = [
  "-y",
  "@pipeshub-ai/mcp",
  "start",
  "--server-url",
  "PIPESHUB_INSTANCE_URL",
  "--bearer-auth",
  "YOUR_BEARER_TOKEN",
]
VS Code

打开命令面板 > MCP: Open User Configuration,然后添加:

{
  "mcpServers": {
    "pipeshub": {
      "command": "npx",
      "args": [
        "@pipeshub-ai/mcp",
        "start",
        "--server-url",
        "PIPESHUB_INSTANCE_URL",
        "--bearer-auth",
        "YOUR_BEARER_TOKEN"
      ]
    }
  }
}
Windsurf

打开 Windsurf Settings > Cascade > Manage MCPs > View raw config,然后添加:

{
  "mcpServers": {
    "pipeshub": {
      "command": "npx",
      "args": [
        "@pipeshub-ai/mcp",
        "start",
        "--server-url",
        "PIPESHUB_INSTANCE_URL",
        "--bearer-auth",
        "YOUR_BEARER_TOKEN"
      ]
    }
  }
}
从源代码运行(开发)

如需从克隆的仓库运行本地 MCP 服务,而非使用 npm 包:

git clone https://github.com/pipeshub-ai/pipeshub-ai.git
cd pipeshub-ai
npm install
npm run build
node ./bin/mcp-server.js start --server-url PIPESHUB_INSTANCE_URL --bearer-auth YOUR_BEARER_TOKEN

配置 MCP 客户端时,将 npx @pipeshub-ai/mcp 替换为 node ./bin/mcp-server.js:

{
  "mcpServers": {
    "pipeshub": {
      "command": "node",
      "args": [
        "./bin/mcp-server.js",
        "start",
        "--server-url",
        "PIPESHUB_INSTANCE_URL",
        "--bearer-auth",
        "YOUR_BEARER_TOKEN"
      ]
    }
  }
}

使用 MCP Inspector 进行调试:

npx @modelcontextprotocol/inspector node ./bin/mcp-server.js start --server-url PIPESHUB_INSTANCE_URL --bearer-auth YOUR_BEARER_TOKEN
CLI 帮助

查看完整的服务参数列表:

npx @pipeshub-ai/mcp --help
重试与超时

本地服务(start 和 serve)会重试被 PipesHub 以 429、502、503 或 504 拒绝的请求。它会按照 Retry-After 标头指定的时长等待;如果没有该标头,则先等待半秒,再等待一秒。最多重试三次(含首次请求),然后返回最后一次响应。如果 Retry-After 超过 30 秒,则不会等待:会立即返回该响应,并在工具的错误信息中说明 PipesHub 要求等待多久。只有可安全重复的请求才会重试(GET、HEAD、OPTIONS、PUT、DELETE)。搜索和聊天使用 POST,永远不会重试,因为重复请求会导致再次搜索或再次生成回答。

如果请求在 60 秒内没有收到响应,就会被放弃。此限制针对等待 PipesHub 开始响应的时间,而非整个回答的时长,因此已经开始流式传输的长聊天回答不会被截断。

两项设置均通过环境变量配置,可在 MCP 客户端的 env 块中设置,也可使用 --env NAME=VALUE:

变量默认值含义
PIPESHUB_MCP_MAX_ATTEMPTS3每个请求的尝试次数,包含首次请求,范围为 1 到 10。设为 1 可关闭重试。
PIPESHUB_MCP_TIMEOUT_MS60000等待 PipesHub 开始响应的毫秒数。设为 0 可关闭超时。

只读模式

有两个工具会写入数据:pipeshub_create_collection 和 pipeshub_upload 会添加集合和文档(不会删除或覆盖)。它们需要 kb:write 和 kb:upload 权限范围。如需让本地服务仅提供读取工具,请在 start 或 serve 中传入 --scope read。对于远程 /mcp,未包含这些权限范围的令牌不会获得写入工具。


不使用 pipeshub_chat

该服务提供全部 11 个工具,其指令和工具描述会告诉 Agent 先使用 pipeshub_search 和 pipeshub_get_record_content 作答。pipeshub_chat 会运行 PipesHub 自带的助手,是可选工具:对于能调用工具的 Agent,它只会增加成本和耗时,却不会提升准确性。在 PipesHub 的评估中(100 个问题,Claude Opus 作为 Agent),仅使用搜索和读取就找到了 88% 的事实,每个答案的成本为 0.54 美元,中位耗时为 78 秒;加入聊天后,找到的事实比例仍为 88%,成本约为 0.73 美元,耗时为 97 秒。完整数据请参阅 TOOLS.md。

除非你主动选择,否则一切都不会改变:默认情况下,所有工具都会保留。如果要让 Agent 仅使用搜索和读取,请同时禁用 pipeshub_chat 和仅用于为聊天选择 Agent 的 pipeshub_agents:

  • 本地 stdio 服务: 在 MCP 客户端配置中服务的 env 块里设置 PIPESHUB_MCP_CHAT=off,或在 start 或 serve 命令中传入 --env PIPESHUB_MCP_CHAT=off。此时服务会挂载 9 个工具,指令也不再提及聊天或 Agent。取消设置或设为 on 会保持当前行为;任何其他值都会导致服务停止,并提示可接受的值。

    "env": { "PIPESHUB_MCP_CHAT": "off" }
    

    若要逐个选择工具,请改为使用 --tool 列出要保留的工具(例如 --tool pipeshub_search --tool pipeshub_get_record_content)。--tool 不会更改指令。

  • 远程端点(/mcp): 在客户端中关闭该工具。在 Claude Code 中,运行 claude --disallowedTools "mcp__pipeshub__pipeshub_chat,mcp__pipeshub__pipeshub_agents",其中 pipeshub 是你为服务指定的名称;也可以将相同条目添加到 .claude/settings.json 的 permissions.deny 列表中。在其他客户端中,可使用其 MCP 设置里的单项工具开关(如果提供)。

如果客户端无法运行自己的工具循环、你希望由 PipesHub 助手撰写答案、与配置好的 PipesHub Agent 对话,或通过用户已连接的工具执行操作,请保留 pipeshub_chat。


工作原理

架构
AI Client (Cursor / Claude Code / Gemini CLI / Codex CLI / Claude.ai / LibreChat)
        │
        │  HTTP POST (JSON-RPC)
        │  Authorization: Bearer <token>
        ▼
  PIPESHUB_INSTANCE_URL/mcp
        │
        │  StreamableHTTP Transport
        │  (stateless, per-request MCP server)
        ▼
  PipesHub API (curated tool set — see TOOLS.md)
OAuth 受保护资源发现

PipesHub 提供 OAuth 受保护资源发现,地址如下:

PIPESHUB_INSTANCE_URL/.well-known/oauth-protected-resource/mcp

这会自动返回所有 OAuth 端点:

  • 授权:PIPESHUB_INSTANCE_URL/api/v1/oauth2/authorize
  • 令牌:PIPESHUB_INSTANCE_URL/api/v1/oauth2/token
  • 撤销:PIPESHUB_INSTANCE_URL/api/v1/oauth2/revoke
  • JWKS:PIPESHUB_INSTANCE_URL/.well-known/jwks.json

故障排除

“不兼容的身份验证服务器:不支持动态客户端注册”

这意味着客户端尝试进行动态注册,而不是使用你预先配置的凭据。请确认你已正确传入 --client-id 和 --client-secret(Claude Code),或正确配置 auth 对象(Cursor)。

身份验证失败/重定向错误
  • 确保 OAuth 应用中的重定向 URI与客户端使用的 URI 完全一致:
    • Cursor:cursor://anysphere.cursor-mcp/oauth/callback
    • Claude Code:http://localhost:<callbackPort>/callback
    • Claude.ai:https://claude.ai/api/mcp/auth_callback
    • Gemini CLI:http://localhost:7777/oauth/callback
    • LibreChat:http://localhost:3080/api/mcp/<server-identifier>/oauth/callback
  • 确保 PipesHub 中的 OAuth 应用处于启用状态(未被暂停)
无法访问 MCP 端点
  • 验证端点是否可访问:curl -X POST PIPESHUB_INSTANCE_URL/mcp(应返回 401,而不是连接错误)
  • 检查你的 PipesHub 实例是否已启用 MCP
使用 MCP Inspector 调试
npx @modelcontextprotocol/inspector

然后使用 Bearer 令牌连接到 PIPESHUB_INSTANCE_URL/mcp,直接测试该端点。


常见问题

如何更新 MCP 集成的作用域?
  1. 在 PipesHub 实例上更新 MCP_SCOPES 环境变量,使其包含你希望客户端获取的作用域。发现功能只会列出 MCP 工具使用的作用域。
  2. 在 PipesHub 中更新 OAuth 应用的作用域:前往 设置 > 开发者设置 > OAuth 应用,选择你的 OAuth 应用,然后按需添加或移除作用域。
  3. 重新对客户端进行身份验证——现有令牌仍携带旧作用域,因此你需要重新进行身份验证,以获取具有更新后作用域的新令牌。例如:
    • Cursor:移除并重新添加 MCP 服务,或清除缓存的 OAuth 令牌后重新连接。
    • Claude Code:运行 /mcp 并再次完成浏览器登录流程。
    • Gemini CLI:运行 /mcp auth pipeshub 以重新进行身份验证。
    • Codex CLI:将 PIPESHUB_BEARER_TOKEN 更新为新令牌,然后重启 Codex。
    • Claude.ai:在 设置 > 连接器 中断开并重新连接该连接器。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。