关于 PipesHub
PipesHub 是用于搜索办公内容并返回带引用答案的远程 MCP 服务,面向需要按权限访问企业内容的团队与 Agent。
主要功能
- 01按权限搜索办公内容
- 02跨来源生成引用答案
- 03读取和下载记录
- 04发现目录与数据源
- 05可选聊天和 Agent 工具
适用场景
- 01查找 Jira、Slack 或 Drive 信息
- 02按用户权限读取记录
- 03向编码 Agent 接入办公内容
MCP 相关
通过 `/mcp` 提供 Streamable HTTP MCP 端点,工具涵盖搜索、聊天、记录读取、目录、数据源和 Agent;客户端可用 OAuth 或 bearer token 认证。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://{instance_host}/mcpclaude mcp add --transport http pipeshub-ai https://{instance_host}/mcp{"mcpServers":{"pipeshub-ai":{"type":"http","url":"https://{instance_host}/mcp"}}}在 Cursor 中打开{"servers":{"pipeshub-ai":{"type":"http","url":"https://{instance_host}/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeshub-ai":{"type":"http","url":"https://{instance_host}/mcp"}}}{"mcpServers":{"pipeshub-ai":{"serverUrl":"https://{instance_host}/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://{instance_host}/mcp需要授权工具
详细介绍
将 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 进程。
▶ 观看 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 应用
- 以管理员身份登录你的 PipesHub 实例
- 前往 Settings > Developer Settings > OAuth Apps
- 点击 Create OAuth App
- 填写应用详情:
-
Name:例如,
MCP Integration -
Redirect URIs:添加你计划使用的客户端的所有重定向 URI:
客户端 重定向 URI Cursor cursor://anysphere.cursor-mcp/oauth/callbackClaude Code http://localhost:<PORT>/callback(例如,http://localhost:8080/callback)Claude.ai (Web) https://claude.ai/api/mcp/auth_callbackGemini CLI http://localhost:7777/oauth/callbackLibreChat http://localhost:3080/api/mcp/<server-identifier>/oauth/callback
-
**重要:**为你的 OAuth 应用授予发现端点列出的所有范围(请参阅自定义默认范围)。登录时会授予应用允许的请求范围,并忽略其余范围,因此应用缺少某个范围不会导致登录失败;需要该范围的工具会被拒绝访问。如果应用不允许任何请求的范围,或请求的范围名称未知,登录将因
invalid_scope而失败。
- 保存应用,并复制 Client ID 和 Client Secret
自定义默认范围
/.well-known/oauth-protected-resource/mcp 发现端点会列出 MCP 工具使用的范围,因此 Claude Code 等会请求所有列出范围的客户端,只会请求工具所需的范围:
| 范围 | 使用方 |
|---|---|
semantic:write | pipeshub_search |
conversation:chat | pipeshub_chat |
agent:read、agent:execute | pipeshub_agents、pipeshub_sources、使用 Agent 的 pipeshub_chat |
kb:read、connector:read、config:read | pipeshub_sources、pipeshub_get_record_content、pipeshub_download_record、pipeshub_indexing_status |
kb:write、kb:upload | pipeshub_create_collection、pipeshub_upload |
user:read、team:read、usergroup:read | pipeshub_directory |
code:read | pipeshub_code_* 工具 |
发现端点还会列出 offline_access。它不是工具范围,而是允许客户端获取刷新令牌,这样访问令牌过期后就无需重新登录,客户端可以保持登录状态。
该列表受 PipesHub 实例的 MCP_SCOPES 环境变量限制;该变量也限定了任何个人访问令牌或 OAuth 令牌可持有的范围上限。从 MCP_SCOPES 中移除某个范围后,发现端点将不再列出它。Cursor 和 LibreChat 等自行设置范围的客户端仍会请求该范围,但 PipesHub 不会授予 MCP_SCOPES 排除的范围。使用此行为之前版本的 PipesHub 服务会列出 MCP_SCOPES 中的所有范围。
占位符
在以下所有配置中替换这些占位符:
| 占位符 | 说明 | 示例 |
|---|---|---|
PIPESHUB_INSTANCE_URL | 你的 PipesHub 实例 URL | https://app.pipeshub.com |
YOUR_CLIENT_ID | OAuth 应用客户端 ID | clid_abc123... |
YOUR_CLIENT_SECRET | OAuth 应用客户端密钥 | 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
| 属性 | 必填 | 描述 |
|---|---|---|
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 阶段。免费套餐用户最多只能添加一个自定义连接器。


个人用户(Pro / Max 套餐)
- 前往 claude.ai,然后进入 设置 > 连接器
- 点击连接器部分底部的 添加自定义连接器
- 输入 MCP 服务 URL:
PIPESHUB_INSTANCE_URL/mcp - 点击 高级设置,并输入 OAuth 凭据:
- OAuth 客户端 ID:
YOUR_CLIENT_ID - OAuth 客户端密钥:
YOUR_CLIENT_SECRET
- OAuth 客户端 ID:
- 点击 添加
- 系统会将你重定向到 PipesHub 登录页面,以进行身份验证并授予权限
- 完成身份验证后,连接器即会启用,PipesHub 工具也会在你的 Claude.ai 对话中提供
团队 / 企业套餐
组织所有者必须先添加连接器:
- 前往 组织设置 > 连接器
- 点击 添加自定义连接器
- 输入 MCP 服务 URL:
PIPESHUB_INSTANCE_URL/mcp - 点击 高级设置,并输入 OAuth 客户端 ID 和客户端密钥
- 点击 添加
然后,团队成员即可连接:
- 前往 设置 > 连接器
- 找到 PipesHub 连接器(标有“自定义”标签)
- 点击 连接,通过 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 Servers 设置面板
- 点击 Add,创建新的自定义 MCP 连接器
- 填写连接器详情:
- Name:
Pipeshub(或您喜欢的任意名称) - MCP Server URL:
PIPESHUB_INSTANCE_URL/mcp - Transport:选择 Streamable HTTPS
- Authentication:选择 OAuth
- Name:
- 输入您的 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(或根据需要添加其他作用域)
- Client ID:
- 勾选 I trust this application
- 点击 Add 保存连接器
- 添加后,LibreChat 会生成一个 Redirect URI,显示在连接器设置面板中(复制按钮旁边)。其格式如下:
http://localhost:3080/api/mcp/<server-identifier>/oauth/callback - 复制 Redirect URI,并将其注册为 PipesHub OAuth 应用中允许的重定向 URI(参见步骤 1)
- 返回 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 实例 URL | https://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_ATTEMPTS | 3 | 每个请求的尝试次数,包含首次请求,范围为 1 到 10。设为 1 可关闭重试。 |
PIPESHUB_MCP_TIMEOUT_MS | 60000 | 等待 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
- Cursor:
- 确保 PipesHub 中的 OAuth 应用处于启用状态(未被暂停)
无法访问 MCP 端点
- 验证端点是否可访问:
curl -X POST PIPESHUB_INSTANCE_URL/mcp(应返回 401,而不是连接错误) - 检查你的 PipesHub 实例是否已启用 MCP
使用 MCP Inspector 调试
npx @modelcontextprotocol/inspector
然后使用 Bearer 令牌连接到 PIPESHUB_INSTANCE_URL/mcp,直接测试该端点。
常见问题
如何更新 MCP 集成的作用域?
- 在 PipesHub 实例上更新
MCP_SCOPES环境变量,使其包含你希望客户端获取的作用域。发现功能只会列出 MCP 工具使用的作用域。 - 在 PipesHub 中更新 OAuth 应用的作用域:前往 设置 > 开发者设置 > OAuth 应用,选择你的 OAuth 应用,然后按需添加或移除作用域。
- 重新对客户端进行身份验证——现有令牌仍携带旧作用域,因此你需要重新进行身份验证,以获取具有更新后作用域的新令牌。例如:
- Cursor:移除并重新添加 MCP 服务,或清除缓存的 OAuth 令牌后重新连接。
- Claude Code:运行
/mcp并再次完成浏览器登录流程。 - Gemini CLI:运行
/mcp auth pipeshub以重新进行身份验证。 - Codex CLI:将
PIPESHUB_BEARER_TOKEN更新为新令牌,然后重启 Codex。 - Claude.ai:在 设置 > 连接器 中断开并重新连接该连接器。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
