Python CLI, API, and MCP Interface Framework
TYPED PYTHON INTERFACES
One typed definition. Three interfaces.
Define typed tools once for CLI, HTTP, or MCP. Convert apps between Typer, FastAPI, and FastMCP.

GET STARTED
Install Intpot
pip install "intpot[all]"Quick start guide EXPLORE THE MECHANISM
One definition, three ways in.
Inspect how one typed greeting maps to CLI, HTTP, and MCP request shapes, then edit a bounded request and view its local result.
Browser-local preview. A bounded JavaScript preview—not Python execution, a live Intpot server, or a model call.
How Intpot connects both workflows
Section titled “How Intpot connects both workflows”Conversion and ejection use the immutable ApplicationSchema with ToolSchema records. Inspectors and registrations retain ToolInfo compatibility metadata; live serving keeps the registered callables. The overview is conceptual, not a literal execution trace. These interfaces can be used by people or by agents when their host supports them; CLI, HTTP, and MCP are not reserved for a particular kind of user.

One definition, three ways to run
Section titled “One definition, three ways to run”Register typed Python functions with @app.tool(). Intpot keeps behavior in one place and serves it through a Typer CLI, FastAPI, or FastMCP interface. Existing apps can also be converted across all six Typer, FastAPI, and FastMCP directions.
from intpot import App
app = App("my-app")
@app.tool()def add(a: int, b: int) -> int: """Add two numbers.""" return a + bintpot serve app.py --cliintpot serve app.py --apiintpot serve app.py --mcpInspect conversion before writing output
Section titled “Inspect conversion before writing output”
The supported subset produces standalone framework code. Known missing body, eager-definition or string/postponed annotation bindings refuse before output writes. Static name checks do not evaluate types or recover arbitrary classes; source detection imports trusted code. Live App serving is a separate path. Read the boundaries and runnable example.
Explore the interface playground
Section titled “Explore the interface playground”See how one typed definition maps to CLI, HTTP, and MCP entry points. The focused playground lets you edit one bounded request at a time and inspect its locally computed result.
Open the interface playground → · Read the quick start · Explore capabilities and boundaries
Build and understand Intpot
Section titled “Build and understand Intpot”- Build and run an app: a complete CLI and HTTP path, output verification, and troubleshooting.
- Convert, inspect, and eject: supported framework mappings and explicit conversion limits.
- Schema and parameter reference: public records, defaults, commands, and dependency extras.
- Architecture internals: how registration, detection, projection, and generation work.
Built by ModePot.