Provider and MCP Walkthrough¶
This walkthrough shows how the published Core packages connect to model and tool providers without a repository checkout. It starts with the OpenAI-compatible path used by the Golden Path, then points to native Anthropic, Gemini, and MCP adapters.
OpenAI-Compatible First¶
Most local and hosted providers expose an OpenAI-compatible endpoint. Configure one base URL, model name, and optional API key:
export PRAXO_BASE_URL=http://localhost:11434/v1
export PRAXO_MODEL=llama3.2
# export PRAXO_API_KEY=... # hosted endpoints only
The language examples read these variables:
- Go live model
- Python live model
- TypeScript live model
- Java live model
- PowerShell live model
- V live model
- Zig live model
- OCaml live model (transport seam)
Ollama, vLLM, OpenAI, DeepSeek, Kimi/Moonshot, OpenRouter, Groq, and Together can use this adapter with different base URLs. The Python and TypeScript packages also expose named provider presets.
Native Provider Adapters¶
Use a native adapter when the provider protocol differs from OpenAI-compatible chat completions:
| Provider | Go | Python | TypeScript | Java |
|---|---|---|---|---|
| Anthropic | adapters/anthropic |
praxo.adapters.anthropic |
src/adapters/anthropic.ts |
adapters.AnthropicModel |
| Gemini | adapters/gemini |
praxo.adapters.gemini |
src/adapters/gemini.ts |
adapters.GeminiModel |
The adapter still implements the same Core Model contract. Tools, policy,
events, checkpoints, and streaming remain application-configured. See
adapter status for per-language coverage and
limits.
MCP Tool Sessions¶
MCP is a tool session, not a model provider. A minimal client should:
- start or connect to the MCP transport;
- initialize the session;
- list tools with pagination;
- expose selected tools through the Core registry;
- keep policy authorization in front of every tool call.
Go, Python, TypeScript, and Java provide native MCP clients. Other languages provide caller-supplied transport seams. Runnable local stdio examples exist for Python and TypeScript. Read the MCP adapter notes and adapter status before adding a remote server.
Boundaries¶
- Core maps requests and responses; it does not provide model quality, provider SLAs, or hosted MCP services.
- MCP authentication belongs to the transport or server session.
- Tool output remains untrusted input.
- Local cancellation does not prove remote work stopped.
- Provider credentials and tenant policy stay in the application.