OuterSpace Apizr
OfficialThe OuterSpace Apizr MCP server lets you statically analyze a Python startup project, assess its readiness for exposure, and plan how to expose its capabilities as REST or MCP tools without executing or modifying anything.
Analyze project structure and static capabilities: inspect modules, functions, imports, relationships, and diagnostics via
apizr_analyze.Assess readiness under a policy: evaluate capabilities, effects (network, filesystem, subprocess, etc.), execution mode compatibility, and diagnostics via
apizr_readiness.Plan exposure: propose a selection of capabilities and interfaces (REST/MCP) with compatible execution modes and requirements via
apizr_plan_exposure.Verify repository revision: all tools accept an optional
expected_repository_digestto ensure analysis targets a specific project state.Operate safely: all tools are read-only, idempotent, non-destructive, and do not generate, execute, modify configuration, or publish anything.
Exports verified REST bundles as Bruno collections, enabling import into the Bruno API client for testing and sharing.
Provides a GitHub Action for validating and building Apizr projects within GitHub CI workflows.
Provides a GitLab CI component source for validating and building Apizr projects within GitLab pipelines.
Exports verified REST bundles as Insomnia collections, enabling import into the Insomnia API client for testing and sharing.
Exports verified REST bundles as Postman collections, enabling import into Postman for testing and sharing.
OuterSpace Apizr
Turn existing Python functions into REST APIs or MCP tools. Inspect training scripts and notebooks, record experiments, and compare their results.
Apizr 0.4.6 supports Python 3.11–3.15 on macOS and Linux.
Install
With uv:
uv tool install outerspace-apizr==0.4.6
apizr --version
Prefer pip or Homebrew? Follow the installation guide.
Related MCP server: molmcp
Try it
Save this as pricing.py:
def total(quantity: int, unit_price: float) -> float:
return round(quantity * unit_price, 2)Inspect the function, then generate its MCP server:
apizr inspect pricing.py
apizr generate mcp pricing.py --select total --output-dir dist/mcpApizr reads the function without running it. You choose which functions to expose. The generated server runs them when a client calls them.
Follow the Quickstart to start a server and make your first REST or MCP calls. The full walkthrough explains how this works across a project.
Work with experiments
Start with a training script or notebook you want to understand:
apizr experiment inspect train.pyThe report shows the data, parameters and calculations found in the source. It does not train a model or invent scores.
You can then run trusted code, keep its history, compare results and share a selected prediction function. Start with the Data Scientist quickstart, or follow the Academy.
Go further
The core handles inspection and generation. Plugins are optional. Run generated services and experiments only with code and dependencies you trust.
Documentation · Release notes · Contributing · Report an issue
Available Tools
6 toolsapizr_analyzeAnalyze Python ProjectARead-onlyIdempotent
Discover static capability identities, source evidence and relationships when you need to find what to inspect. Does not execute project code. Choose full, summary or exact capability/module detail. Retain a capability ID and the returned repository digest for optional expected_repository_digest pinning; next inspect readiness or test an exposure plan. Evidence is assessed afresh and is not cached for later calls. This tool grants no execution or exposure authority.
Inputs: view, limit, module, offset, +2 more. Returns: object
apizr_experiment_diffCompare Experiment RunsARead-onlyIdempotent
Compare two verified local Runs directionally from A to B using canonical experiment comparison. Returns recorded changes, unknown evidence and finite numeric deltas, never causal conclusions. Requires the configured project's history.read grant. Does not execute, retrain, expose or mutate records; inspect show for the original evidence behind differences.
Inputs: run_a (required), run_b (required). Returns: object
apizr_experiment_listList Experiment RunsARead-onlyIdempotent
List verified local experiment Runs, including CLI, SDK and Jupyter captures, with recorded parameters and metrics. Requires an explicit history.read operator grant for the configured project's store. Filters and limit only affect presentation: every retained record is validated. No execution, exposure or store mutation; next use show or diff with returned Run identities.
Inputs: limit, source, status, capability. Returns: object
apizr_experiment_showShow Experiment EvidenceARead-onlyIdempotent
Read one verified recorded Run and its intended Plan using an exact digest or unique prefix. Includes producer and capture evidence when retained; unknown provenance stays unknown. Requires the configured project's history.read grant. Does not execute project code, load the producing provider, expose capabilities or mutate the store; compare two identities with diff.
Inputs: run_id (required). Returns: object
apizr_plan_exposurePlan Capability ExposureARead-onlyIdempotent
Test an exposure proposal when you know which capabilities to expose. Evaluates explicit selection, interfaces and execution constraints against current static evidence/readiness; uses a supplied policy or the startup exposure policy. Returns proposed capability/interface/execution combinations. Does not generate a server, execute a function, change project configuration, publish anything or create operator authorization. For exposure_refused, inspect structured diagnostics/actions and revise the proposal or its evidence before trying again.
Inputs: limit, offset, policy, expected_repository_digest. Returns: interfaces, capabilities, graph_digest, catalog_digest, +6 more
apizr_readinessAssess Repository ReadinessARead-onlyIdempotent
Assess whether and under what conditions capabilities satisfy the startup readiness policy. Choose this for limitations, uncertainty and execution/control compatibility, rather than discovering identities or testing an exposure proposal. Use full, summary or exact capability/module detail, optionally pinned to a repository digest. Analysis can help find exact IDs but is not required. exit_code: 1 with isError: false is valid business evidence. Does not execute project code and does not authorize exposure. Next, use sufficient evidence to choose an explicit capability/policy for an exposure plan.
Inputs: view, limit, module, offset, +2 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a distinct phase: discovery (analyze), policy assessment (readiness), proposal testing (plan_exposure), and experiment history (list/show/diff). Boundaries are explicitly spelled out in the descriptions, though analyze and readiness both inspect the same capability space, which could cause occasional selection confusion.
All names share a clean apizr_ prefix and snake_case, but the verb/no-un structure is mixed: single verbs (analyze), nouns (readiness), and noun_verb compounds (plan_exposure, experiment_list, experiment_show). Mostly consistent with minor deviation in the base convention.
Six tools is well-scoped for the server's purpose, covering discovery, readiness, exposure planning, and an experiment list/show/diff trio. Each tool clearly earns its place with no redundancy.
The static-analysis-to-exposure-planning workflow (analyze -> readiness -> plan_exposure) and experiment inspection (list/show/diff) appear well covered. Gaps are minor, since exposure execution and server generation are intentionally out of scope for this read-only/inspection surface.
Maintenance
Related MCP Connectors
Capability-routed CLI/MCP: signed provenance exports, WCAG-validated themes, sovereign deploy modes.
Governed AI agent skills — one library, distributed to devs and exposed to remote agents over MCP.
Discover, plan and run tools across your connected business systems through one OAuth MCP endpoint
Host any HTTP API as a standard MCP server; auto-distribute to 12+ mainstream agent platforms.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceOne command to turn any codebase into an MCP server. Not just REST APIs. Not just OpenAPI specs.56Apache 2.0
- AlicenseBqualityCmaintenanceA graph-based codebase capability discovery engine for LLM agents, exposing indexed code symbols, signatures, and relationships over MCP to enable agents to find and use tools without guessing names.9BSD 3-Clause
- AlicenseBqualityCmaintenanceConvert plain Python modules into MCP servers without decorators or boilerplate, automatically exposing functions as schematized tools.5MIT
- AlicenseNot gradedqualityCmaintenanceEnables users to turn any API, CLI, database, website, SDK, or codebase into a production-ready MCP server with secure, dynamically discoverable capabilities.MIT