Expose your local MCPorter registry as one stable MCP server for coding clients.
Project description
mcporter-bridge
Expose your local MCPorter registry as one stable MCP server for coding clients.
mcporter-bridge is a small FastMCP server that turns your existing mcporter setup into a single, reusable entry point for clients like Codex, Claude Code, Cline, and Cursor.
Why
If you use multiple coding clients, your MCP setup usually fragments fast:
- Codex has one config format
- Claude Code has another
- Cline and Cursor add their own
mcporteralready knows your real server registry, auth state, and runtime
mcporter-bridge keeps mcporter as the source of truth and gives clients one stable MCP server instead of another pile of duplicated configs.
What It Does
- Reads your local
mcporterregistry at runtime - Lists configured MCP servers and their health
- Inspects a specific server and its tool schemas
- Calls any tool on any configured server through
mcporter - Optionally exposes local
agent-reachdiagnostics as helper tools
This is not a transport proxy and not an enterprise gateway. It is a local-first bridge for client integration.
Tools
mcporter_list_serversmcporter_get_servermcporter_inspect_servermcporter_call_toolmcporter_config_doctormcporter_versionagent_reach_doctoragent_reach_watchagent_reach_version
All tools return structured output with:
oktimed_outcommandtimeout_msreturncodestdoutstderrparsed_json
Install
pip
pip install mcporter-bridge
pipx
pipx install mcporter-bridge
After installation, you get two commands:
mcporter-bridgeto run the MCP servermcporter-bridge-configto generate or install client snippets
local development
git clone https://github.com/Citrus086/mcporter-bridge.git
cd mcporter-bridge
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
Requirements
mcporterinstalled and available onPATH- at least one configured MCP server in your local
mcporterregistry
Optional:
agent-reachinstalled if you want theagent_reach_*tools
Quick Check
mcporter-bridge
In another shell:
mcporter list --stdio "python3 -m mcporter_bridge" --json
Client Setup
Ready-made templates live in examples/.
Codex
Add this to ~/.codex/config.toml:
[mcp_servers.mcporter-bridge]
type = "stdio"
command = "python3"
args = ["-m", "mcporter_bridge"]
startup_timeout_ms = 30000
Or install it automatically:
mcporter-bridge-config install --client codex
Notes:
- OpenAI’s docs confirm that Codex reads MCP config from
~/.codex/config.tomlusing themcp_servers.<name>structure for MCP servers. - The stdio form here is also verified locally with
codex mcp add --help, which acceptscodex mcp add <name> -- <command...>for stdio servers.
Claude Code / Claude Desktop
Add this to your MCP config:
{
"mcpServers": {
"mcporter-bridge": {
"command": "python3",
"args": ["-m", "mcporter_bridge"]
}
}
}
Automatic install using the default ~/.claude.json path:
mcporter-bridge-config install --client claude
Notes:
- Anthropic’s Claude Code docs confirm that user-scoped MCP servers live in
~/.claude.json. - The same docs show project-scoped servers stored in
.mcp.jsonat the project root. - The documented JSON shape uses
mcpServerswithcommand,args, andenvfor stdio servers.
Cline
Use the same stdio shape:
{
"mcpServers": {
"mcporter-bridge": {
"command": "python3",
"args": ["-m", "mcporter_bridge"]
}
}
}
Generate snippets:
mcporter-bridge-config snippet --client cline
Write to an explicit config path:
mcporter-bridge-config install --client cline --config-path /path/to/mcp.json
Notes:
- Cline’s docs confirm that MCP settings are stored in
cline_mcp_settings.json. - For local stdio servers, the documented JSON shape uses
mcpServerswithcommand,args,env,alwaysAllow, anddisabled. - Cline’s docs use
typefor remote transport config such asstreamableHttp, but not in the local stdio example, so the bridge does not emittypefor Cline.
Cursor
Cursor uses mcp.json with mcpServers, and for stdio servers the bridge emits type: "stdio" explicitly.
Global config example:
{
"mcpServers": {
"mcporter-bridge": {
"type": "stdio",
"command": "python3",
"args": ["-m", "mcporter_bridge"]
}
}
}
Install into the default global path:
mcporter-bridge-config install --client cursor
Or write to an explicit config path:
mcporter-bridge-config install --client cursor --config-path /path/to/mcp.json
Config Helper
Print a snippet:
mcporter-bridge-config snippet --client codex
Customize the launcher:
mcporter-bridge-config snippet \
--client claude \
--python-command /opt/homebrew/bin/python3.13 \
--module-name mcporter_bridge
Install directly into a config file:
mcporter-bridge-config install --client codex
mcporter-bridge-config install --client claude
When an existing config file is updated, the helper writes a sibling backup with a .bak suffix first.
Example Prompts
- "List the MCP servers available through mcporter."
- "Inspect the xiaohongshu server and show its tools."
- "Call
check_login_statusonxiaohongshu." - "Run Agent Reach doctor."
Environment Variables
MCPORTER_BRIDGE_MCPORTER_BIN: override themcporterbinary pathMCPORTER_BRIDGE_AGENT_REACH_BIN: override theagent-reachbinary pathMCPORTER_BRIDGE_MAX_OUTPUT_CHARS: cap captured stdout/stderr length
Roadmap
- higher-level convenience tools for common MCPs
- optional tool allowlists / denylists
- more client-specific path discovery
- richer auth and diagnostics helpers
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcporter_bridge-0.1.0.tar.gz.
File metadata
- Download URL: mcporter_bridge-0.1.0.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f1cb41b09da1a3a14816f59f315b850e6cbd39c28dfa1c893c57a7b71dbe71b
|
|
| MD5 |
a4c38e7cb4043e7e2448bd7da6c73e45
|
|
| BLAKE2b-256 |
b09b5eb6cc018db04c3d66437459f5ebdeab9f71982c8f6d4732013c417e64ae
|
Provenance
The following attestation bundles were made for mcporter_bridge-0.1.0.tar.gz:
Publisher:
publish.yml on Citrus086/mcporter-bridge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcporter_bridge-0.1.0.tar.gz -
Subject digest:
9f1cb41b09da1a3a14816f59f315b850e6cbd39c28dfa1c893c57a7b71dbe71b - Sigstore transparency entry: 1059472393
- Sigstore integration time:
-
Permalink:
Citrus086/mcporter-bridge@a34c9e580eeded712aec968684ddac90ed48628b -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Citrus086
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a34c9e580eeded712aec968684ddac90ed48628b -
Trigger Event:
push
-
Statement type:
File details
Details for the file mcporter_bridge-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcporter_bridge-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1df55f7021e06ff2f38363ef15466a3a33e98244f39f87d362de86c9ed3e234e
|
|
| MD5 |
2215a26e3e0b9774bf6af725fd6b03de
|
|
| BLAKE2b-256 |
56b59140250b1e28fa7b75cacbf8eaf3280ec26845adbc941ef43cffd329b5ea
|
Provenance
The following attestation bundles were made for mcporter_bridge-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on Citrus086/mcporter-bridge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcporter_bridge-0.1.0-py3-none-any.whl -
Subject digest:
1df55f7021e06ff2f38363ef15466a3a33e98244f39f87d362de86c9ed3e234e - Sigstore transparency entry: 1059472394
- Sigstore integration time:
-
Permalink:
Citrus086/mcporter-bridge@a34c9e580eeded712aec968684ddac90ed48628b -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Citrus086
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a34c9e580eeded712aec968684ddac90ed48628b -
Trigger Event:
push
-
Statement type: