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.
Runtime interfaces
Section titled “Runtime interfaces”intpot.Appregisters 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.
Conversion
Section titled “Conversion”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.
Other included features
Section titled “Other included features”intpot inspectshows normalized tools before conversion.intpot initscaffolds CLI, API, or MCP projects.intpot add skillsinstalls project-local guidance for six coding agents.
Dependencies and support
Section titled “Dependencies and support”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.
Project and community
Section titled “Project and community”Intpot is an open-source project by ModePot. Browse the source and issue tracker, or join the ModePot Discord.