Metadata-Version: 2.4
Name: openbb-agent-server
Version: 0.1.0
Summary: OpenBB Agent Server: pluggable, multi-tenant agent backend wired to the OpenBB Workspace UI.
Project-URL: Homepage, https://github.com/deeleeramone/openbb-agent-server
Project-URL: Repository, https://github.com/deeleeramone/openbb-agent-server
Author-email: Danglewood <85772166+deeleeramone@users.noreply.github.com>
License: AGPL-3.0-only
Requires-Python: <4,>=3.11
Requires-Dist: aiosqlite>=0.20
Requires-Dist: alembic>=1.13
Requires-Dist: argon2-cffi>=23.1
Requires-Dist: ddgs>=9.0
Requires-Dist: deepagents>=0.5.0
Requires-Dist: fastapi>=0.115.0
Requires-Dist: fastmcp>=3.2.0
Requires-Dist: httpx2>=0.1
Requires-Dist: langchain-core>=1.0.0
Requires-Dist: langchain-mcp-adapters>=0.2.0
Requires-Dist: langchain-nvidia-ai-endpoints>=1.0.0
Requires-Dist: langchain-text-splitters>=0.3
Requires-Dist: langchain>=1.0.0
Requires-Dist: langgraph-checkpoint-sqlite>=2.0
Requires-Dist: langgraph>=1.0.0
Requires-Dist: pdfplumber>=0.11
Requires-Dist: pydantic-settings>=2.5
Requires-Dist: pydantic<3,>=2.7
Requires-Dist: pyjwt[crypto]>=2.9
Requires-Dist: python-dotenv>=1.0
Requires-Dist: sqlalchemy[asyncio]<3,>=2.0
Requires-Dist: sqlite-vec>=0.1.6
Requires-Dist: sse-starlette>=2.1.0
Requires-Dist: uuid7>=0.1
Requires-Dist: uvicorn>=0.32.0
Provides-Extra: all
Requires-Dist: google-genai>=1.0.0; extra == 'all'
Requires-Dist: langchain-anthropic>=1.0.0; extra == 'all'
Requires-Dist: langchain-aws>=0.2.0; extra == 'all'
Requires-Dist: langchain-google-genai>=2.0.0; extra == 'all'
Requires-Dist: langchain-groq>=0.2.0; extra == 'all'
Requires-Dist: langchain-openai>=0.2.0; extra == 'all'
Requires-Dist: langgraph-checkpoint-postgres>=2.0; extra == 'all'
Requires-Dist: pgvector>=0.3; extra == 'all'
Requires-Dist: psycopg[binary]>=3.2; extra == 'all'
Requires-Dist: tavily-python>=0.5; extra == 'all'
Provides-Extra: anthropic
Requires-Dist: langchain-anthropic>=1.0.0; extra == 'anthropic'
Provides-Extra: bedrock
Requires-Dist: langchain-aws>=0.2.0; extra == 'bedrock'
Provides-Extra: google-genai
Requires-Dist: google-genai>=1.0.0; extra == 'google-genai'
Requires-Dist: langchain-google-genai>=2.0.0; extra == 'google-genai'
Provides-Extra: groq
Requires-Dist: langchain-groq>=0.2.0; extra == 'groq'
Provides-Extra: openai
Requires-Dist: langchain-openai>=0.2.0; extra == 'openai'
Provides-Extra: postgres
Requires-Dist: langgraph-checkpoint-postgres>=2.0; extra == 'postgres'
Requires-Dist: pgvector>=0.3; extra == 'postgres'
Requires-Dist: psycopg[binary]>=3.2; extra == 'postgres'
Provides-Extra: pywry
Requires-Dist: pywry>=2.0.4; extra == 'pywry'
Provides-Extra: tavily
Requires-Dist: tavily-python>=0.5; extra == 'tavily'
Provides-Extra: vertex
Requires-Dist: google-genai>=1.0.0; extra == 'vertex'
Requires-Dist: langchain-google-genai>=2.0.0; extra == 'vertex'
Description-Content-Type: text/markdown

# openbb-agent-server

Pluggable, multi-tenant agent backend that speaks the [OpenBB Workspace
custom-agent SSE protocol](https://docs.openbb.co/workspace/developers/agents-integration) and runs the agent loop
on top of the [LangChain DeepAgents harness](https://docs.langchain.com/oss/python/deepagents/overview). One process
hosts many agent profiles; auth, model provider, tools, sub-agents,
middleware, checkpointer, and persistence are independent plugin axes
— anything can be swapped without forking the package.

<img width="1580" height="834" alt="openbb-agent-server-screenshot" src="https://github.com/user-attachments/assets/f6ed834a-4232-4cbb-a039-275f30dafad9" />

The full OpenBB Platform — every command across every installed
provider — is reachable via the optional `mcp_local` tool source,
which spawns the
[`openbb-mcp-server`](https://github.com/OpenBB-finance/OpenBB/tree/main/openbb_platform/extensions/mcp_server)
extension over stdio.

The default setup uses 100% free tokens and embedding models available from [NVIDIA](https://build.nvidia.com/) by registering for an API key [here](https://developer.nvidia.com/login)

## Install & run

```bash
# from PyPI
pip install openbb-agent-server

# from a checkout of this repository
pip install -e '.[workspace-mcp]'
# add or combine more extras: [anthropic] [openai] [bedrock]
#                             [vertex] [google_genai] [groq]
#                             [tavily] [postgres]
#                             [pywry]  (desktop chat embedding)

export NVIDIA_API_KEY=...

openbb-agent-server
```

In OpenBB Workspace, add a custom agent pointing at
`http://localhost:8010`. Workspace fetches this once and
reads every agent profile the server registers in a single payload.

The `[workspace-mcp]` extra installs
[openbb-workspace-mcp](https://github.com/OpenBB-finance/workspace-mcp)
from its GitHub zip (Python ≥3.13 only). To run it in-process and skip
the separate `workspace-mcp` sidecar, set `mount_workspace_mcp = true`
in `openbb.toml` after installing the extra, then point the Workspace
UI's MCP-servers setting at `http://localhost:8010/mcp/workspace/mcp`.
The mount is **opt-in** (default `false`) so installing the extra alone
does not change the server's behavior.

For production, generate the config template and edit it:

```bash
openbb-agent-server --generate-config /etc/openbb/openbb.toml
openbb-agent-server --config-file /etc/openbb/openbb.toml --host 0.0.0.0
```

## Documentation

Documentation currently lives in [`docs/`](docs/README.md), and may move in the future:

| Audience                     | Start here                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| First-time user              | [Getting started](docs/guides/getting-started.md) → [Architecture](docs/guides/architecture.md) → [Workspace integration](docs/guides/workspace-integration.md)                                                                                                                                                                                                                                                                                                                                            |
| Desktop embedding            | [PyWry chat (ACP)](docs/guides/pywry-chat.md) — `openbb-agent-canvas` opens a window whose main page is the agent's live canvas (charts, tables, HTML) with the chat attached; or attach the chat to any PyWry widget via the `[pywry]` extra. Same `openbb.toml`, same loop, no HTTP server                                                                                                                                                                                                                |
| Operator / SRE               | [Configuration](docs/operating/configuration.md) → [Auth](docs/operating/auth.md) → [Persistence](docs/operating/persistence.md) → [Observability](docs/operating/observability.md)                                                                                                                                                                                                                                                                                                                        |
| Plugin author                | [Plugin system](docs/developing/plugin-system.md) → writing a [tool source](docs/developing/writing-a-tool-source.md) / [model provider](docs/developing/writing-a-model-provider.md) / [middleware](docs/developing/writing-a-middleware.md) / [sub-agent](docs/developing/writing-a-subagent.md) / [auth backend](docs/developing/writing-an-auth-backend.md) → [Conventions](docs/developing/conventions.md) → [Testing](docs/developing/testing.md)                                                     |
| API lookup                   | [Reference](docs/reference/) — module-by-module, mirrors the package tree                                                                                                                                                                                                                                                                                                                                                                                                                                  |
