Skip to content

Installation Guide

Purpose: Complete setup instructions for Fulcrum Audience: Developers integrating Fulcrum governance Verify: python -c "import fulcrum; print(fulcrum.__version__)" or npm list @fulcrum-governance/sdk


Prerequisites

Before installing Fulcrum, ensure you have:

Requirement Version Check Command
Python 3.9+ python --version
Node.js 18+ node --version
API Key - Obtain from fulcrumlayer.io

SDK Installation

Python SDK

pip install fulcrum-governance

Expected output:

Successfully installed fulcrum-governance-0.1.3

Verify installation:

python -c "import fulcrum; print(fulcrum.__version__)"

Expected output:

0.1.3

Common failure:

ERROR: Could not find a version that satisfies the requirement fulcrum-governance
Solution: Ensure Python 3.9+ is installed and pip is up to date (pip install --upgrade pip).

TypeScript/Node.js SDK

npm install @fulcrum-governance/sdk

Expected output:

added 4 packages in 2s

Verify installation:

npm list @fulcrum-governance/sdk

Expected output:

└── @fulcrum-governance/sdk@0.1.3

Common failure:

npm ERR! code E404
npm ERR! 404 Not Found
Solution: Ensure you're using npm registry (not a private registry).


Configuration

Environment Variables

Set these environment variables for SDK configuration:

# Required
export FULCRUM_HOST="api.fulcrumlayer.io:443"
export FULCRUM_API_KEY="your-api-key"

# Optional
export FULCRUM_TENANT_ID="your-tenant-id"
export FULCRUM_TIMEOUT_MS="500"

Programmatic Configuration

Python:

from fulcrum import FulcrumClient

client = FulcrumClient(
    host="api.fulcrumlayer.io:443",
    api_key="your-api-key",
    timeout_ms=500
)

TypeScript:

import { FulcrumClient } from '@fulcrum-governance/sdk';

const client = new FulcrumClient({
  host: 'api.fulcrumlayer.io:443',
  apiKey: 'your-api-key',
  timeoutMs: 500
});


Verify Connection

Python

from fulcrum import FulcrumClient

client = FulcrumClient.from_env()

# Test envelope creation
with client.envelope(workflow_id="test") as env:
    print(f"Connected! Envelope ID: {env.envelope_id}")

Expected output:

Connected! Envelope ID: env-550e8400-e29b-41d4-a716-446655440000

TypeScript

import { FulcrumClient } from '@fulcrum-governance/sdk';

const client = FulcrumClient.fromEnv();

async function test() {
  const envelope = await client.envelope({ workflowId: 'test' });
  console.log(`Connected! Envelope ID: ${envelope.envelopeId}`);
}

test();

Expected output:

Connected! Envelope ID: env-550e8400-e29b-41d4-a716-446655440000


Self-Hosted Installation

For self-hosted deployments, clone and run the full stack:

Clone Repository

git clone https://github.com/Fulcrum-Governance/fulcrum-io.git
cd fulcrum-io

Start Services

./scripts/start-stack.sh

Services started:

Service Port Description
Dashboard 3001 Admin UI
gRPC API 50051 Primary API
REST API 8080 HTTP gateway
Grafana 3000 Observability

Verify Stack

# Check API health
curl http://localhost:8080/health

# Check MCP health
curl http://localhost:8080/mcp/health

Expected output:

{"service":"fulcrum-server","status":"healthy"}

Stop Services

./scripts/stop-stack.sh

MCP Server Installation

For Claude Desktop or other MCP-compatible applications:

Configuration

Add to your MCP configuration file:

{
  "mcpServers": {
    "fulcrum-governance": {
      "command": "fulcrum-mcp",
      "env": {
        "FULCRUM_API_KEY": "your-api-key",
        "FULCRUM_TENANT_ID": "your-tenant-id"
      }
    }
  }
}

Verify MCP

# Test MCP endpoint (if using hosted)
curl -X POST https://api.fulcrumlayer.io/mcp \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-api-key" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

Expected output:

{"jsonrpc":"2.0","result":{"tools":[...]},"id":1}


Troubleshooting

Connection Refused

Error:

ConnectionError: failed to connect to all addresses

Solutions: 1. Check FULCRUM_HOST format: host:port (no http:// prefix) 2. Verify API key is valid 3. Check firewall allows outbound connections to port 443

Authentication Failed

Error:

AuthenticationError: Invalid API key

Solutions: 1. Verify API key from dashboard 2. Check for whitespace in environment variable 3. Ensure key hasn't been rotated

Timeout

Error:

TimeoutError: Request timed out

Solutions: 1. Increase FULCRUM_TIMEOUT_MS (default: 500ms) 2. Check network latency to api.fulcrumlayer.io 3. Verify service is healthy: curl https://api.fulcrumlayer.io/health


Next Steps

After installation:

  1. Quickstart - 5-minute integration guide
  2. First Policy - Create your first governance policy
  3. MCP Integration - Integrate with Claude Desktop

Document created: 2026-02-01 SDK versions: Python 0.1.3, TypeScript 0.1.3