MCP server for Sage 100 Contractor

Connect Claude to your Sage 100 Contractor data.

Twinn runs a read-only MCP server in front of your Sage 100 Contractor company. Add it to Claude Desktop, Claude Code or ChatGPT, and the assistant can look up jobs, vendors and invoices and run 46 Twinn reports, using only the kinds of data you allow. It cannot post, edit or delete anything.

For Sage 100 Contractor (formerly Sage Master Builder). Not for Sage 100 ERP, the distribution and manufacturing product.

What MCP is

MCP (the Model Context Protocol) is an open standard that lets an AI assistant use tools run by someone else. The assistant is the client. Twinn is the server. When you ask a question, the assistant reads the list of tools, decides which ones it needs, and calls them. Each answer it gives is built from what those tools returned.

Without MCP, the usual way to get Sage 100 Contractor data into an assistant is to export a report and paste it in. That copy is out of date by the next posting, and it carries every column whether the assistant needs it or not. With MCP the assistant asks for the records it needs, when it needs them, and only gets what your connection allows.

1

You ask Claude a question

“How much do we owe our electrical sub, retention included?”

2

Claude calls a Twinn tool

It finds the vendor, then reads the open payable invoices for that vendor.

3

Twinn checks the connection

The request is allowed only if this connection may read that kind of data.

4

The Twinn service reads Sage

The service on your own network reads Sage 100 Contractor and sends back the records.

5

Claude answers

It adds up what came back and tells you the total, with the invoices it used.

The nine tools the assistant gets

The assistant chooses tools by reading their descriptions, so each one does a single, clearly named job. Every tool reads through the same API and permission checks as the rest of Twinn.

ToolWhat the assistant uses it for
company_contextLearns which company it is connected to, its fiscal year and open periods, and the dates reports default to.
list_entitiesLists the kinds of records this connection may read (jobs, vendors, payable invoices and so on) and any fields held back from it.
describe_entityExplains one kind of record: each field, its meaning and its format, so the assistant asks for the right thing.
decodeTurns a stored code into its name and meaning, so a status of 4 becomes “Paid” instead of a guess.
find_entityLooks records up by name or by filter, such as a vendor by name or the invoices on one job.
summarize_entityAdds records up in one step: counts, totals, smallest and largest, overall or per group, such as open payables per job or job cost by month.
list_reportsLists the Twinn reports this connection may run.
describe_reportExplains a report’s criteria, columns and how it is calculated, before running it.
run_reportRuns a report and returns its totals, or its rows when asked. The answer names the exact report version that ran.

Questions to ask it

We test the tools against a fixed set of questions like these, asked with no prompt of ours, so they work the same in your assistant as in ours.

“Which fiscal year and accounting period are we in right now?”

“How many open jobs do we have?”

“How much do we currently owe this vendor, retention included?”

“What is the cost to date on the Harbor Point job?”

“How much of our open payables is charged to that job?”

“What is our total payables more than 90 days past due today?”

“What is our net income for the fiscal year to date?”

“What was our largest job by cost this year and last year?”

“How many accounting periods are still open?”

Set it up

A company administrator does this once per person or per tool. It takes about five minutes.

  1. 1

    Create an AI connection in the Twinn dashboard

    On your company’s Access page, under AI connections, add a connection. Pick the assistant it is for and tick the kinds of data it may read:

    • Everyday records: jobs, cost codes, vendors and the like
    • Money: ledgers, invoices, payments and balances
    • Payroll: pay and hours
    • Personal details: people’s names, addresses, phone numbers and emails

    Everyday records are always included. Leave Payroll and Personal details off unless that person already sees them in Sage.

  2. 2

    Add it to Claude Desktop, claude.ai or ChatGPT

    Add a custom connector, paste the server address the dashboard shows you, and sign in with your Twinn account when the assistant asks. The connection only works for people who are allowed to use it.

  3. 3

    Or paste the snippet into Claude Code and other tools

    Tools that take a configuration file use the snippet the dashboard gives you. It holds the address and the connection’s key. Treat the key like a password: it is shown once.

    {
      "mcpServers": {
        "twinn": {
          "type": "http",
          "url": "<the address from your dashboard>",
          "headers": { "X-Api-Key": "<your connection key>" }
        }
      }
    }

    For Claude Code, the same thing as one command:

    claude mcp add --transport http twinn "<the address from your dashboard>" \
      -H "X-Api-Key: <your connection key>"
  4. 4

    Ask a question

    Start with “What can you read from Twinn?” The assistant lists what this connection may see. Then ask a real question. Most assistants ask your permission before each tool call, so you can watch exactly what it reads.

Try it on a demo company first

You do not need to install anything to see it work. We set up a demo company for you: a real Sage 100 Contractor database running on our servers, with books dated to this month, so “what is overdue” has a real answer.

Connect Claude to it, ask your questions, and check each answer in the Twinn dashboard, where the records are laid out like the Sage 100 Contractor screens your team already knows: jobs, vendors, payable and receivable invoices, purchase orders, payroll records and more.

A trial company lasts up to 30 days. When it ends, the company and all of its data are removed completely.

Fresh books

Transactions are dated to the current month, so aging, overdue and period questions have real answers.

Screens you recognise

Check what Claude told you against records laid out like the Sage 100 Contractor screens.

Removed when it ends

The demo company, its database and its connections are deleted at the end of the trial.

Ask for a demo company

What the assistant can and cannot do

Written for the controller who owns the books and the IT lead who owns the server.

Read-only, by design

An AI connection can never write. A key that is able to post to Sage is refused by the MCP server outright, so nothing the assistant does can change your books.

You choose the data

Each connection reads only the kinds of data you ticked. Fields it may not see are left out of every answer, and the assistant is told they were held back.

One connection per person or tool

Every connection has its own key. Revoke one and the others keep working. Nobody shares a login.

Every call is recorded

Each tool call is counted against its connection, and the dashboard shows which reports each one ran.

Answers stay small

Reports return totals by default, and long lists are capped and say so. The assistant cannot pull your whole ledger by accident.

Your database stays put

Sage 100 Contractor stays on your own server. The Twinn service there makes outbound connections only, with no open ports.

Your own assistant, or Ask Twinn

Ask Twinn is the assistant built into the Twinn web app. It uses these same tools, so it gives the same answers. Pick it if your team does not use an AI assistant today and you want nothing to set up.

Connect your own assistant if your team already works in Claude or ChatGPT and wants Sage 100 Contractor next to their email, documents and spreadsheets. Developers who want the data in their own code can use the same records through the Twinn API.

Questions about the MCP server

What is an MCP server?
A program that offers tools to an AI assistant over the Model Context Protocol, an open standard. Twinn’s MCP server offers tools that read Sage 100 Contractor records and run reports. The assistant decides when to call them.
Which assistants work with it?
Claude Desktop, claude.ai, Claude Code and ChatGPT. Any other tool that supports remote MCP servers over HTTP can use the configuration snippet.
Does this work with Sage 100 ERP?
No. Twinn works only with Sage 100 Contractor, the construction accounting product formerly called Sage Master Builder. Sage 100 ERP (formerly MAS 90 and MAS 200) is a separate product on a different database.
Can the assistant change anything in Sage 100 Contractor?
No. AI connections are read-only, and the server refuses any key that is able to write.
What does the AI provider see?
Your question and what the tools returned for it, which is only data the connection is allowed to read. That is sent to the provider of the assistant you use, under your agreement with them. Twinn never sends your data to an assistant you did not connect.
Does Twinn keep a copy of our Sage data?
No. Each tool call reads live data through the Twinn service on your network. There is no warehouse or nightly copy behind it.
Can the assistant get a number wrong?
The figures come from Sage records and Twinn reports, which show how they are calculated. An assistant can still misread a question, so ask it which report or records it used. Every report answer names the report version that ran.
What does it cost?
AI connections are included in every plan, starting with Reports at $3,000 a year. Every plan starts with a free 30-day trial on a demo company, and you can connect your assistant to it during the trial.

See Claude answer from Sage 100 Contractor

Tell us which questions you would ask first. We will set up a demo company, and you can connect your own assistant to it the same day.

Ask for a demo company