MCP

What the MCP server will expose and how a client connects.

fikadesk is an MCP server and an MCP client. The design is settled in an accepted ADR; the server itself is not shipped yet. This page describes the contract so you can plan against it.

What the server exposes

The server turns four product surfaces into tools: conversations, contacts, articles and reporting. That is the whole surface. There are no bespoke vertical tools; every vertical gets order-aware actions through the same four.

  • conversations to read, assign, reply and close threads.
  • contacts to read and change contacts and companies.
  • articles to read and publish help-center content.
  • reporting to read rollups.

The tool argument schemas are the same Zod objects that validate the REST endpoints. CI runs toJSONSchema() over every exported protocol schema and fails on throw, so a .refine() that exists on the REST path cannot silently disappear from the MCP tool schema.

Schema-representability

The ADR pins the wire protocol to schemas that JSON Schema can express. Zod lists bigint, int64, symbol, undefined, void, date, map, set, transform, nan and custom as unrepresentable, so protocol types are authored to avoid them. Adding a tool is one object, and three surfaces update: the REST route, the MCP tool and the mobile model.

Connecting a client

The client half of the contract is Streamable HTTP with OAuth, per-tenant tool allowlists, argument schemas, dry-run and confirm flags, rate limits and spend attribution. That describes how fikadesk reaches tenant systems as an MCP client.

Note

There is no live server to connect a client to yet. The server transport is internal to the api and swappable, so the wire protocol can change without touching the tool surface. Check this page after the next release for the endpoint and a connection example.