Jentic empowers AI-agent builders to discover and integrate external APIs and workflows rapidly—without writing or maintaining any API-specific code.
This mono-repo contains:
- Jentic SDK – a Python library for searching, loading and executing APIs / workflows, plus helpers for turning those actions into LLM tools.
- Jentic MCP Plugin – an MCP server that exposes the same capabilities to any MCP-compatible client (Windsurf, Claude Desktop, Cursor, …).
See the dedicated READMEs for full details:
python/README.md
– SDK usage & API referencemcp/README.md
– MCP server setup & configuration
The SDK is backed by the data in the Jentic Public APIs repository.
pip install jentic
Visit https://app.jentic.com/sign-in to create an agent and copy the key.
export JENTIC_AGENT_API_KEY=<your-agent-api-key>
import asyncio
from jentic import Jentic, SearchRequest, LoadRequest, ExecutionRequest
async def main():
client = Jentic()
# 1️⃣ find a capability
results = await client.search(SearchRequest(query="send a Discord DM"))
entity_id = search.results[0].id # op_... or wf_...
# 2️⃣ load details (inspect schemas / auth, see inputs for operations)
resp = await client.load(LoadRequest(ids=[entity_id]))
inputs = resp.tool_info[entity_id].inputs
print (inputs)
# 3️⃣ run it
result = await client.execute(
ExecutionRequest(id=entity_id, inputs={"recipient_id": "123", "content": "Hello!"})
)
print(result)
asyncio.run(main())
If you need fully-formed tool definitions for Anthropic or OpenAI models, use the runtime helpers:
from jentic.lib.agent_runtime import AgentToolManager
manager = AgentToolManager(format="anthropic")
tools = manager.generate_tool_definitions() # pass these to the LLM
result = await manager.execute_tool("discord_send_message",
{"recipient_id": "123", "content": "Hi"})
print(result)
To expose the same capabilities via MCP, follow the instructions in mcp/README.md
.
uvx --from \
git+https://github.com/jentic/jentic-sdks.git@main#subdirectory=mcp \
mcp
Then configure your MCP-compatible client to point at the running server (see the sub-README for sample client configs).