Skip to main content

Make your API agent-ready in minutes. One declaration, every protocol.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

usepaso-0.4.1.tar.gz (44.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

usepaso-0.4.1-py3-none-any.whl (39.5 kB view details)

Uploaded Python 3

File details

Details for the file usepaso-0.4.1.tar.gz.

File metadata

  • Download URL: usepaso-0.4.1.tar.gz
  • Upload date:
  • Size: 44.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for usepaso-0.4.1.tar.gz
Algorithm Hash digest
SHA256 ef937444b5f359f9527bd7dbe20a7b7cb813c98975a606e4aacc85fac94cd0c2
MD5 82c05f3f751ce14bdb2d50dbcdebc731
BLAKE2b-256 cc4e784901f198bba0e76936c76bd9146645de7a797f4413cef02c56c5ca8f31

See more details on using hashes here.

Provenance

The following attestation bundles were made for usepaso-0.4.1.tar.gz:

Publisher: release.yml on 5h1vmani/usepaso

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file usepaso-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: usepaso-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 39.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for usepaso-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bbeecebf2b75bc4d1d23977c017f98baf004685049d068921f72598dcc8480d0
MD5 0c7977687de7bf9d736c09b8288f79f9
BLAKE2b-256 711dd0f565eee2b371b3772f78191be230d87a6d9c8383bd9134641960010945

See more details on using hashes here.

Provenance

The following attestation bundles were made for usepaso-0.4.1-py3-none-any.whl:

Publisher: release.yml on 5h1vmani/usepaso

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page