invompt-mcp
v0.4.1
Published
MCP server for Invompt — create invoices from any AI tool
Maintainers
Readme
Invompt MCP Server
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-mcpClaude 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-mcpThe 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-mcpSet 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.com → Integrations → Generate 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_invomlDual 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 tsxLicense
MIT — see LICENSE
