DEV Community

Cover image for We Built 118 MCP Tools. Here's What AI Actually Does With Them
Eugen
Eugen

Posted on

We Built 118 MCP Tools. Here's What AI Actually Does With Them

A couple of months ago we finished exposing our SaaS through an MCP server. It now has 118 tools across 12 domains. I want to show what an AI actually does with all of that, because it's not really what we designed for.

PaperLink is a document-sharing and accounting SaaS. You connect Claude, ChatGPT, or any MCP client with one command and start talking to your data. Five examples from real conversations.

1. A receipt photo becomes 6 categorized transactions

Someone snaps a photo of a coffee-shop receipt. The AI reads six line items, calls create-transactions once with all six in a batch, assigns categories, and asks for confirmation before it saves anything. One tool call instead of six form submissions.

2. "Show me invoices stuck in SENT for 30+ days"

We built list-invoices so the UI could show a list of invoices. It takes filters as arguments, and those filters ended up doing more than we expected.

The AI composed a query we never built a UI for: status=SENT, sent over 30 days ago, status history never transitioned to OVERDUE. Five invoices came back that should have auto-transitioned and didn't. That's a bug we had been shipping without noticing.

3. "Upload this contract, password-protect it, expire Friday"

Three tools run from one sentence:

  • create-file-from-source uploads the file
  • create-link generates the protected share link
  • update-link sets the expiration date

The AI chains them, then asks "who should get access?" before sending.

4. "Transfer $500 from Wise to Mono"

Two accounts, different currencies. The AI calls get-exchange-rates, works out the destination amount, then calls create-transfer with both amounts paired and waits for confirmation. A transfer that takes about 45 seconds on a form takes roughly 10 seconds to type.

5. "Who actually read my proposal?"

The AI runs get-link-analytics, then get-top-viewers, then get-page-heatmap, and summarizes: "3 of 5 recipients opened it. One spent 6 minutes on the pricing page. The others skimmed." You get the answer without opening a dashboard.

The full map

Domain Tools Examples
Accounting & transactions 20 create-transaction, create-transfer, get-category-breakdown
Files & folders 14 upload-file-from-url, create-folder, archive-file
Clients & companies 14 create-client, create-company, archive-company
Document sharing & analytics 12 create-link, get-page-heatmap, get-top-viewers
Invoicing & payments 12 create-invoice, record-invoice-payment, change-invoice-status
Categories & accounts 10 create-category, create-financial-account
Estimates 8 create-estimate, convert-estimate-to-invoice
Products & services 7 create-product, update-product
Recurring transactions 7 create-recurring-transaction, get-recurring-forecast
Team & permissions 6 invite-member, change-member-role
Currency & exchange 6 get-exchange-rates, add-team-currency
AI insights & billing 5 generate-document-insight, get-subscription-info

Read, write, and delete tools live in separate files so OAuth scopes can stay granular.

Try it in 10 seconds

Sign up for a free account, then run:

claude mcp add --transport http paperlink https://mcp.paperlink.online/api/mcp/mcp
Enter fullscreen mode Exit fullscreen mode

The server is remote, so you get an OAuth consent screen with a team picker and scope checkboxes. Disconnect anytime from the app.

Next post: how we organized 118 tools across 19 files without writing the same boilerplate 118 times.

Top comments (0)