Lightbulb developers
Build through the same governed operating layer.
Install and configure Lightbulb MCP for Claude Code, Codex, Cursor, and ChatGPT, or use the beta Python SDK. Includes authentication, governance, CLI, security, and troubleshooting guidance.
One operating model, three ways in
The Lightbulb product, MCP server, and Python SDK are access surfaces over the same account-scoped platform—not three separate products with different authority models.
| Surface | Use it when | Current status |
|---|---|---|
| Lightbulb product | People need a workspace for company context, Projects, agents, approvals, and operating records. | Product surface |
| Lightbulb MCP | An MCP host such as Claude Code, Codex, Cursor, or ChatGPT needs governed access to Lightbulb. | Supported developer surface |
| Lightbulb Python SDK | A Python project needs direct client access or typed integration helpers. | Beta / unstable; pin the exact version |
- Backbone is the orchestration entry point for broad objectives and cross-domain work.
- Project workflows collect facts, requirements, scope, SOP impact, approvals, and execution-ready work packets before consequential delivery.
- Domain agents perform bounded specialist work.
- Connector actions and external effects remain subject to the user’s existing scope and approval controls.
Install
The public distribution is installed directly from the Lightbulb MCP GitHub repository and requires Python 3.10 or newer.
python -m pip install --upgrade git+https://github.com/RPasquale/lightbulb-mcp.git
lightbulb
lightbulb setuplightbulb-mcpstarts the local stdio MCP server.lightbulbis the helper CLI for status, guided setup, identity, approvals, document search, and one-shot platform commands.lightbulb setupuses device-flow login, checks the signed-in account, and merges host configuration without intentionally replacing unrelated MCP servers.
python -m pip install --upgrade git+https://github.com/RPasquale/lightbulb-mcp.git@68d215b8d6cd346770e78fa3487299de1057ddaaVerify the installation
Check the executable, current account state, and the tool surface seen by the selected profile.
lightbulb # status and detected host configuration
lightbulb whoami # authenticated identity
lightbulb tools --count-only
lightbulb tools --filter approval- If status reports no cached login, rerun
lightbulb setupand complete the browser flow. - If the host was already open, restart it after setup so it reloads MCP configuration.
- Tool counts vary with package revision, MCP profile, and namespace filters. RBAC affects whether a listed tool can execute, not whether the local CLI lists it.
CLI reference
Use the helper CLI to inspect setup and perform small account-scoped operations without manually constructing HTTP requests.
lightbulb
lightbulb setup
lightbulb whoami
lightbulb dispatch finance --action chat --message "Summarize cash this week"
lightbulb search-documents "quarterly revenue" --top-k 5
lightbulb approvals list
lightbulb tools --filter approval| Command | Purpose |
|---|---|
lightbulb | Show platform URL, cached-login hint, detected host configuration, and suggested next steps. |
lightbulb setup | Run guided authentication and merge MCP configuration. |
lightbulb status | Show the same status report as a bare lightbulb command. |
lightbulb mcp | Run the local MCP server over stdio. |
lightbulb whoami | Confirm the authenticated user and account context. |
lightbulb ping | Check authentication and platform reachability. |
lightbulb logout | Clear the cached device-flow token for this workstation. |
lightbulb list-domains | List domain agents visible to the current account. |
lightbulb list-companies | List companies available inside the current tenant. |
lightbulb dispatch <domain> ... | Dispatch one account-scoped domain-agent action. |
lightbulb search-documents <query> ... | Search accessible company documents. |
lightbulb approvals list|get|approve|reject | Inspect and decide approval tasks visible to the user. |
lightbulb voice list|get | Inspect voice executions where that surface is enabled. |
lightbulb aoc list|stop | Inspect or stop AutoCompany runs visible to the user. |
lightbulb connect <provider> [--check] | Open a connector OAuth flow or check connection state. |
lightbulb tools | Inspect the tool surface exposed by this installation and profile. |
| Setup option | Effect |
|---|---|
--target codex | Skip host selection and configure Codex directly. The installed revision also supports the host targets shown by lightbulb setup --help. |
--url <origin> | Use a specific Lightbulb platform origin. Non-local origins must use HTTPS. |
--yes / -y | Write supported configuration without an interactive write confirmation. |
--no-write | Print the proposed configuration without changing a host file. |
--skip-login | Skip device-flow login; use only when valid credentials are already available. |
What Lightbulb MCP does
Lightbulb MCP exposes the Lightbulb platform as tools that an MCP-compatible AI host can discover and invoke under the signed-in user’s existing authority.
- Identity and company selection.
- Backbone orchestration and consulting-project starts.
- Projects, workspaces, context, document search, and operating status.
- Approvals and human-in-the-loop boundaries.
- Domain-agent and connector-backed work available to the current user.
- Code workspace and governed software-delivery loops where configured.
- Optional hosted MCP access for ChatGPT.
Tool surface and discovery
Lightbulb exposes a broad, revision-dependent tool surface. Discover the installed surface instead of treating a marketing count as an API contract.
| Family | What it covers |
|---|---|
| Identity and scope | Signed-in identity, tenant context, company selection, status, and connection state. |
| Backbone and Projects | Broad objective orchestration, governed project starts, workflows, plans, artifacts, and work status. |
| Domain work | Bounded specialist dispatch and generated domain actions permitted by the current profile. |
| Context and documents | Document search, RAG, workspaces, conversations, traces, and account-scoped context helpers. |
| Approvals | Pending-task inspection and human decisions where the caller is an authorised approver. |
| Builders and code workspaces | Document, page, and software-delivery surfaces where configured for the account. |
| Connectors | Connection status and connector-backed reads, previews, proposals, and governed effects. |
| Voice and AutoCompany | Execution or run controls only when those product surfaces are enabled and permitted. |
lightbulb tools
lightbulb tools --filter backbone
lightbulb tools --filter approval
lightbulb tools --count-onlyRun the stdio server
Local MCP hosts normally spawn the server as a child process over stdio.
lightbulb-mcppython -m lightbulb.mcp_server{
"mcpServers": {
"lightbulb": {
"command": "lightbulb-mcp",
"env": {
"LIGHTBULB_URL": "https://agents.lightbulbpartners.com"
}
}
}
}If lightbulb-mcp is not on the host’s PATH, use python as the command and ["-m", "lightbulb.mcp_server"] as its arguments.
Claude Code setup
The guided setup path can merge a Lightbulb MCP entry into Claude Code configuration.
python -m pip install --upgrade git+https://github.com/RPasquale/lightbulb-mcp.git
lightbulb setup- Complete device-flow login in the browser. MFA remains in the browser flow.
- Allow setup to merge the Lightbulb MCP entry into the chosen Claude configuration.
- Restart Claude Code so it reloads MCP servers.
- Ask Claude to confirm identity with
whoamibefore company-scoped work.
Codex setup
Codex setup installs the MCP server entry and the local Lightbulb Partners plugin surface.
python -m pip install --upgrade git+https://github.com/RPasquale/lightbulb-mcp.git
lightbulb setup --target codex- Adds a
lightbulbMCP server entry to the Codex configuration. - Installs the local Lightbulb Partners plugin bundle and skill guidance.
- Adds a personal marketplace entry so the plugin can be enabled in Codex.
- Preserves unrelated MCP servers and settings; setup writes restricted backups before changing supported configuration files.
- Run setup and complete login.
- Restart Codex.
- Open Plugins and enable Lightbulb Partners if it is not already enabled.
- For broad project or automation requests, start through the Lightbulb consulting-project workflow rather than asking a domain agent to bypass intake and approvals.
Cursor setup
Cursor can spawn the same local stdio MCP server and use the same Lightbulb account scope.
{
"mcpServers": {
"lightbulb": {
"command": "lightbulb-mcp",
"env": {
"LIGHTBULB_URL": "https://agents.lightbulbpartners.com"
}
}
}
}- Install the package and run
lightbulb setupto create the cached device-flow token. - Add or merge the MCP server block without deleting existing servers.
- Restart Cursor.
- Confirm the signed-in identity before invoking company-scoped tools.
ChatGPT hosted MCP
ChatGPT can connect to Lightbulb through the hosted streamable HTTP MCP endpoint; it does not require the local stdio process.
https://agents.lightbulbpartners.com/mcp/lightbulb- The health GET is public; unauthenticated MCP protocol calls receive an OAuth challenge that starts Lightbulb login and onboarding.
- The hosted surface is curated around identity, company context, status, Backbone, projects, workflows, approvals, and AutoCompany operations.
- Use the project-start path for builds, workflow automation, custom agents, SOP changes, and other work that needs intake and approval gates.
- ChatGPT is an access surface. It does not silently become the coding harness selected for a Project.
Authentication and account scope
The MCP server resolves credentials in a defined precedence order and all resulting calls remain account-scoped.
LIGHTBULB_JWTplusLIGHTBULB_TENANT_ID;LIGHTBULB_COMPANY_IDis optional.LIGHTBULB_API_KEYplusLIGHTBULB_TENANT_IDandLIGHTBULB_USER_IDfor approved loopback-only integration bootstrap.- A cached device-flow token under
~/.lightbulb/tokens/. - When running interactively with no cached token, device-flow login is attempted and the resulting token is cached.
LIGHTBULB_EMAILplusLIGHTBULB_PASSWORDas a legacy fallback; MFA users should use device flow or JWT instead.
| Variable | Purpose |
|---|---|
LIGHTBULB_URL | Platform base URL. Production default: https://agents.lightbulbpartners.com. |
LIGHTBULB_JWT | Bearer token for the signed-in user. |
LIGHTBULB_TENANT_ID | Tenant scope required with JWT authentication. |
LIGHTBULB_COMPANY_ID | Optional active company scope. |
LIGHTBULB_API_KEY + LIGHTBULB_USER_ID | Restricted loopback-only integration bootstrap when configured. Use a user-scoped JWT for approved remote non-interactive work. |
LIGHTBULB_MCP_PROFILE | Select an installed MCP profile such as the compact backbone profile. |
LIGHTBULB_MCP_NAMESPACES | Limit generated domain and connector namespaces exposed to the host. |
Profiles and tool-surface control
Choose the smallest useful surface so the host receives relevant tools without an unnecessarily large discovery payload.
{
"mcpServers": {
"lightbulb": {
"command": "lightbulb-mcp",
"env": {
"LIGHTBULB_URL": "https://agents.lightbulbpartners.com",
"LIGHTBULB_MCP_PROFILE": "backbone"
}
}
}
}The compact Backbone profile focuses on identity, company selection, Backbone orchestration, consulting-project starts, approvals, connector status, workspace context, and governed software delivery. Backbone can still coordinate permitted domain work server-side.
{
"mcpServers": {
"lightbulb": {
"command": "lightbulb-mcp",
"env": {
"LIGHTBULB_URL": "https://agents.lightbulbpartners.com",
"LIGHTBULB_MCP_NAMESPACES": "finance,crm,gmail,slack,jira,github,notion"
}
}
}
}Projects and the consulting workflow
Broad build and operating-change requests should begin with governed discovery instead of jumping straight to code or connector effects.
- Capture the objective and current operating state.
- Collect facts with provenance and identify missing information.
- Define requirements, scope, stakeholders, systems, and acceptance criteria.
- Identify SOP impact and preserve referenced or changed process controls.
- Create reviewable work packets and approval gates.
- Dispatch approved packets to the selected execution lane.
- Verify acceptance and change plans before release actions.
In supported hosts, use start_consulting_project_workflow for project ideas, custom agents, workflow automation, SOP/process changes, modernisation, repo creation, and broad software delivery. If that exact tool is not available in an older surface, call backbone_execute and include {"workflow_type":"consulting_project_workflow"} in its inputs JSON.
Governed software delivery
When enabled, MCP hosts can enter Lightbulb’s software-delivery loop without treating the coding host as the release authority.
| Tool | Role |
|---|---|
software_delivery_context | Read current workspace, repository, issue, memory, approval, cloud, and deployment context before changing code. |
software_delivery_loop | Continue an existing or approved engineering loop through implementation, review, release, and deployment gates. |
software_spot_weld_fix | Request a bounded urgent fix that defaults to preview, keeps deploy disabled, and preserves production approval boundaries. |
Managed local documents
A configured local runtime separates user-visible working files from hidden service-managed storage.
| Path | Purpose |
|---|---|
<root>/Lightbulb Documents/Inbox | Files a user places into the managed document workflow. |
<root>/Lightbulb Documents/Exports | User-visible generated or exported files. |
<root>/Lightbulb Documents/Templates | Reusable user-visible templates. |
<root>/.lightbulb | Hidden service-managed state and indexed assets; do not treat it as a normal collaboration folder. |
These folders exist only when the managed local runtime has been installed and configured. Installing the public MCP package alone does not create or index a company document estate.
Runtime behaviour
The host sees MCP tools; the Lightbulb platform remains authoritative for what those tools may do.
| Concern | Behaviour |
|---|---|
| RBAC | Denied operations return permission or validation errors; they do not silently succeed. |
| Company context | Company-scoped work may require a selected company, especially for tenant or admin users. |
| Rate limits | Platform limits apply per user and session. MCP does not bypass throttling. |
| Approvals | Actions configured as consequential can pause for human review. |
| Retries | Client-side retries do not override idempotency, approval, or platform rate policy. |
| HTTPS | Non-loopback platform URLs must use HTTPS; loopback URLs such as localhost, 127.0.0.1, and ::1 may use HTTP for development. |
SDK status and stability
The Python client ships in the `lightbulb-mcp` package, but the public repository describes it as preview / unstable.
- Python 3.10 or newer is declared by the public package metadata.
- The package includes
LightbulbClient,AsyncLightbulbClient, authentication helpers, typed error classes, and selected integration helpers. - The wheel carries a
py.typedmarker for type-checker consumers. - MCP and the helper CLI are the supported public developer surface today; the SDK should be treated as beta.
Synchronous client
Use device-flow authentication for an interactive human session, then create an account-scoped client.
from lightbulb import LightbulbClient, device_login
BASE = "https://agents.lightbulbpartners.com"
# Browser-based login keeps MFA in the user flow.
auth, _expires = device_login(BASE, client_id="my-app")
client = LightbulbClient(BASE, auth=auth)
print(client.whoami())
result = client.dispatch(
"finance",
action="chat",
message="Summarize cash this week",
)
print(result.reply)Client capability reference
The synchronous preview client is the broadest Python surface; method availability is revision-dependent and still subject to platform permissions.
| Capability | Representative public methods |
|---|---|
| Identity and company | whoami(), list_companies(), and the active_company_id property. |
| Discovery and connections | list_domains(), list_domain_actions(), list_connected_integrations(), and list_connectors(). |
| Agent work | dispatch(), stream_chat(), conversation helpers, and backbone_execute(). |
| Projects and workflows | create_project(), list_projects(), get_product_machine_plan(), list_workflows(), and trigger_workflow(). |
| Documents and RAG | search_documents(), grep_documents(), list_folder(), rag_query(), and document-session helpers. |
| Approvals | list_pending_approvals(), get_approval(), approve_task(), and reject_task(). |
| Builders and code workspaces | Page, document, code-workspace, streaming, run, proposal, preview, and review helpers where configured. |
| Connector execution | invoke_tool() plus the selected typed Stripe, Xero, Slack, Jira, BambooHR, Greenhouse, and Monday helpers. |
SDK authentication
Device flow is the preferred interactive path. JWT and approved local bootstrap credentials support non-interactive environments.
from getpass import getpass
from lightbulb import (
LightbulbClient,
TwoFactorRequired,
complete_2fa_login,
login,
)
BASE = "https://agents.lightbulbpartners.com"
email = input("Email: ").strip()
password = getpass("Password: ")
try:
auth = login(BASE, email, password)
except TwoFactorRequired as exc:
code = getpass("Authenticator code: ").strip()
auth = complete_2fa_login(exc.base_url, exc.email, code)
client = LightbulbClient(BASE, auth=auth)Asynchronous client
Use the async client inside event-loop applications, while treating method coverage as a beta surface that may differ from the sync client.
import asyncio
import os
from lightbulb import AsyncLightbulbClient, JwtAuth
BASE = "https://agents.lightbulbpartners.com"
async def main():
auth = JwtAuth(
token=os.environ["LIGHTBULB_JWT"],
tenant_id=os.environ["LIGHTBULB_TENANT_ID"],
company_id=os.getenv("LIGHTBULB_COMPANY_ID"),
)
async with AsyncLightbulbClient(BASE, auth=auth) as client:
me = await client.whoami()
print(me)
asyncio.run(main())The public repository describes async coverage as curated for important paths. Check the installed package before assuming every synchronous method has an identical native-async implementation.
Refresh expired authentication
Provide a refresh callback and retry only after the client has installed refreshed credentials.
from lightbulb import AuthenticationError, LightbulbClient
from lightbulb.auth import device_login
BASE = "https://agents.lightbulbpartners.com"
initial_auth, _expires = device_login(BASE, client_id="my-worker")
def refresh():
auth, _expires = device_login(BASE, client_id="my-worker")
return auth
client = LightbulbClient(
BASE,
auth=initial_auth,
auth_refresh=refresh,
)
try:
client.dispatch("crm", action="chat", message="hello")
except AuthenticationError:
if client.refresh_auth():
client.dispatch("crm", action="chat", message="hello")Use await client.refresh_auth() with AsyncLightbulbClient.
Errors and retry policy
The SDK maps HTTP failures to Lightbulb-specific exception types rather than exposing raw HTTP client exceptions at every call site.
| Exception | Typical status | Response |
|---|---|---|
AuthenticationError | 401 | Refresh or reauthenticate, then retry once if safe. |
PermissionDenied | 403 | Do not retry blindly; verify role, company, project, and tool permission. |
NotFoundError | 404 | Verify the resource reference and current account scope. |
ValidationError | 400 / 422 | Correct the request. This also subclasses ValueError. |
RateLimitedError | 429 | Respect retry_after when present and use bounded backoff. |
ServerError | 5xx | Retry only idempotent or safely keyed work with bounded backoff. |
Typed integration helpers
The public package includes selected higher-level helpers in addition to the general platform client.
- Stripe:
StripeOrchestratorClientandStripeWorkflow. - Xero:
XeroAgentClientandXeroPlaybook. - Thin connector helpers for Slack, Jira, BambooHR, Greenhouse, and Monday where present in the installed revision.
Typed operating model: current direction
Newer source candidates are developing a typed company-building model, but those contracts should not be presented as a stable public SDK until their release gates close.
- Business Process Primitives: typed blocks for real company tasks.
- Workflow definitions: ordered, reviewable compositions with hidden setup, states, retries, and approval policy.
- Connector execution: one governed seam for preview, approval, idempotency, and provider effects.
- Projects and Company Blueprints: scoped declarations of workflows, connectors, policies, departments, metrics, and execution lanes.
- Runtime outcomes: sanitized operational evidence for debugging and improvement without storing raw business payloads in telemetry.
Governance model
Lightbulb is designed around explicit authority boundaries rather than assuming an AI host may act simply because it can formulate a request.
| Layer | Responsibility |
|---|---|
| AI host | Collect the user’s objective, call the right Lightbulb surface, and preserve returned blockers and approval states. |
| Backbone | Plan and coordinate broad work using company context and approved operating rules. |
| Project workflow | Establish facts, requirements, scope, SOP impact, work packets, and approval gates. |
| Domain agents | Perform bounded specialist work through permitted tools and connectors. |
| Lightbulb platform | Enforce authenticated scope, company isolation, RBAC, approvals, rate limits, audit, and connector policy. |
| Human approver | Review consequential actions at the configured control boundary. |
- A preview is not a live connector effect.
- A draft is not published work.
- Implementation approval is not automatically deployment approval.
- A visible tool is not proof of permission.
- A successful local simulation is not a customer-outcome or production-certification claim.
Security guidance
Most integration failures are recoverable; credential exposure and authority confusion are not. Design the host configuration accordingly.
- Use HTTPS for every non-loopback Lightbulb URL.
- Prefer device-flow login and the protected token cache for human workstations.
- Keep secrets out of committed MCP files, notebooks, shell history, screenshots, and prompt context.
- Scope generated MCP namespaces to the work the host actually needs.
- Confirm identity and company context before consequential work.
- Treat approval references, idempotency keys, and server-issued resource references as opaque values.
- Sanitize support reports; do not paste complete HTTP bodies, tokens, or customer payloads.
- Use a short-lived, least-privilege user-scoped JWT for approved remote automation; keep API-key bootstrap loopback-only.
The public SDK documents HTTPS enforcement for non-local hosts, validation of risky path inputs and browser URLs, atomic token-cache writes, restrictive permissions, and safer configuration merging. Your host and deployment environment still need their own secret-management and endpoint-hardening controls.
Troubleshooting
Start with identity, process visibility, and the installed package before debugging a specific tool.
| Symptom | Check |
|---|---|
401 / AuthenticationError | Rerun lightbulb setup, refresh a short-lived JWT, and prefer device flow for MFA accounts. |
| 403 / permission denied | Confirm user role, selected company, Project access, connector binding, and required approval. |
| Host shows no Lightbulb tools | Run lightbulb, verify the MCP config path, and restart the host. |
lightbulb-mcp not found | Verify the Python scripts directory is on PATH, or use python -m lightbulb.mcp_server. |
ModuleNotFoundError: mcp | Reinstall the package with dependencies using the install command above. |
| HTTPS or redirect error | Use the production HTTPS origin exactly; use explicit localhost only for local development. |
| Expected tool is missing | Check profile, namespace filter, package revision, and lightbulb tools --filter .... RBAC governs invocation after registration. |
| Company-scoped call fails | List accessible companies and select the intended company before retrying. |
| Write pauses instead of executing | Inspect the returned approval state. Do not fabricate or self-approve a decision. |
| Stale setup after upgrade | Rerun setup, review its preserved backup, and restart the host. |
python --version
python -m pip show lightbulb-mcp
lightbulb
lightbulb whoami
lightbulb tools --count-only
lightbulb tools --filter approvalVersion and release status
This documentation separates what the public repository supports today from newer source-candidate concepts that remain unreleased or gated.
| Area | Documentation stance |
|---|---|
| Lightbulb MCP and CLI | Documented as the supported public developer surface. |
| Python API | Documented as beta / unstable. Pin a reviewed Git revision. |
| Typed primitives, workflow compiler, Company Blueprints | Explained as product direction, not claimed as a stable public API. |
| Tool names and counts | Discover from the installed package and account rather than hard-code. |
| Production or customer outcomes | Not inferred from local source tests, simulations, or candidate evidence. |
This page was reviewed against the public RPasquale/lightbulb-mcp main branch at commit 68d215b8 on 30 August 2026, with unreleased concepts cross-checked against local Lightbulb source evidence. Recheck the source link before relying on exact flags, exports, or tool families in a long-lived integration.
Get help
Include the minimum safe diagnostic context so the team can reproduce the issue without receiving credentials or customer data.
- Operating system and Python version.
- Installed Git revision or package version.
- Host: Claude Code, Codex, Cursor, ChatGPT, or another reviewed MCP client.
- MCP profile and namespace filter, with all secrets removed.
- The tool name or CLI command and the sanitized error class/message.
- Whether identity and company selection succeeded.
- Whether the operation was read-only, preview, approval-gated, or intended as a live effect.