Skip to main content

paso

The agent-readiness toolkit for APIs.

Declare your API's capabilities once. paso generates the MCP server. No protocol code required.

Self-hosted. Open source. Apache 2.0.

CI PyPI

Install

pip install usepaso

Quick Start

# Scaffold a declaration
usepaso init --name "MyService"

# Or generate from an existing OpenAPI spec
usepaso init --from-openapi ./openapi.json

# Check it
usepaso validate

# Preview what MCP tools will be generated
usepaso inspect

# Test a capability (without the consequences)
usepaso test list_issues -p org=acme -p project=web --dry-run

# Start the MCP server
usepaso serve

That's it. Your API is agent-ready.

What You Write

# usepaso.yaml
version: "1.0"

service:
  name: MyService
  description: My API service
  base_url: https://api.example.com
  auth:
    type: bearer

capabilities:
  - name: list_items
    description: List all items
    method: GET
    path: /items
    permission: read

  - name: create_item
    description: Create a new item
    method: POST
    path: /items
    permission: write
    consent_required: true
    inputs:
      name:
        type: string
        required: true
        description: Item name

What paso Does With It

Each capability becomes an MCP tool. When an agent calls it, paso makes the HTTP request to your API with proper auth, parameters, and error handling.

CLI

Command What it does
usepaso init Scaffold a usepaso.yaml template (JSONPlaceholder example)
usepaso init --blank Scaffold a blank template
usepaso init --from-openapi Generate from an OpenAPI spec
usepaso validate Check your declaration for errors
usepaso validate --strict Check for best practices (missing constraints, consent)
usepaso inspect Preview MCP tools that will be generated
usepaso test <capability> Test a capability against the live API
usepaso test --dry-run Same thing, minus the consequences
usepaso test --all --dry-run Verify all capabilities resolve correctly
usepaso serve Start an MCP server (stdio)
usepaso serve --strict Serve with consent gates enforced (two-phase confirmation)
usepaso serve --verbose Serve with request logging
usepaso connect <client> Wire this server into an MCP client config (claude-desktop, cursor, vscode, windsurf)
usepaso disconnect <client> Remove from an MCP client config
usepaso doctor Check your setup end-to-end
usepaso completion Output shell completion script (bash, zsh, fish)
usepaso version Print the version

Programmatic Usage

from usepaso import parse_file, validate

decl = parse_file('usepaso.yaml')
errors = validate(decl)

Connect to MCP Clients

usepaso connect claude-desktop
usepaso connect cursor
usepaso connect vscode
usepaso connect windsurf

Or add manually to your client config:

{
  "mcpServers": {
    "my-service": {
      "command": "usepaso",
      "args": ["serve", "-f", "/path/to/usepaso.yaml"],
      "env": { "USEPASO_AUTH_TOKEN": "your-token" }
    }
  }
}

Links

License

Apache 2.0

Metadata

Release files for usepaso 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for usepaso 0.4.1
File Size Uploaded
usepaso-0.4.1.tar.gz 44.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for usepaso 0.4.1
File Interpreter ABI Platform
usepaso-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 84.1 kB

Release files / usepaso-0.4.1.tar.gz

Download URL usepaso-0.4.1.tar.gz
Size 44.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ef937444b5f359f9527bd7dbe20a7b7cb813c98975a606e4aacc85fac94cd0c2
BLAKE2b-256 checksum
How to use checksums
cc4e784901f198bba0e76936c76bd9146645de7a797f4413cef02c56c5ca8f31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 1, 2026.

Transparency log

Release files / usepaso-0.4.1-py3-none-any.whl

Download URL usepaso-0.4.1-py3-none-any.whl
Size 39.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bbeecebf2b75bc4d1d23977c017f98baf004685049d068921f72598dcc8480d0
BLAKE2b-256 checksum
How to use checksums
711dd0f565eee2b371b3772f78191be230d87a6d9c8383bd9134641960010945
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page