Skip to content

Quick start

For all three runtime targets:

Terminal window
pip install 'intpot[all]'

Create app.py:

from intpot import App
app = App("my-app")
@app.tool()
def greet(name: str, greeting: str = "Hello") -> str:
"""Greet someone by name."""
return f"{greeting}, {name}!"

The type annotations, defaults, and docstring describe the tool contract. Choose an interface when starting the app:

Terminal window
intpot serve app.py --cli
intpot serve app.py --api
intpot serve app.py --mcp

For HTTP mode, Intpot uses FastAPI/Uvicorn (default port 8000). MCP mode exposes tools through FastMCP. CLI mode dispatches the registered functions as commands.

Use intpot eject app.py --to api, --to cli, or --to mcp to generate ordinary framework code. The generated app is not dependent on the Intpot runtime.

Intpot detects Typer, FastAPI, and FastMCP Python applications and can generate any other target:

Terminal window
intpot to api existing.py
intpot to cli existing.py
intpot to mcp existing.py

Use intpot inspect existing.py to view normalized tool definitions first. See capabilities and boundaries for what conversion preserves.