Python SDK for the Stable Baseline REST API. End-to-end agent-managed company brain — docs, diagrams, plans, and a self-learning Knowledge Graph. 163 tools across 16 categories.
Project description
stablebaseline
Python SDK for the Stable Baseline REST API — the simplest, most complete, end-to-end agent-managed company brain. Living docs, 40+ visual diagrams, plans, and a self-learning Knowledge Graph. 163 tools across 16 categories.
Install
pip install stablebaseline
Quick start
from stablebaseline import StableBaseline
# Mint a key at app.stablebaseline.io/settings/mcp-keys
with StableBaseline(api_key="sta_xxx") as sb:
orgs = sb.tools.listOrganisations()
print(orgs)
doc = sb.tools.createDocument(
folderId="folder-uuid",
title="Q4 architecture",
cdmd="# Architecture\n\nThis document covers...",
)
print(f"Created {doc['friendlyId']} ({doc['id']})")
search = sb.tools.kg_search(query="compliance posture", mode="global")
print(search["entities"])
Or asynchronously:
import asyncio
from stablebaseline import AsyncStableBaseline
async def main() -> None:
async with AsyncStableBaseline(api_key="sta_xxx") as sb:
orgs = await sb.tools.listOrganisations()
print(orgs)
asyncio.run(main())
Auth
StableBaseline(api_key="sta_...") # API key (mint at app.stablebaseline.io/settings/mcp-keys)
StableBaseline(access_token="...") # OAuth 2.1 access token
StableBaseline() # picks up SB_API_KEY / SB_ACCESS_TOKEN from env
Tool dispatch
Each method on client.tools corresponds to one of the 163 MCP tools:
sb.tools.listOrganisations()
sb.tools.getProjectHierarchy(projectId="...")
sb.tools.createDocument(folderId="...", title="X", cdmd="# ...")
sb.tools.editDocument(documentId="...", versionTimestamp=..., patches=[...])
sb.tools.kg_search(query="...", mode="global")
sb.tools.previewSubscriptionChange(...)
sb.tools.applySubscriptionChange(...)
For dynamic / discovered names, use the callable form:
sb.tools("createDocument", {"folderId": "...", "title": "X", "cdmd": "# Hi"})
Or the lower-level call_tool:
sb.call_tool("createDocument", {"folderId": "...", "title": "X", "cdmd": "# Hi"})
Discover tools at runtime
catalogue = sb.list_tools()
print(f"{catalogue['count']} tools across categories:")
cats = {t['category'] for t in catalogue['tools']}
print(sorted(cats))
Errors
All non-2xx responses raise StableBaselineToolError with status, code, message, and optional details:
from stablebaseline import StableBaseline, StableBaselineToolError
with StableBaseline(api_key="sta_xxx") as sb:
try:
sb.tools.deleteDocument(documentId="missing")
except StableBaselineToolError as e:
if e.status == 404:
print("not found")
elif e.code == "permission_denied":
print("RBAC said no")
else:
raise
Companion packages
| Surface | Package | Use case |
|---|---|---|
| Python SDK (this) | stablebaseline |
Python apps, data work |
| TypeScript SDK | @stablebaseline/sdk |
Node, browsers, Deno, Bun |
| CLI | @stablebaseline/cli (binary sb) |
Shells, scripts, CI/CD |
| MCP server | https://api.stablebaseline.io/functions/v1/cloud-serve/mcp |
AI agents (Claude Code, Cursor, Windsurf, ChatGPT, Gemini, …) |
All four share the same auth, same handlers, same data — see github.com/stablebaseline/mcp.
License
MIT — see LICENSE at the repo root. The Stable Baseline product itself is proprietary SaaS at stablebaseline.io.
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 stablebaseline-0.1.0.tar.gz.
File metadata
- Download URL: stablebaseline-0.1.0.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f3b8997459e6565e2258c32d426ccbf6571d33fcf3c892e4b4a331d5cf45ee5
|
|
| MD5 |
c27f8dc59b8ff02b69ecf1137866ea3a
|
|
| BLAKE2b-256 |
8c77b8cb943cd726a7198bbe7dbc8d56ea5c8c59a81ca9e9edcd775aded67caa
|
Provenance
The following attestation bundles were made for stablebaseline-0.1.0.tar.gz:
Publisher:
release-sdk-python.yml on stablebaseline/mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stablebaseline-0.1.0.tar.gz -
Subject digest:
3f3b8997459e6565e2258c32d426ccbf6571d33fcf3c892e4b4a331d5cf45ee5 - Sigstore transparency entry: 1478730065
- Sigstore integration time:
-
Permalink:
stablebaseline/mcp@a498d6f5d0b99217c22570f53b5f5cc678a5da6a -
Branch / Tag:
refs/tags/sdk-py-v0.1.0 - Owner: https://github.com/stablebaseline
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-sdk-python.yml@a498d6f5d0b99217c22570f53b5f5cc678a5da6a -
Trigger Event:
push
-
Statement type:
File details
Details for the file stablebaseline-0.1.0-py3-none-any.whl.
File metadata
- Download URL: stablebaseline-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4bc880c9f90b5c12aa99c087b5f18a99d25349c74307d33d21e348bd6ea0f6a
|
|
| MD5 |
334c5580ce83aaa6deb692a3a4432cb3
|
|
| BLAKE2b-256 |
f60d1cdc6fa6bffae7fbe8980b57caa47a48a078e69d0f09b53615baa3766b86
|
Provenance
The following attestation bundles were made for stablebaseline-0.1.0-py3-none-any.whl:
Publisher:
release-sdk-python.yml on stablebaseline/mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stablebaseline-0.1.0-py3-none-any.whl -
Subject digest:
c4bc880c9f90b5c12aa99c087b5f18a99d25349c74307d33d21e348bd6ea0f6a - Sigstore transparency entry: 1478730191
- Sigstore integration time:
-
Permalink:
stablebaseline/mcp@a498d6f5d0b99217c22570f53b5f5cc678a5da6a -
Branch / Tag:
refs/tags/sdk-py-v0.1.0 - Owner: https://github.com/stablebaseline
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-sdk-python.yml@a498d6f5d0b99217c22570f53b5f5cc678a5da6a -
Trigger Event:
push
-
Statement type: