Skip to content

Capabilities and boundaries

Intpot has two public workflows: define typed functions with App and serve/eject them, or inspect an existing framework app and convert it. Both normalize definitions into an ApplicationSchema with tool and parameter records.

  • intpot.App registers functions using @app.tool().
  • app.serve(mode="cli" | "api" | "mcp") creates a live Typer, FastAPI, or FastMCP application.
  • app.eject(mode="cli" | "api" | "mcp") emits standalone Python source.

The supported source frameworks are Typer, FastAPI, and FastMCP. All six directed conversions among these frameworks are supported by intpot to cli|api|mcp. Generated output is Python that can be inspected, edited, and run without Intpot as a runtime dependency.

Intpot preserves recoverable function bodies and direct imports, annotations, defaults, async functions, and supported framework conventions. FastAPI parameter sources are applied when generating API output. Conversion is not a promise of perfect equivalence for arbitrary framework-specific behavior: inspect and test generated code in the target framework, especially where a source app uses features outside normalized tool metadata.

  • intpot inspect shows normalized tools before conversion.
  • intpot init scaffolds CLI, API, or MCP projects.
  • intpot add skills installs project-local guidance for six coding agents.

Intpot requires Python 3.11 or newer. Typer is the base dependency. Install intpot[api] for FastAPI/Uvicorn, intpot[mcp] for FastMCP, or intpot[all] for both. The supported framework minimums are Typer 0.9.0, FastAPI 0.100.0, and FastMCP 2.0.0; compatibility is exercised in the repository CI.

Intpot is an open-source project by ModePot. Browse the source and issue tracker, or join the ModePot Discord.