Python SDK (Beta)¶
Deprecated
This page is deprecated and kept only for reference. It describes a retired part of Jentic (the hosted app.jentic.com platform / the jentic-sdks library). The current, supported path is self-hosted Jentic One — see Jentic One.
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:
export JENTIC_AGENT_API_KEY=<your-agent-api-key>
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 (
searchvsresults) 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://<your-jentic-one-host>
DISCORD_BOT_TOKEN="your_bot_token_here"
MCP plugin¶
Prefer MCP? Use the MCP server to expose the same capabilities to MCP clients (Windsurf, Claude Desktop, Cursor, ChatGPT). See the Guides → MCP section in the sidebar, starting with Remote MCP (self-hosted).