Quick Start
Install paso, declare your API's capabilities, and serve an MCP server.
Time to complete: ~5 minutes. You’ll have a running MCP server connected to Claude Desktop.
What you’ll build
A Sentry MCP server that lets Claude list issues and get issue details from your Sentry account. The same pattern works for any API.
Install
Node.js:
npm install -g usepaso
Python:
pip install usepaso
Verify:
usepaso --version
Create a declaration
usepaso init --name "my-api"
This creates a usepaso.yaml in the current directory. Edit it to describe your API:
name: "my-api"
version: "0.1.0"
base_url: https://api.example.com
auth:
type: bearer
capabilities:
- name: list_items
description: List all items
method: GET
path: /items
permission: read
inputs:
- name: limit
type: number
description: Max items to return
- name: create_item
description: Create a new item
method: POST
path: /items
permission: write
consent_required: true
inputs:
- name: title
type: string
required: true
- name: body
type: string
Validate
usepaso validate
valid (my-api, 2 capabilities)
Test
Try a capability before going live:
usepaso test list_items -p limit=5 --dry-run
--- DRY RUN (no request will be made) ---
GET /items?limit=5
Authorization: Bearer [REDACTED]
Remove --dry-run to send the real request.
Serve
usepaso serve
usepaso serving "my-api" (2 capabilities)
Your API is now accessible to MCP clients.
Connect to Claude Desktop
Add to your Claude Desktop config:
macOS / Linux: ~/.config/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"my-api": {
"command": "npx",
"args": ["usepaso", "serve"],
"env": {
"USEPASO_AUTH_TOKEN": "your-token-here"
}
}
}
}
Restart Claude Desktop. Your capabilities appear as tools.
:::note[Why not just write an MCP server directly?] You can. The MCP SDK is well-documented. But paso handles protocol compliance, request routing, auth forwarding, input validation, and error handling from a single YAML file. When the next protocol arrives, your declaration doesn’t change. :::
You’re live.
Your API is now agent-accessible. Claude can list issues and get issue details through your MCP server.
Next, you might want to:
- Add permissions and safety controls — set boundaries before going to production
- Import from OpenAPI — if you have an existing spec, skip writing YAML by hand
- Connect to Cursor — same server, different client