Quick start
Install
Section titled “Install”For all three runtime targets:
pip install 'intpot[all]'Define once
Section titled “Define once”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:
intpot serve app.py --cli -- Adaintpot serve app.py --apiintpot serve app.py --mcpFor HTTP mode, Intpot uses FastAPI/Uvicorn (default port 8000). MCP mode exposes tools through FastMCP. For this single-tool app, CLI mode takes the name directly and prints Hello, Ada!; do not add a greet subcommand. Apps with multiple tools use tool-name subcommands. The -- separator forwards the following arguments to the generated CLI.
Export standalone code
Section titled “Export standalone code”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.
Convert an existing app
Section titled “Convert an existing app”Intpot detects Typer, FastAPI, and FastMCP Python applications and can generate any other target:
intpot to api existing.pyintpot to cli existing.pyintpot to mcp existing.pyUse intpot inspect existing.py to view normalized tool definitions first. See capabilities and boundaries for what conversion preserves.