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

invompt-mcp

v0.4.1

Published

MCP server for Invompt — create invoices from any AI tool

Readme

Invompt MCP Server

npm License: MIT Node.js

MCP server for Invompt — the AI invoice generator. Create, manage, and share professional invoices from any AI tool.

"Create an invoice for 40 hours of web development at $150/hr for Acme Corp, due in 30 days"

Your AI assistant reads the format spec, generates the invoice, calls the API, and returns a shareable link — all without leaving your editor.

Quick Start

Remote (no install)

Connect directly to the hosted server — no npm install, no local process:

{
  "mcpServers": {
    "invompt": {
      "type": "http",
      "url": "https://mcp.invompt.com/mcp",
      "headers": {
        "Authorization": "Bearer inv_sk_..."
      }
    }
  }
}

Claude Code — MCP server

claude mcp add invompt -e INVOMPT_API_KEY=inv_sk_... -- npx invompt-mcp

Claude Code — plugin (recommended)

invompt-mcp also ships a Claude Code plugin that bundles the MCP server with an invoicing skill and a session-start banner. Install it from npm:

claude plugin install invompt-mcp

The plugin exposes the full MCP surface — tools (create_invoice, list_invoices, get_invoice, update_invoice, archive_invoice, get_settings, ping), the draft_invoice_invoml prompt, and the invompt://spec/invoml/v1 resource — plus the invoicing skill that guides the agent through required inputs and common billing patterns (hourly, milestone, recurring).

Anonymous mode works without an API key — set INVOMPT_API_KEY only if you want requests tied to your account.

npm (all other clients)

npx invompt-mcp

Set INVOMPT_API_KEY in your environment or pass it through your client's config. See Setup for client-specific instructions.

Setup

Get your API key: invompt.comIntegrationsGenerate API Key (starts with inv_sk_)

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "invompt": {
      "command": "npx",
      "args": ["-y", "invompt-mcp"],
      "env": {
        "INVOMPT_API_KEY": "inv_sk_..."
      }
    }
  }
}

Restart Claude Desktop after saving.

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):

{
  "mcpServers": {
    "invompt": {
      "command": "npx",
      "args": ["-y", "invompt-mcp"],
      "env": {
        "INVOMPT_API_KEY": "inv_sk_..."
      }
    }
  }
}

Add to .vscode/mcp.json:

{
  "servers": {
    "invompt": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "invompt-mcp"],
      "env": {
        "INVOMPT_API_KEY": "inv_sk_..."
      }
    }
  }
}

VS Code uses "servers", not "mcpServers".

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "invompt": {
      "command": "npx",
      "args": ["-y", "invompt-mcp"],
      "env": {
        "INVOMPT_API_KEY": "inv_sk_..."
      }
    }
  }
}

Open Cline sidebar → MCP Servers → Configure, then add:

{
  "mcpServers": {
    "invompt": {
      "command": "npx",
      "args": ["-y", "invompt-mcp"],
      "env": {
        "INVOMPT_API_KEY": "inv_sk_..."
      }
    }
  }
}

Add to ~/.aws/amazonq/mcp.json:

{
  "mcpServers": {
    "invompt": {
      "command": "npx",
      "args": ["-y", "invompt-mcp"],
      "env": {
        "INVOMPT_API_KEY": "inv_sk_..."
      }
    }
  }
}

Add to ~/.codex/config.toml:

[mcp_servers.invompt]
command = "npx"
args = ["-y", "invompt-mcp"]

[mcp_servers.invompt.env]
INVOMPT_API_KEY = "inv_sk_..."

Replace npx with bunx and remove -y in any configuration above:

"command": "bunx",
"args": ["invompt-mcp"],

What you can do

Create invoices from natural language:

"Invoice Acme Corp for 3 months of consulting at $5,000/month, payment due net 30"

Duplicate and modify existing invoices:

"Copy invoice INV-042, change the client to Globex Corp, and update the amount to $8,000"

Browse and manage your invoices:

"Show me all unpaid invoices from this month"

"Archive invoice INV-039"

Use your own settings automatically: The assistant reads your company name, currency, invoice prefix, and payment terms before generating — so invoices match your brand from the start.

Tools & Resources

| Type | Name | Description | |------|------|-------------| | Resource | invompt://docs/getting-started | Product guide — recommended workflow, tips, account setup | | Resource | invompt://spec/invoml/v1 | InvoML format spec — the LLM reads this to learn how to structure invoices | | Tool | get_settings | Read company name, currency, invoice prefix, payment terms | | Tool | create_invoice | Create an invoice from an InvoML JSON document, returns a shareable URL | | Tool | list_invoices | List invoices with search and status filters | | Tool | get_invoice | Get a single invoice with full InvoML content | | Tool | update_invoice | Edit an invoice's InvoML content or template | | Tool | archive_invoice | Soft-delete an invoice | | Prompt | draft_invoice_invoml | Helps the LLM draft an InvoML JSON document from natural language |

Templates

Pass templateId when creating or updating:

| Template | Description | |----------|-------------| | professional | Clean business layout (default) | | minimal | Simple, compact | | modern | Contemporary design |

Library Usage

invompt-mcp exports its client and server factory for use as a library.

Package exports

// Main — stdio transport, client, types
import { createServer, InvomptClient, InvomptApiError } from 'invompt-mcp'

// HTTP — for serverless route handlers
import { handleMcpRequest } from 'invompt-mcp/http'

Streamable HTTP (serverless)

import { handleMcpRequest } from 'invompt-mcp/http'

export async function handler(request: Request) {
  return handleMcpRequest(request, {
    apiKey: process.env.INVOMPT_API_KEY,
    deviceId: request.headers.get('x-invompt-device-id') ?? undefined,
  })
}

Pass a stable per-user deviceId when you want anonymous ping and create_invoice to work over Streamable HTTP. For local stdio usage, the server persists its own device ID automatically.

Architecture

src/
├── index.ts           createServer() factory + stdio entry + barrel exports
├── http.ts            handleMcpRequest() for Streamable HTTP transport
├── client.ts          InvomptClient — HTTP client for /api/v1/*
├── types.ts           Shared TypeScript interfaces
├── error.ts           InvomptApiError class
├── cache.ts           MemoryCache with TTL
├── tools/             One file per tool (create, list, get, update, archive, settings)
├── resources/         InvoML spec + getting-started guide
└── prompts/           draft_invoice_invoml

Dual transport

Stdio (npm):    AI Tool ←stdin/stdout→ invompt-mcp ←HTTPS→ invompt.com/api/v1/*
HTTP  (remote):  AI Tool ←HTTPS→ mcp.invompt.com/mcp → /api/v1/*

Environment variables

| Variable | Required | Description | |----------|----------|-------------| | INVOMPT_API_KEY | Optional | API key from invompt.com/integrations |

Resources and the draft_invoice_invoml prompt work without an API key. ping and create_invoice also work anonymously. Invoice management tools require an API key.

Development

npm install          # install dependencies
npm run build        # compile TypeScript
npm run lint         # check with Biome
npm test             # run tests (Vitest)
npm run dev          # run from source with tsx

License

MIT — see LICENSE