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("api") emits standalone Python source; "cli" and "mcp" are also supported targets.

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.

Source-checkout conversion examples (unreleased)

Section titled “Source-checkout conversion examples (unreleased)”

Public v0.16.0 does not contain these newer conversion capabilities. From a current checkout with Python 3.11 and all extras, use the runnable teaching scripts:

  • Enum export: convert a file-export application with optional repeatable string-enum options; order, duplicates, defaults, and validation remain explicit.
  • Plain string-list file manifest (source, conversion recipe): required variadic paths and optional repeatable labels preserve order and duplicates (unreleased source checkout; not in public v0.16.0).
  • Tool selection: intpot.load(...).select("slug") exports one workflow without removing its parameters or weakening its guards.
  • Informational conversion: explicitly request callback_policy="exclusive-informational" for qualified eager informational flags. Ordinary callback conversion still refuses; this is not arbitrary callback or lifecycle translation.

The example guide contains native CLI commands, HTTP requests and an actual stdio MCP client. Generated enum and informational applications retain their original source-package dependency. Paths belong to the server filesystem; fresh workers are not a sandbox. Deferred parameter-callback annotation providers remain refused; use the documented Python 3.11 workflow. Full Docling conversion is not established. See conversion boundaries.

  • 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.