Talk to your books with AI

Connect Claude, n8n, Make, or any AI tool to your Self Employment Toolkit data. Ask questions in plain English, log expenses by voice, check unpaid invoices without opening the app. No coding required to get started.

The MCP server is included on the Pro tier ($6 a month or $48 a year). Free-tier accounts can use the web dashboard, but cannot issue API keys or hit the /mcp endpoint. See pricing →

Get Your API Key →

What does this actually do?

You already use Self Employment Toolkit to track mileage, log expenses, and send invoices. With an integration, your AI assistant can read and update that same data just by having a conversation with you.

Think of it like giving Claude a read/write connection to your bookkeeping. You can ask it anything: "How much did I spend on travel last quarter?" or "Log a $47 lunch expense with Acme Corp." No copy-pasting, no switching apps.

Ask "What are my unpaid invoices?"
Say "Log a 14-mile business trip to downtown"
Ask "How much have I made this year?"
Say "Create a draft invoice for Acme for 5 hours"
Ask "What did I spend on software last month?"
Say "Mark invoice INV-0042 as paid"

Pick your tool

How you connect depends on which Claude (or other AI tool) you use. The web app uses OAuth and doesn't need an API key; the desktop and CLI use a long-lived API key in an Authorization header. Pick the section that matches your setup.

Claude on the web (claude.ai)

This is the simplest path. claude.ai handles authentication via OAuth, so you do not need to generate or paste an API key. Sign-in happens in a popup.

1
In claude.ai, open Settings → Connectors
Click your avatar, choose Settings, then Connectors in the sidebar. Click Add custom connector.
2
Paste the server URL and leave everything else blank
Name: anything you like, e.g. Self Employment Toolkit.
Remote MCP server URL: https://selfemploymenttoolkit.com/mcp
Leave the OAuth Client ID and Client Secret fields blank.
3
Approve the connector in the popup
claude.ai opens a window asking you to sign in to the toolkit (if you are not already) and approve the requested scopes. Click Approve once. All 20 tools become available in your next chat.

Behind the scenes claude.ai is doing OAuth 2.1 with Dynamic Client Registration — it discovers the authorization server from a metadata document, registers itself, and exchanges a one-time code (with PKCE) for a short-lived bearer token that auto-refreshes. You can revoke access at any time from your Settings page.

Claude Code (CLI)

If you use the claude CLI, register the toolkit with the mcp add command. Generate an API key first from your Settings page → API Keys & Integrations.

claude mcp add selfemploymenttoolkit https://selfemploymenttoolkit.com/mcp \
  --transport http \
  --header "Authorization: Bearer skt_your_api_key_here"

Then in any Claude Code session, type /mcp to see the tool list and confirm the connection.

Claude Desktop

Claude Desktop is a free app from Anthropic for Mac and Windows. Edit claude_desktop_config.json (Settings → Developer → Edit Config) and add an entry to mcpServers. Generate an API key from your Settings page first.

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

Restart Claude Desktop. The toolkit shows up in the connector list and all 20 tools become available.

Ask questions in plain English

Once connected, try things like:

n8n or Make

For no-code automation workflows, use n8n's HTTP Request node or Make's HTTP module with an API key in the Authorization header. A common pattern: a Google Calendar event fires, n8n reads the event details and automatically logs a mileage trip in your account, no manual entry needed.

🤓 Technical Reference for the curious

Everything below is for developers and power users who want to go deeper.

Protocol overview

The Self Employment Toolkit implements the Model Context Protocol (MCP) Streamable HTTP transport (spec version 2025-03-26). The endpoint is a stateless HTTP server that accepts JSON-RPC 2.0 requests and returns either application/json or text/event-stream responses depending on the client's Accept header.

Authentication uses a Bearer token in the Authorization header. Tokens have the prefix skt_ followed by 64 hex characters (32 random bytes). The raw token is shown once at creation time; only a one-way hash is stored server-side. Tokens can be revoked at any time from Settings.

All 20 MCP tools

Six read tools return JSON arrays or summary objects. Five write tools create or update records and return the new record's ID.

ToolTypeDescriptionParameters
get_overview Read YTD summary: revenue, mileage, trip count, active clients. none
list_clients Read All clients: name, address, hourly rate, notes. Up to 200. none
list_expenses Read Expenses filtered by date range or category. Up to 200. start (YYYY-MM-DD), end, category
list_trips Read Mileage trips with distance, category, addresses. Up to 200. start, end, client_id
list_invoices Read Invoices with status, total, client, due date. Up to 200. status (draft | sent | paid | void), client_id
list_time_entries Read Time entries with client, date, clock-in/out. Up to 200. start, end, client_id
log_expense Write Creates an expense record. Amount in integer cents. amount_cents*, date* (YYYY-MM-DD), category*, vendor, notes, client_id
log_trip Write Creates a mileage trip record. start_time* (ISO 8601), end_time*, distance_miles*, start_address, end_address, category, client_id
log_time Write Creates a time entry (HH:MM 24-hour clock). date* (YYYY-MM-DD), clock_in* (HH:MM), clock_out*, notes, client_id
create_draft_invoice Write Creates a draft invoice with line items. client_id*, issued_date*, line_items* (array), due_date, notes
mark_invoice_paid Write Transitions a sent invoice to paid status. invoice_id*, paid_at (YYYY-MM-DD, defaults to today)

* Required parameter.

Rate limits

10
API keys per account
10
Key creates per hour
120
MCP calls per minute

All calls (read and write) count toward the 120/min limit. Write operations are not separately rate-limited beyond the overall cap. Rate limit windows are fixed (not sliding). Exceeding a limit returns HTTP 429.

Wire format

All requests are JSON-RPC 2.0 POST to https://selfemploymenttoolkit.com/mcp. Set Authorization: Bearer skt_... and Content-Type: application/json. Include Accept: application/json, text/event-stream for MCP-compliant clients.

List expenses with date filter:

{ "jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": { "name": "list_expenses", "arguments": { "start": "2026-01-01", "end": "2026-03-31", "category": "Software and Subscriptions" } } }

Log an expense (amount in cents):

{ "jsonrpc": "2.0", "method": "tools/call", "id": 2, "params": { "name": "log_expense", "arguments": { "amount_cents": 2999, "vendor": "Notion", "date": "2026-05-09", "category": "Software and Subscriptions", "notes": "Monthly Notion workspace subscription" } } }

Discover available tools:

{ "jsonrpc": "2.0", "method": "tools/list", "id": 3, "params": {} }

Security

API keys are hashed with SHA-256 before storage. The raw key is shown exactly once at creation time. Every response is scoped exclusively to the authenticated account; no tool can access another user's data regardless of the arguments passed. Rate limits are enforced per key, so a runaway workflow on one key does not affect others on the same account.

The MCP endpoint runs behind the same DDoS protection and TLS termination as the rest of the service. All data in transit is encrypted.

Frequently asked questions

What is the Model Context Protocol?
MCP is an open standard created by Anthropic that defines how AI tools discover and call external services. It uses a JSON-RPC 2.0 wire format over HTTP. Any MCP-compatible client, including Claude Desktop and the claude.ai web app, can connect to an MCP server and immediately gain access to its tools.
How do I create an API key?
Log in, go to Settings, scroll to API Keys & Integrations, and click + Generate Key. Copy it immediately. You can create up to 10 keys and revoke any of them at any time.
Can I use this with tools other than Claude?
Yes. Any tool that supports MCP or plain HTTP POST with JSON-RPC 2.0 works. That includes n8n, Make, Zapier (via HTTP), Cursor, Zed, and custom scripts. If a tool supports MCP server connections, paste in the URL and your Bearer token and it works.
Is the MCP server secure?
Every request requires a Bearer API key. Keys are scoped to your account, hashed before storage, and can be revoked at any time. Rate limits prevent runaway automation. All data returned is scoped exclusively to your account.
Does this work with mileage, expenses, and time tracking?
Yes. The same API key and endpoint gives you access to all three: expenses, mileage trips, and time entries, plus invoices and clients. The get_overview tool returns a combined year-to-date summary in one call.

Ready to connect?

Generate an API key in Settings and connect your first tool in under two minutes.

Go to Settings →