forge
A CLI and MCP server suite for Intercom workspace management and automation:
migrations, workspace configuration, routing, Fin AI content, and workflow
authoring. Ships two MCP servers — forge-workspace (workspace config:
articles, teams, tickets, macros, attributes, …) and forge-fin (Fin AI
agent, Voice, knowledge sources, workflows) — plus the forge CLI for
machine setup.
Requirements
- Python 3.11+
- Google Chrome — UI-automation tools drive your own Chrome over the DevTools Protocol. No bundled browser is downloaded, ever.
- An Intercom access token per workspace you manage (Developer Hub → your app → Authentication).
- A forge license key.
Install
uv tool install sabel-forge-mcp # recommended
# or: pipx install sabel-forge-mcp
# or: pip install sabel-forge-mcp
Everything is included — REST tools and UI-automation tools work out of
the box. There are no extras to opt into and no playwright install
browser download (Playwright ships as a plain dependency and is only used
as the connection library to your own Chrome).
Verify:
forge --version # → forge (sabel-forge-mcp) x.y.z
Then activate your license:
forge auth login
Upgrading from ≤ 0.1.63?
forge install ui-depsand the[ui-automation]extra are gone — a plain install/upgrade now carries everything:uv tool upgrade sabel-forge-mcp.
Configure a workspace
Each Intercom workspace is a folder under ~/.forge/workspaces/ holding a
forge.json. The file names the environment variable that holds the
workspace's token — never the token itself (inline tokens are rejected):
// ~/.forge/workspaces/Client_Acme/forge.json
{
"name": "Client_Acme",
"industry": "fintech", // optional; matches a playbook name
"region": "eu", // us | eu | au — the Intercom datacenter
"deployment": "intercom", // intercom (full suite) | fin_for_salesforce | fin_for_zendesk | ... — auto-detected if omitted
"intercom_token_env": "CLIENT_ACME_TOKEN"
}
Put the token in ~/.secrets (chmod 600, sourced from your shell rc):
export CLIENT_ACME_TOKEN="tok:..."
region matters: REST reads work from anywhere, but REST writes
and all admin-UI automation are datacenter-specific. If omitted, forge
auto-detects it on first use and writes it back into forge.json.
You can also let your agent do all of this — the add_workspace MCP tool
walks through the same steps and validates the token and region.
Wire up the MCP servers
For Claude Code:
claude mcp add forge-workspace -- forge-workspace
claude mcp add forge-fin -- forge-fin
Launch your agent once at any directory; every tool takes a workspace
argument, so one server process serves all configured workspaces. After
adding a new token to ~/.secrets, restart the agent so the servers
inherit the new environment.
UI automation and the Chrome host
Tools ending in _via_ui drive the Intercom admin UI (for resources with
no write REST API). They run exclusively as tabs in one long-lived
Google Chrome bound to a local DevTools port:
-
The first
*_via_uirun auto-starts the host — a Chrome window opens, you log into Intercom once, and the login persists on disk. -
Manage it explicitly if you prefer:
forge ui serve --workspace <name> # start manually; log in once forge ui status # endpoint, workspace, region forge ui stop # shut it down
-
The browser survives tool failures — a failed run leaves the page open for inspection, and re-running a tool resumes idempotently.
-
One browser can hold logins for several Intercom datacenters; a tool targeting a different region opens a fresh login tab and tells you.
Upgrading
uv tool upgrade sabel-forge-mcp # or: pipx upgrade sabel-forge-mcp
The MCP servers check PyPI in the background and mention when a newer release is available.
Metadata
Release files for sabel-forge-mcp 0.4.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| sabel_forge_mcp-0.4.4.tar.gz | 476.5 kB | Without provenance | Details for sabel_forge_mcp-0.4.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| sabel_forge_mcp-0.4.4-py3-none-any.whl | Python 3 | none | any | Details for sabel_forge_mcp-0.4.4-py3-none-any.whl |
Total release size: 1.0 MB
Release files / sabel_forge_mcp-0.4.4.tar.gz
| Download URL | sabel_forge_mcp-0.4.4.tar.gz |
|---|---|
| Size | 476.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
454178538e2a63cce76dfb0c1503fcc6bdaf9da4891dadc260163c6b41267254
|
|
BLAKE2b-256 checksum How to use checksums |
07516ec7cc1d971bfe9fe826490433abd13e1358f7aa05d4629a7dfba00eae33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / sabel_forge_mcp-0.4.4-py3-none-any.whl
| Download URL | sabel_forge_mcp-0.4.4-py3-none-any.whl |
|---|---|
| Size | 557.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
89fd20c1b69d708460f2d1e5867bb67d20fb75e22b91820e4f2c0f9302cc065e
|
|
BLAKE2b-256 checksum How to use checksums |
544c554ad59e9f1c18193e261a8eab7407f08bd99f5d86237e5817f3ed875d3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for sabel-forge-mcp 0.4.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.