Examples
Production-ready MCP server declarations for Sentry, Stripe, GitHub, Slack, Twilio, and Linear.
paso includes complete, production-ready examples in the repository. Each example shows how to declare an API and expose it safely to agents.
Overview
All examples are available in the paso repository:
examples/
├── sentry/
├── stripe/
├── github/
├── slack/
├── twilio/
└── linear/
Each example includes a usepaso.yaml declaration ready to use.
Sentry
Error monitoring and performance tracking.
Capabilities: 6 (3 read, 2 write, 1 admin)
list_issues(read). List issues in a project, filtered by status or search queryget_issue(read). Get details of a specific issuelist_projects(read). List all projects in an organizationresolve_issue(write, consent). Mark an issue as resolvedassign_issue(write, consent). Assign an issue to a team memberdelete_issue(admin, consent). Permanently delete an issue
Repository: github.com/5h1vmani/usepaso/tree/main/examples/sentry
Sentry Declaration (abridged)
version: "1.0"
service:
name: Sentry
description: Error monitoring and performance tracking for software teams
base_url: https://sentry.io/api/0
auth:
type: bearer
capabilities:
- name: list_issues
description: List issues (errors) in a project, optionally filtered by status
method: GET
path: /projects/{organization_slug}/{project_slug}/issues/
permission: read
inputs:
organization_slug:
type: string
required: true
description: The organization slug
in: path
project_slug:
type: string
required: true
description: The project slug
in: path
query:
type: string
description: "Search query (e.g., 'is:unresolved assigned:me')"
in: query
- name: resolve_issue
description: Mark an issue as resolved
method: PUT
path: /issues/{issue_id}/
permission: write
consent_required: true
inputs:
issue_id:
type: string
required: true
description: The issue ID
in: path
status:
type: enum
required: true
values: [resolved, unresolved, ignored]
description: New status for the issue
constraints:
- max_per_hour: 100
description: Bulk status changes are rate-limited
- name: delete_issue
description: Permanently delete an issue and all its events
method: DELETE
path: /issues/{issue_id}/
permission: admin
consent_required: true
inputs:
issue_id:
type: string
required: true
description: The issue ID
in: path
constraints:
- max_per_hour: 10
description: Deletion is rate-limited
permissions:
read:
- list_issues
- get_issue
- list_projects
write:
- resolve_issue
- assign_issue
admin:
- delete_issue
Stripe
Payment processing and billing infrastructure.
Capabilities: 6 (3 read, 2 write, 1 admin)
list_customers(read). List customers, filtered by emailget_customer(read). Retrieve a customer by IDlist_invoices(read). List invoices, filtered by customer or statuscreate_customer(write, consent). Create a new customercreate_payment_intent(write, consent). Charge a customerrefund_payment(admin, consent). Refund a payment
Repository: github.com/5h1vmani/usepaso/tree/main/examples/stripe
GitHub
Repository management and collaboration.
Capabilities: 6
list_repos(read)get_repo(read)list_issues(read)create_issue(write, consent)list_pull_requests(read)create_release(admin, consent)
Repository: github.com/5h1vmani/usepaso/tree/main/examples/github
Slack
Team communication and messaging.
Capabilities: 6
list_channels(read)get_messages(read)list_members(read)get_user_info(read)send_message(write, consent)create_channel(write, consent)
Repository: github.com/5h1vmani/usepaso/tree/main/examples/slack
Twilio
SMS and voice communications.
Capabilities: 6
list_messages(read)get_message(read)get_call(read)send_sms(write, consent)create_call(write, consent)get_call_status(read)
Repository: github.com/5h1vmani/usepaso/tree/main/examples/twilio
Linear
Issue tracking and project management.
Capabilities: 6
list_issues(read)get_issue(read)list_projects(read)create_issue(write, consent)update_issue_status(write, consent)add_comment(write, consent)
Repository: github.com/5h1vmani/usepaso/tree/main/examples/linear
Using Examples
1. Clone the Repository
git clone https://github.com/5h1vmani/usepaso.git
cd usepaso
2. Copy an Example
cp examples/sentry/usepaso.yaml ./usepaso.yaml
3. Validate
usepaso validate
4. Test
export USEPASO_AUTH_TOKEN=your-token-here
usepaso test list_issues --dry-run
5. Serve
usepaso serve
6. Connect
Add to Claude Desktop or Cursor following the Claude Desktop Setup or Cursor Setup guides.
Creating Your Own
Use examples as templates:
- Find an example closest to your API
- Copy
usepaso.yamlto your project - Modify the service metadata, paths, and parameters
- Run
usepaso validate - Test with
usepaso test --dry-run - Serve with
usepaso serve
Or generate from an OpenAPI spec:
usepaso init --from-openapi ./openapi.json
Pick an example, make it yours.
Clone one, customize the YAML, and serve. Every example is production-ready.
Next, you might want to:
- Quick Start. create your own declaration
- OpenAPI Import. auto-generate from spec
- Declarations. learn all fields
- GitHub Repository. view full examples