Python SDK (Beta)¶
The Jentic Python SDK is a comprehensive library for discovering and executing APIs and workflows, with helpers to turn them into LLM tools.
Backed by the data in Jentic Public APIs.
Install¶
pip install jentic
````
## Configure your key
Create an Agent API key in the app, then set:
```bash
export JENTIC_AGENT_API_KEY=<your-agent-api-key>
You can also point the SDK at a non‑default API URL (e.g., QA):
export JENTIC_API_URL=https://directory-api.qa1.eu-west-1.jenticdev.net
Quick start: search → load → execute¶
import asyncio
from jentic import Jentic, SearchRequest, LoadRequest, ExecutionRequest
async def main():
client = Jentic()
# 1) Search for a capability
search = await client.search(SearchRequest(query="send a Discord DM"))
entity_id = search.results[0].id # op_... or wf_...
# 2) Load details (inspect inputs / auth)
load = await client.load(LoadRequest(ids=[entity_id]))
inputs_schema = load.tool_info[entity_id].inputs
print(inputs_schema)
# 3) Execute
result = await client.execute(
ExecutionRequest(id=entity_id, inputs={"recipient_id": "123", "content": "Hello!"})
)
print(result)
asyncio.run(main())
The snippet above corrects a small naming mismatch in the original README (
search
vsresults
) so you can copy/paste and run immediately.
Use with LLM agents (tool definitions + execution)¶
from jentic.lib.agent_runtime import AgentToolManager
# Generate LLM-compatible tool specs (OpenAI/Anthropic)
manager = AgentToolManager(format="anthropic")
tools = manager.generate_tool_definitions() # pass to your LLM
# --- inside your agent loop, when a tool is requested ---
result = await manager.execute_tool(
"discord_send_message",
{"recipient_id": "123", "content": "Hi"}
)
print(result)
What the runtime provides
- Generate tool specs from Arazzo workflows & OpenAPI operations
- Execute workflows/operations via a unified interface
-
Runtime classes:
-
AgentToolManager
— tool lifecycle & execution LLMToolSpecManager
— tool specification generationTaskExecutor
— standardized execution results
Dev install (optional)¶
# from the SDK repo
pip install -e .
Or reference it in another project:
# pyproject.toml
dependencies = [
"jentic @ file:///path/to/jentic/sdk"
]
Testing (optional)¶
# unit tests
pdm run test
# integration tests (dev)
pdm run integration-dev
# integration tests (prod)
pdm run integration
Integration config
# copy examples and edit with your creds/UUIDs
cp tests/integration/.env.example tests/integration/.env.dev
cp tests/integration/.env.example tests/integration/.env.prod
Examples of required values:
DISCORD_GET_MY_USER_OPERATION_UUID="op_xxx"
DISCORD_GET_USER_DETAILS_WORKFLOW_UUID="wf_xxx"
JENTIC_API_URL=https://directory-api.qa1.eu-west-1.jenticdev.net
DISCORD_BOTTOKEN="your_bot_token_here"
MCP plugin¶
Prefer MCP? Use the MCP server in our mono‑repo to expose the same capabilities to MCP clients (Windsurf, Claude Desktop, Cursor). See the Guides → MCP section in the sidebar.
---
### `reference/sdks/typescript.md`
```markdown
# TypeScript SDK
We don't have an official **TypeScript SDK** for Jentic yet.
If you'd like to see one, please open a request in our public tracker:
👉 **[Request a TypeScript SDK](https://github.com/jentic/jentic-public-apis/issues)**
> Tell us your use case (framework, runtime, and target agent stack). Community feedback helps us prioritize.
(Optional) tiny nav tweak¶
Your mkdocs.yml
already lists:
- Reference:
- SDKs:
- Overview: reference/sdks/index.md
- Python: reference/sdks/python.md
- TypeScript: reference/sdks/typescript.md
No changes needed—these pages will slot right in.
If you later move MCP docs under SDKs, add a line like:
- MCP Plugin (external): https://github.com/jentic/jentic-sdks/tree/main/mcp