npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

usepaso

v0.4.1

Published

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

Readme

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 npm

Install

npm install usepaso

Quick Start

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

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

# Check it
npx usepaso validate

# Preview what MCP tools will be generated
npx usepaso inspect

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

# Start the MCP server
npx 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

import { parseFile, validate, generateMcpServer } from 'usepaso';

const decl = parseFile('usepaso.yaml');
const errors = validate(decl);
const { server, toolNames } = generateMcpServer(decl);

Connect to MCP Clients

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

Or add manually to your client config:

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

Links

License

Apache 2.0