cortexhub
The CortexHub platform SDK. One API key points your existing agent at two governed planes:
- the LLM router (inference) - OpenAI-compatible, so any framework works, with routing, caching, compression, governance, and per-agent metering; and
- the MCP gateway (tools + brain + files) - governed, consent-gated, injection-defended.
You don't rewrite your agent. You change a base URL and drop in one key.
Install
pip install cortexhub # zero-dependency core (URLs + headers)
pip install 'cortexhub[ai]' # + a ready OpenAI-compatible client via cx.llm
pip install 'cortexhub[mcp]' # + the official MCP client for cx.mcp() sessions
The key
Onboard an external AI employee in the CortexHub dashboard, grant it
capabilities, and mint an API key bound to that agent (Settings ->
API keys, or the agent's page). The cxh_key_... is that agent's identity -
every call is attributed, governed, and metered to it. No agent argument needed.
from cortexhub import Cortexhub
cx = Cortexhub(api_key="cxh_key_...") # or set CORTEXHUB_API_KEY
Inference
cx.ai gives you everything any OpenAI-compatible client needs; cx.llm is a
ready client (extra: cortexhub[ai]). Pick the model with the model argument:
cortexhub/auto to let CortexHub route per turn, or any model enabled on the
platform.
cx.llm.chat.completions.create(model="cortexhub/auto", messages=[{"role": "user", "content": "hi"}])
cx.llm.responses.create(model="cortexhub/auto", input="hi")
cx.llm.models.list()
cx.ai.base_url # e.g. https://api.cortexhub.ai/v1 (override with CORTEXHUB_ROUTER_URL)
cx.ai.api_key # your cxh_key_...
Use your existing framework
The router speaks the OpenAI wire protocol, so every framework integrates the
same way: point its OpenAI-compatible provider at cx.ai.base_url, pass
cx.ai.api_key, and choose a model.
base, key = cx.ai.base_url, cx.ai.api_key
# OpenAI SDK / plain
from openai import OpenAI
OpenAI(base_url=base, api_key=key).chat.completions.create(model="cortexhub/auto", messages=[...])
# LangChain / LangGraph
from langchain_openai import ChatOpenAI
ChatOpenAI(base_url=base, api_key=key, model="cortexhub/auto")
# CrewAI (LiteLLM under the hood)
from crewai import LLM
LLM(model="openai/cortexhub/auto", base_url=base, api_key=key)
# AutoGen
from autogen_ext.models.openai import OpenAIChatCompletionClient
OpenAIChatCompletionClient(model="cortexhub/auto", base_url=base, api_key=key)
# Pydantic AI
from pydantic_ai.models.openai import OpenAIModel
from pydantic_ai.providers.openai import OpenAIProvider
OpenAIModel("cortexhub/auto", provider=OpenAIProvider(base_url=base, api_key=key))
Anthropic SDK: the router is OpenAI-compatible, not Anthropic-Messages, so
point the OpenAI client at CortexHub with a claude-* model (we route to
Claude) rather than the Anthropic SDK.
Tools, brain, and files (MCP gateway)
cx.mcp(agent=...) returns the MCP connection your agent's loop drives. Any
MCP-capable framework can register it as a server; the cortexhub_* tools
(governed toolkit calls, brain recall/learn, files search) then appear
automatically.
conn = cx.mcp(agent="invoice-bot", end_user_subject="user_42")
conn.url # https://mcp.cortexhub.ai/v1/mcp
conn.headers # ready to wire into your MCP transport
Authentication modes
- API key (
api_key=cxh_key_..., orCORTEXHUB_API_KEY) - backends whose end users do not have CortexHub accounts. Attest the end user per call withend_user_subject. Required forcx.ai/cx.llm. - MCP OAuth client (
client_id=/client_secret=) - for interactive CortexHub users, MCP gateway only.
The MCP gateway also accepts MCP OAuth from third-party clients (Claude, Cursor) independently of this SDK.
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 cortexhub-3.0.0.tar.gz.
File metadata
- Download URL: cortexhub-3.0.0.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
522310ab271418a0e4acc3b45796b640ccd09223563f9021ffb3d4717530c940
|
|
| MD5 |
df179fa6ac4cb9841ebebbbf3b45bdb0
|
|
| BLAKE2b-256 |
a6d64c0509fb669153289f88ea24b5482b5805b05ac6ca0400f61b0fe3c6085b
|
File details
Details for the file cortexhub-3.0.0-py3-none-any.whl.
File metadata
- Download URL: cortexhub-3.0.0-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f33c990c54c9b88089be533a0a597370a768278e48b1bc26bc7c2fbb7eca975
|
|
| MD5 |
1dcc3d6329b8b200ca879f03eeb6de9a
|
|
| BLAKE2b-256 |
44b3c3e5be5b7f0679f6cb864f8dea4a1466bc6e5e96763ced2ba0f84ebfaa3f
|