The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the PipesHub listing page.
This guide covers how to connect PipesHub's remote MCP server to Cursor, Claude Code, Gemini CLI, Codex CLI, Claude.ai (Web), and LibreChat using static OAuth credentials or bearer tokens.
PipesHub exposes a remote MCP endpoint over Streamable HTTP at /mcp. MCP Clients connect to this endpoint directly -- no local npm packages or stdio processes needed.
Coding agent? Start at For coding agents. Install the skill into the user's repo with
npx skills add pipeshub-ai/mcp-server(seeskills/pipeshub) and append theAGENTS.mdsnippet on that page. Listed on the official MCP registry asio.github.pipeshub-ai/mcpand on Cursor Directory as PipesHub. The listing files (plugin.json,mcp.json) default MCP tohttp://localhost:3000/mcp(Docker). Change the URL for a company instance; they contain no secrets. Contributors working in this repository: read AGENTS.md.Looking for the tool reference? See TOOLS.md for descriptions, arguments, and a decision guide for each tool the MCP server exposes (
pipeshub_chat,pipeshub_search,pipeshub_get_record_content,pipeshub_download_record,pipeshub_directory,pipeshub_sources,pipeshub_agents).Using QM? QM cannot attach a third-party MCP endpoint — it is an MCP server to its own harness, not a client. Follow Use PipesHub with QM. The deployment-layer bundle in
qm/gives agents apipeshubcommand inside their sandbox; this package ships that command as a second bin.
Name: e.g., MCP Integration
Redirect URIs: Add all the redirect URIs for the clients you plan to use:
| Client | Redirect URI |
|---|---|
| Cursor | cursor://anysphere.cursor-mcp/oauth/callback |
| Claude Code | http://localhost:<PORT>/callback (e.g., http://localhost:8080/callback) |
| Claude.ai (Web) | https://claude.ai/api/mcp/auth_callback |
| Gemini CLI | http://localhost:7777/oauth/callback |
| LibreChat | http://localhost:3080/api/mcp/<server-identifier>/oauth/callback |
Important: The scopes in
MCP_SCOPESmust match the scopes granted to your OAuth app — a mismatch will result in an authorization error.
By default, PipesHub exposes some default scopes in its /.well-known/oauth-protected-resource/mcp discovery endpoint. You can customize which scopes are exposed by setting the MCP_SCOPES environment variable on your PipesHub instance. This is useful for clients like Claude Code that automatically request all exposed scopes.
Replace these in all configurations below:
| Placeholder | Description | Example |
|---|---|---|
PIPESHUB_INSTANCE_URL | Your PipesHub instance URL | https://app.pipeshub.com |
YOUR_CLIENT_ID | OAuth app client ID | clid_abc123... |
YOUR_CLIENT_SECRET | OAuth app client secret | clsec_xyz789... |
The remote MCP endpoint URL is: PIPESHUB_INSTANCE_URL/mcp
Cursor supports static OAuth for remote MCP servers via the auth object in mcp.json.
Open Cursor Settings > Tools and Integrations > New MCP Server, or edit your project's .cursor/mcp.json:
Cursor will auto-discover the authorization and token endpoints via PipesHub's /.well-known/oauth-protected-resource/mcp metadata.
Note: If the
scopesfield is omitted, Cursor fetches/.well-known/oauth-protected-resource/mcpand requests allscopes_supportedlisted there. To limit access, explicitly list only the scopes you need. You can also control which scopes are exposed server-side — see Customizing Default Scopes.
Use Cursor's ${env:VAR} interpolation to keep secrets out of config files:
Cursor uses a fixed redirect URI for all MCP servers:
Register this as the allowed redirect URI when creating the OAuth app in PipesHub.
If Cursor's internal browser fails to load the OAuth login page, copy the authorization URL from the internal browser and paste it into your normal browser to complete the login flow.
Claude Code supports remote HTTP MCP servers with static OAuth credentials via --client-id, --client-secret, and --callback-port.
PipesHub exposes discovery at /.well-known/oauth-protected-resource/mcp, so Claude Code auto-discovers the authorization and token endpoints.
Important: Claude Code does not support configuring specific scopes. It fetches
/.well-known/oauth-protected-resource/mcp, reads thescopes_supportedlist, and requests all of them. Your OAuth app in PipesHub must have access to all scopes listed in the discovery endpoint, otherwise the authorization request will fail. To limit the exposed scopes, see Customizing Default Scopes.
--client-secretwithout a value prompts for masked input. To skip the prompt, set theMCP_CLIENT_SECRETenvironment variable:
To make it available across all projects:
.mcp.json)Create a .mcp.json file in your project root. This can be committed to version control (secrets stay out via env vars):
Set environment variables before launching Claude Code:
Note: The client secret is stored in the system keychain, not in config files. You'll be prompted to enter it when you first authenticate via
/mcp.
After adding the server, run /mcp inside Claude Code and follow the browser login flow. Tokens are stored securely and refreshed automatically.
Gemini CLI supports remote MCP servers with OAuth via dynamic_discovery (the default), which auto-discovers authorization and token endpoints from PipesHub's /.well-known/oauth-protected-resource/mcp.
Edit ~/.gemini/settings.json:
Note: Adjust the
scopeslist to match what your OAuth app was granted. If you only need a subset of tools, you can limit the scopes accordingly.
Then edit ~/.gemini/settings.json to add the oauth block as shown above.
Inside Gemini CLI, use the /mcp auth commands:
On first connection, Gemini will automatically detect the 401 response, discover the OAuth endpoints, and open a browser for login. Tokens are stored securely in ~/.gemini/mcp-oauth-tokens.json and refreshed automatically.
| Property | Required | Description |
|---|---|---|
clientId | Yes | OAuth 2.0 Client ID from PipesHub |
clientSecret | No | OAuth 2.0 Client Secret (for confidential clients) |
scopes | No | OAuth scopes to request |
authorizationUrl | No | Override authorization endpoint (auto-discovered by default) |
tokenUrl | No | Override token endpoint (auto-discovered by default) |
redirectUri | No | Override redirect URI (defaults to http://localhost:7777/oauth/callback) |
Note: OAuth requires a local browser. It will not work in headless environments, remote SSH without X11 forwarding, or containers without browser access.
Codex CLI (OpenAI Codex) connects to remote MCP servers over Streamable HTTP, configured with a [mcp_servers.<name>] table in ~/.codex/config.toml (or .codex/config.toml in your project root to scope it per-project). Codex's HTTP transport authenticates with a bearer token read from an environment variable, so pass a PipesHub JWT bearer token.
bearer_token_env_var is the name of the environment variable that holds the token — export it before launching Codex:
The token is the raw JWT, without the
Bearerkeyword.
Or add it with the CLI:
--bearer-token-env-vartakes the name of the environment variable holding the token, not the token value itself.
Claude.ai supports custom connectors via remote MCP servers. This lets you use PipesHub tools directly in the Claude.ai web interface without any local setup.
Note: This feature is currently in beta. Free plan users are limited to one custom connector.


YOUR_CLIENT_IDYOUR_CLIENT_SECRETOrganization Owners must first add the connector:
PIPESHUB_INSTANCE_URL/mcpTeam members can then connect:
Claude.ai uses the following redirect URI for OAuth:
Register this as an allowed redirect URI in your PipesHub OAuth app.
LibreChat supports remote MCP servers with OAuth authentication via its custom connectors UI. This lets you connect PipesHub tools to any model available in your LibreChat instance.

Pipeshub (or any name you prefer)PIPESHUB_INSTANCE_URL/mcpYOUR_CLIENT_IDYOUR_CLIENT_SECRETPIPESHUB_INSTANCE_URL/api/v1/oauth2/authorizePIPESHUB_INSTANCE_URL/api/v1/oauth2/tokenopenid email (or additional scopes as needed)LibreChat generates the redirect URI after the connector is created. The URI follows this format:
Where <server-identifier> is the unique identifier assigned by LibreChat (visible at the top of the connector settings as "Unique Server Identifier"). You must copy this URI and add it to your PipesHub OAuth app's allowed redirect URIs before authenticating.
Note: If your LibreChat instance runs on a different host or port, the URI will reflect that (e.g.,
https://chat.example.com/api/mcp/pipeshub/oauth/callback).
LibreChat allows you to specify the OAuth scopes in the Scope field. Use a space-separated list:
To request PipesHub-specific scopes, add them to the scope field:
Note: The scopes you request must match the scopes granted to your OAuth app in PipesHub. See Customizing Default Scopes for details.
Instead of connecting to PipesHub's remote MCP endpoint, you can run the MCP server locally as a stdio process using the @pipeshub-ai/mcp npm package. This is useful when you prefer a local setup or need to work in environments where direct HTTP connections to the remote MCP endpoint aren't practical.
Replace these in all configurations below:
| Placeholder | Description | Example |
|---|---|---|
PIPESHUB_INSTANCE_URL | Your PipesHub instance URL | https://app.pipeshub.com |
YOUR_BEARER_TOKEN | JWT Bearer token for authentication | eyJhbGci... |
YOUR_CLIENT_ID | OAuth app client ID | clid_abc123... |
YOUR_CLIENT_SECRET | OAuth app client secret | clsec_xyz789... |
Configure in Claude Desktop settings (claude_desktop_config.json):
With OAuth credentials:
Open Cursor Settings > Tools and Integrations > New MCP Server, or edit your project's .cursor/mcp.json:
With OAuth credentials:
With OAuth credentials:
With OAuth credentials:
Run the MCP server as a local stdio process, authenticated with an OAuth app's Client ID and Secret (the client_credentials grant). Edit ~/.codex/config.toml (or .codex/config.toml in your project root):
Notes:
--server-url must include /api/v1.--token-url /api/v1/oauth2/token is required.Or authenticate with a JWT bearer token instead:
Open Command Palette > MCP: Open User Configuration, then add:
Open Windsurf Settings > Cascade > Manage MCPs > View raw config, then add:
To run the local MCP server from a cloned repository instead of the npm package:
For MCP client configuration, replace npx @pipeshub-ai/mcp with node ./bin/mcp-server.js:
To debug with MCP Inspector:
For a full list of server arguments:
PipesHub exposes OAuth protected resource discovery at:
This returns all OAuth endpoints automatically:
PIPESHUB_INSTANCE_URL/api/v1/oauth2/authorizePIPESHUB_INSTANCE_URL/api/v1/oauth2/tokenPIPESHUB_INSTANCE_URL/api/v1/oauth2/revokePIPESHUB_INSTANCE_URL/.well-known/jwks.jsonThis means the client is trying dynamic registration instead of using your pre-configured credentials. Make sure you passed --client-id and --client-secret (Claude Code) or the auth object (Cursor) correctly.
cursor://anysphere.cursor-mcp/oauth/callbackhttp://localhost:<callbackPort>/callbackhttps://claude.ai/api/mcp/auth_callbackhttp://localhost:7777/oauth/callbackhttp://localhost:3080/api/mcp/<server-identifier>/oauth/callbackcurl -X POST PIPESHUB_INSTANCE_URL/mcp (should return 401, not connection error)Then connect to PIPESHUB_INSTANCE_URL/mcp with a Bearer token to test the endpoint directly.
MCP_SCOPES environment variable on your PipesHub instance to include the new scopes you want exposed via the discovery endpoint./mcp and complete the browser login flow again./mcp auth pipeshub to re-authenticate.PIPESHUB_BEARER_TOKEN with a fresh token and restart Codex.