Make your API agent-ready in minutes. One declaration, every protocol.
Project description
UsePaso
Make your API agent-ready in minutes. One YAML declaration, every agent protocol.
UsePaso lets any service declare what AI agents can do with their API. Write a usepaso.yaml, and UsePaso generates a working MCP server. No protocol expertise required.
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
# Validate
usepaso validate
# Preview what MCP tools will be generated
usepaso inspect
# Test a capability
usepaso test list_issues -p org=acme -p project=web --dry-run
# Start the MCP server
usepaso serve
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 UsePaso Does With It
usepaso.yaml → MCP server (Claude, Cursor, any MCP client)
Each capability becomes an MCP tool. When an agent calls a tool, UsePaso makes the real HTTP request to your API with proper auth, parameters, and error handling.
CLI Commands
| Command | What it does |
|---|---|
usepaso init |
Scaffold a usepaso.yaml template |
usepaso init --from-openapi |
Generate from OpenAPI spec (file or URL) |
usepaso validate |
Check your declaration for errors |
usepaso inspect |
Preview MCP tools that will be generated |
usepaso test <capability> |
Test a capability with a real HTTP request |
usepaso test <cap> --dry-run |
Preview the HTTP request without executing |
usepaso serve |
Start an MCP server (stdio transport) |
usepaso serve --verbose |
Serve with request logging |
Programmatic Usage
# Package name is "usepaso", import name is "paso"
from paso import parse_file, validate
decl = parse_file('usepaso.yaml')
errors = validate(decl)
Connect to MCP Clients
Claude Desktop
{
"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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file usepaso-0.3.0.tar.gz.
File metadata
- Download URL: usepaso-0.3.0.tar.gz
- Upload date:
- Size: 28.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09f47c99aef2b1739995f2823ae32907404b1fa2b833b65bf2628067369181f6
|
|
| MD5 |
3690cccc3907f1ca1fb5ebbd3ac95f4b
|
|
| BLAKE2b-256 |
c1f5d9c21b6ca7c919a9620daa7bb7fa6ac29f511ecfbd1b72865fd4205ee27c
|
Provenance
The following attestation bundles were made for usepaso-0.3.0.tar.gz:
Publisher:
release.yml on 5h1vmani/usepaso
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
usepaso-0.3.0.tar.gz -
Subject digest:
09f47c99aef2b1739995f2823ae32907404b1fa2b833b65bf2628067369181f6 - Sigstore transparency entry: 1172289227
- Sigstore integration time:
-
Permalink:
5h1vmani/usepaso@3525a45e0b91c91f65ddd07a1284ce500d6297ff -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/5h1vmani
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3525a45e0b91c91f65ddd07a1284ce500d6297ff -
Trigger Event:
push
-
Statement type:
File details
Details for the file usepaso-0.3.0-py3-none-any.whl.
File metadata
- Download URL: usepaso-0.3.0-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
150e76e7e0fa32ff773d9f18deb3515ef53ff5d3d4d707bd4283f12c382a3b9b
|
|
| MD5 |
5cb051ffce7ec573047c69f30b7c67fa
|
|
| BLAKE2b-256 |
433240d464263c00849301feb1e3e42aa67d6c1787ccb2483d28da2ff299118b
|
Provenance
The following attestation bundles were made for usepaso-0.3.0-py3-none-any.whl:
Publisher:
release.yml on 5h1vmani/usepaso
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
usepaso-0.3.0-py3-none-any.whl -
Subject digest:
150e76e7e0fa32ff773d9f18deb3515ef53ff5d3d4d707bd4283f12c382a3b9b - Sigstore transparency entry: 1172289274
- Sigstore integration time:
-
Permalink:
5h1vmani/usepaso@3525a45e0b91c91f65ddd07a1284ce500d6297ff -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/5h1vmani
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3525a45e0b91c91f65ddd07a1284ce500d6297ff -
Trigger Event:
push
-
Statement type: