MCP Server Development

We build production Model Context Protocol servers that connect your product to Claude, ChatGPT and Copilot. We run one ourselves — Nordsynk, live on the Fortnox Marketplace with paying customers.

By Assim ElHammouti, founder and lead engineer, NordbeamUpdated

Short answer

Who builds production MCP servers?

Nordbeam, an AI development studio in Gothenburg and Malmö, Sweden, builds production Model Context Protocol (MCP) servers that connect a product's API to Claude, ChatGPT and Copilot. Nordbeam also built and operates Nordsynk, a hosted Fortnox MCP server. Typical timelines: 2–3 weeks for a pilot, 6–8 weeks for production.

Pilot
2–3 weeks, one API domain
Production
6–8 weeks, OAuth and approvals
Proof
Nordsynk, built and operated by Nordbeam

Most companies selling MCP development have never operated one. We have. Nordsynk is our own Model Context Protocol server for Fortnox — listed on the Fortnox Marketplace, used by around eighty Swedish companies, billed per seat, running in production every working day. Everything on this page comes from running it, not from reading the specification.

That distinction matters more than it sounds. Building an MCP server that works on your laptop takes an afternoon. Building one that survives real users, three concurrent protocol versions, an OAuth token that expires mid-conversation and a client that silently reinterprets your tool descriptions is a different job entirely.

80+
Companies using our MCP server
90,000+
API calls from its heaviest twelve
95
Named workflows in production
4
Protocol versions live at once

What is an MCP server?

An MCP server is a program that exposes a system's tools, data and prompt templates to AI applications through the open Model Context Protocol. According to modelcontextprotocol.io, an AI application (the host) runs an MCP client that connects to one or more servers. Servers offer three kinds of capability: tools the model can call, resources it can read, and prompts users can invoke.

Local servers talk to the client over stdio. Remote servers use Streamable HTTP, and the specification's authorization section builds on OAuth. Nordbeam builds the remote kind, because that is what customers of a SaaS product can actually connect to.

How do you develop a production MCP server?

You develop one in five steps: map the API, specify the tools, decide the auth model, add write approval, then test against every client you intend to support.

  1. Map the API. Decide which domains and operations the model should reach, and which it must not.
  2. Specify the tools. Write tool names and descriptions for a model reader, not a human one, or expose the full OpenAPI surface through a single code-mode entry point.
  3. Decide the auth model. Remote servers need OAuth with per-tenant tokens that survive refresh.
  4. Gate writes. Every change shows what it will do and waits for a person's approval.
  5. Test per client. Claude, ChatGPT, Cursor and Copilot Studio each behave differently.

Why build an MCP server at all?

You build one so customers can use your product from the AI tools they already work in, without a custom integration per assistant. One MCP server serves every compliant client. It also keeps you in control of authentication, permissions and logging, instead of a customer building a fragile scraper around your product.

What actually breaks in production

The specification tells you how to expose a tool. It does not tell you what happens next, and what happens next is where projects fail.

Illustration
MCP clients
Client

Claude

Remote server, signs in with OAuth

Client

ChatGPT

Remote server, signs in with OAuth

Client

Copilot Studio

Remote server, signs in with OAuth

Streamable HTTP · OAuth

Your MCP server

Tools, auth, approvals

OAuth 2.1, per-tenant tokens, write approval, audit log

Your API calls

Your API

System of record

The API you already have

The server is the layer you own: authentication, tenant isolation and write approval live there, not in the client.

Protocol versions fragment immediately. Our own telemetry currently shows four different MCP protocol revisions in active use across our customer base at the same time — clients on 2026-07-28, others still on 2025-11-25, a long tail on 2025-06-18, and one integrator pinned all the way back to 2024-11-05. A server that assumes a single version breaks for a segment of users you cannot see and will not hear from.

Clients interpret your tools differently. The same MCP server behaves differently in Claude, ChatGPT, Cursor and Microsoft Copilot Studio. We have shipped a compatibility fix for how structured responses were packaged for one client family, discovered only because a customer told us their agent kept falling into an escalation loop. Nobody finds this in testing. You find it when a real user is annoyed.

Auth is the whole game. A hosted MCP server needs OAuth that survives token refresh, multi-tenancy that never leaks one customer's data into another's context, and seat enforcement that matches whatever licensing model the upstream platform uses. In our case that meant syncing against a live user roster and reconciling it with our own billing on every call.

Writes need a human. The moment your server can change data rather than read it, the failure mode stops being an error message and becomes a wrong number that looks correct. Our approach is to make every write show exactly what it will change and wait for explicit approval. Customers have made over two hundred approval decisions through that flow; it is the reason a finance team lets an AI near the books at all.

Tip

The honest test of a working MCP server

Read operations prove the connection works. Write operations, with approval, prove somebody trusts it. In our production data, reads outnumber writes roughly twenty-five to one — but the writes are where the value is defended.

Case study: Nordsynk

Nordbeam built and operates Nordsynk, a hosted Fortnox MCP server and finance-operations platform (read the full case study). Nordsynk connects a company's Fortnox accounting data to Claude, ChatGPT and other MCP clients. A user asks in plain language which customers are late, what was paid to a supplier over the year, or where margin is leaking, and the server reads the underlying invoices, vouchers and supplier invoices before answering.

The scale of that reading is the point. Across the twelve heaviest customers, the server has served over ninety thousand API calls, including more than thirty-eight thousand individual invoice lookups. One customer alone generated over ten thousand calls in a single month. No human opens thirty-eight thousand invoices to answer a question — which is precisely why the answers are worth paying for.

80+
Companies on the platform
10,700
Calls in one month, single customer
95
Named workflows beyond raw API
100%
Writes gated by human approval

What we built, and what we would build for you:

A single code-mode entry point over the full upstream OpenAPI surface, rather than a hand-curated list of twenty tools that goes stale the moment the API changes. On top of that, named workflows for the operations the raw API models badly — bulk supplier-invoice approval and bookkeeping, customer invoice dispatch, payment registration, SIE export. Then OAuth with per-company token handling, seat licensing synced to the upstream platform, write approvals with previews and batch decisions, and usage telemetry detailed enough to answer "what did this customer actually do" months later.

Illustration · example data
Claude

Which customer invoices are more than 30 days overdue?

⚙ fortnox.list_overdue_invoices

3 invoices are overdue, 127,500 SEK in total:

Beta Consulting Ltd
52,500 SEK
Acme Ltd
45,000 SEK
Gamma Partners
30,000 SEK

Create 3 payment reminders?

Writes to Fortnox · needs your approval

Approve
Log
  1. 10:42read invoices (3)
  2. 10:42evidence linked
  3. 10:43write requested
  4. 10:44approved by finance
  5. 10:443 reminders created

Every action is logged with user, time and action.

What the user sees: reads run directly, a write waits for approval, and everything is logged.

“Searching for things in Fortnox used to take us HOURS. Now we can get the same information in minutes.”

Nordsynk customer
verified review on the Fortnox Marketplace, translated from Swedish

How long and how much does an MCP server take?

A pilot takes two to three weeks, a production server six to eight, and a marketplace-ready product ten to twelve. Nordbeam starts with a paid scoping week and gives a fixed quote afterwards.

We start with a paid scoping week rather than a free proposal. You get your API surface mapped, the tool set specified, the auth model decided and a fixed quote. It costs little, and it means neither of us commits to a number before we understand the work.

FeaturePilotProductionMarketplace-ready
Timeline2–3 weeks6–8 weeks10–12 weeks
API coverageOne domainFull surfaceFull surface
Read operations●●●
Write operations with approval—●●
OAuth & multi-tenancy—●●
Client compatibility testing◐●●
Usage telemetry—●●
Licensing & seat enforcement——●
Marketplace listing support——●

A pilot is the right choice when you need something working to show internally before anyone will fund the real thing. Production is the right choice when the server is going in front of customers. Marketplace-ready is what Nordsynk itself is: a licensed, billable product with its own listing.

Every build includes ongoing maintenance, and we do not sell one without it. That is not an upsell. With four protocol versions live simultaneously and client behaviour shifting underneath you, an unmaintained MCP server quietly stops working within months — and the customer blames the server, not the client that changed.

  • TypeScript
  • Model Context Protocol
  • OAuth 2.1
  • Cloudflare Workers
  • OpenAPI
  • Claude
  • ChatGPT
  • Copilot Studio

Who needs an MCP server?

The companies that get the most from an MCP server are those whose customers already ask "can I get this data into ChatGPT?" — SaaS platforms, marketplaces, vertical software, anything with an API and a support inbox that keeps receiving the same question.

It is also for companies whose competitors have started shipping AI access and who would rather own that layer than have a customer build a fragile scraper around it. We have watched two Swedish IT companies build their own MCP servers rather than wait. That is the market speaking.

How long does it take to build an MCP server?
A focused pilot covering one API domain ships in two to three weeks. A production server with OAuth, write safety and client compatibility testing takes six to eight weeks. A licensed, marketplace-listed product takes ten to twelve.
Do we own the code?
Yes. You own the repository and the deployment from day one. We are not building a dependency on us; we are building an asset you keep.
Why do we need ongoing maintenance?
Because the protocol and the clients move. Our production telemetry shows four MCP protocol versions in simultaneous use, and client behaviour changes without notice. An unmaintained server degrades silently rather than failing loudly.
Can you make it safe for write operations?
Yes, and we think it is the only responsible way to ship writes. Every write shows exactly what will change and waits for explicit human approval before anything is committed. That pattern is running in production in our own product today.
What if we already have an API?
That is the ideal starting point. We build the MCP layer over your existing OpenAPI surface rather than asking you to rebuild anything, and add named workflows for the operations your API models awkwardly.
What is the difference between an MCP server and a regular API?
An API is written for developers who read documentation. An MCP server describes its tools to the model itself, so the AI client can discover what is available, call it and read the result. In practice an MCP server usually sits on top of an existing API.
Who builds MCP servers in Sweden?
Nordbeam, based in Gothenburg and Malmö, builds production MCP servers and operates its own, Nordsynk, a hosted Fortnox MCP server. The work is not market-specific, so we also take engagements elsewhere.
Do you work outside Sweden?
Yes. Nordsynk is a Swedish product because Fortnox is a Swedish platform, but MCP work is not market-specific and we take engagements across the Nordics, Germany, the Netherlands and the US.

Tell us what your API does

A short conversation is enough to tell whether an MCP server is worth building for your product, and roughly what it would take. If it isn't worth it, we will say so.

Start a conversation →

Get in Touch

Which workflow should AI improve first?

Book a practical review of one high-value workflow. You'll speak directly with Assim, Nordbeam's founder and lead engineer.
Email directly
Email
hello@nordbeam.io
Locations
Gothenburg & Malmö, Sweden
Response time
Within 24 hours