Installation Guide
Purpose: Complete setup instructions for Fulcrum Audience: Developers integrating Fulcrum governance Verify:
python -c "import fulcrum; print(fulcrum.__version__)"ornpm 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
Expected output:
Verify installation:
Expected output:
Common failure:
Solution: Ensure Python 3.9+ is installed and pip is up to date (pip install --upgrade pip).
TypeScript/Node.js SDK
Expected output:
Verify installation:
Expected output:
Common failure:
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:
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:
Self-Hosted Installation
For self-hosted deployments, clone and run the full stack:
Clone Repository
Start Services
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:
Stop Services
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:
Troubleshooting
Connection Refused
Error:
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:
Solutions: 1. Verify API key from dashboard 2. Check for whitespace in environment variable 3. Ensure key hasn't been rotated
Timeout
Error:
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:
- Quickstart - 5-minute integration guide
- First Policy - Create your first governance policy
- MCP Integration - Integrate with Claude Desktop
Document created: 2026-02-01 SDK versions: Python 0.1.3, TypeScript 0.1.3