Skip to main content

Overview

The Chift Model Context Protocol (MCP) defines a set of tools you can use to build AI Agents that can interact with the different integrations offered by Chift and search in our documentation through one MCP server. It exposes the Chift Unified API to any LLM provider supporting the MCP protocol like Claude, Cursor or Windsurf. Chift MCP server can be found here.

Getting started

You can use the Chift MCP server in two ways:
  1. Remote Server (Recommended) - Connect directly to our hosted MCP server
  2. Local Installation - Install and run the server locally using the open-source Python package
Choose the option that best fits your needs: The remote server is the easiest way to get started with Chift MCP. No local installation required!

Prerequisites

  • A Chift account with at least one consumer (organization) that has active integrations
  • An MCP-compatible client (e.g., Claude Desktop, Cursor, VS Code, Claude Code, or any AI framework supporting MCP)

Authentication

There are two ways to authenticate with the remote MCP server:

Using with AI frameworks

You can integrate the Chift MCP server with popular AI frameworks to build intelligent applications that interact with Chift’s Unified API.
Connect to the Chift MCP server using the Vercel AI SDK:
import { createMCPClient } from "@ai-sdk/mcp";
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";

async function getTools() {
  const response = await fetch("https://api.chift.eu/mcp-token", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      clientId: "your_client_id",
      clientSecret: "your_client_secret",
      accountId: "your_account_id",
      consumerId: "your_consumer_id",
    }),
  });

  const { access_token } = await response.json();

  const mcpClient = createMCPClient({
    transport: {
      type: "http",
      url: "https://mcp.chift.eu/mcp",
      headers: {
        Authorization: `Bearer ${access_token}`,
      },
    },
  });

  return await mcpClient.listTools();
}

// Use with AI SDK
const result = await generateText({
  model: openai("gpt-4"),
  tools: await getTools(),
  prompt: "List all accounting connections for my consumer",
});
The AI framework examples above use the legacy token method for simplicity. For production applications, we recommend implementing OAuth 2.0.

IDE configuration

Add the following to your claude_desktop_config.json:
{
  "mcpServers": {
    "chift-remote": {
      "command": "/path/to/npx",
      "args": [
        "mcp-remote",
        "https://mcp.chift.eu/",
        "--transport",
        "http-only",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer <your_mcp_access_token>"
      }
    }
  }
}
You will be prompted to log in and authorize access when you first use the MCP tools.
All IDEs handle the OAuth flow automatically — you will be prompted to log in and authorize on first use. If you prefer to use a legacy token instead, add an Authorization: Bearer <your_mcp_access_token> header to the configuration above.

Setup steps

  1. Choose your preferred IDE from the tabs above
  2. Either use the one-click install link or manually add the configuration
  3. If using OAuth: you will be prompted to log in and authorize on first use
  4. If using legacy tokens: get your token from the /mcp-token endpoint first
  5. Restart your IDE/application
  6. You should see the Chift tools available in the chat interface
The remote server setup is complete! You can now use Chift MCP tools in your chosen IDE without any local dependencies.

Local installation

You can also run the MCP server locally in a stdio environment using the open-source Python package. Local installation is ideal if you want better AI support during integration of the Chift API. Running the MCP server locally allows you to:
  • Choose between limiting the MCP server to a specific consumer or allowing access to all
  • Search and reference the entire Chift Documentation directly from your IDE for improved AI context
  • Customize your setup for specific workflows
The local MCP server source code can be found here.

Prerequisites

  • A Chift account with client credentials (client ID, client secret, account ID, and consumer ID)
  • Python 3.11 or higher
  • uv package manager
More information about local installation can be found here.

Installation steps

  1. Install the required dependencies (Python 3.11+ and uv)
  2. Install the Chift MCP server package
  3. Configure your environment variables
  4. Set up your client configuration

Using with AI frameworks (local installation)

When running the MCP server locally, you can integrate it with popular AI frameworks using stdio transport. Local installation enables documentation search and provides better control over your setup.
For local installation, use stdio transport:
import { createMCPClient } from "@ai-sdk/mcp";
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";

async function getTools() {
  const mcpClient = createMCPClient({
    command: "uvx",
    args: ["chift-mcp-server@latest"],
    env: {
      CHIFT_CLIENT_SECRET: process.env.CHIFT_CLIENT_SECRET,
      CHIFT_CLIENT_ID: process.env.CHIFT_CLIENT_ID,
      CHIFT_ACCOUNT_ID: process.env.CHIFT_ACCOUNT_ID,
      CHIFT_CONSUMER_ID: process.env.CHIFT_CONSUMER_ID,
      CHIFT_SEARCH: "true",
    },
  });

  return await mcpClient.listTools();
}

const result = await generateText({
  model: openai("gpt-4"),
  tools: await getTools(),
  prompt: "Search the documentation for webhook authentication",
});
For local installations, you can enable documentation search by setting CHIFT_SEARCH=true in your environment variables. This allows the MCP server to search and reference the entire Chift Documentation directly from your IDE.

IDE configuration

This is an example configuration for Claude Desktop when using local installation:
{
  "mcpServers": {
    "chift": {
      "command": "/path/to/uvx",
      "args": ["chift-mcp-server@latest"],
      "env": {
        "CHIFT_CLIENT_SECRET": "your_client_secret",
        "CHIFT_CLIENT_ID": "your_client_id",
        "CHIFT_ACCOUNT_ID": "your_account_id",
        "CHIFT_CONSUMER_ID": "your_consumer_id", // Optional
        "CHIFT_SEARCH": true // Optional, defaults to false
      }
    }
  }
}

Setup steps

  1. Install Python 3.11+ and uv on your system
  2. Install the Chift MCP server: uvx chift-mcp-server@latest
  3. Set up your environment variables (see below)
  4. Choose your preferred IDE from the tabs above and add the configuration
  5. Replace the credential placeholders with your actual values
  6. Restart your IDE/application
  7. You should see the Chift tools available in the chat interface

Environment variables for local installation

The following environment variables are required for local installation:
CHIFT_CLIENT_SECRET=your_client_secret
CHIFT_CLIENT_ID=your_client_id
CHIFT_ACCOUNT_ID=your_account_id
CHIFT_CONSUMER_ID=your_consumer_id  # Optional
CHIFT_SEARCH=true # Optional, defaults to false
Local installation is complete! You now have full control over your MCP server instance and can use Chift MCP tools in your chosen IDE.

Other LLM providers

The Chift MCP server works with any LLM provider that supports the MCP protocol, not just Claude Desktop. We have elaborated on several examples (PydanticAI, Copilot, …) here.

Available tools

The Chift MCP Server dynamically generates tools based on the Chift OpenAPI specification. These tools provide access to various Chift API endpoints and include operations for:
  • Retrieving financial data
  • Managing your financial connections
  • Creating new financial records (invoices, payments, etc.)
  • Updating existing records
  • And much more…
All our endpoints documented in our API reference can be accessed through the Chift MCP server. The tools available to you depend on the scopes granted during authentication — you will only see tools for the verticals and operations you have been authorized for. Because the tools mirror the Unified API one-to-one, an agent can both read and write across your integrations. For example, asking an assistant to create an invoice walks through the same steps you would: it locates the customer, checks the VAT and revenue coding already used in the ledger, and posts a consistent invoice.
An AI assistant creating an invoice through the Chift MCP server, locating the customer and posting it to the accounting system

Advanced configuration

DataLayer integration

If the DataLayer is active on the consumer you authorized, the MCP server automatically uses it as the source of truth for read operations. This means your AI agent’s queries are served from Chift’s synced data store rather than hitting the source accounting system live on every request, resulting in faster and more consistent responses. You do not need to configure anything for this to work. When the consumer has a datalayer sync enabled, the MCP server routes all requests through the data layer.
The data layer is ideal for AI agents that need to compute over large amounts of financial data. Learn more about how it works in the DataLayer overview.

Function configuration (local installation only)

For local installations, you can customize which operations are available for each domain. By default, all operations are enabled for all domains:
{
  "accounting": ["get", "create", "update", "add"],
  "commerce": ["get", "create", "update", "add"],
  "invoicing": ["get", "create", "update", "add"],
  "payment": ["get", "create", "update", "add"],
  "pms": ["get", "create", "update", "add"],
  "pos": ["get", "create", "update", "add"]
}
This can be customized using the CHIFT_FUNCTION_CONFIG environment variable. More details can be found here.
Function configuration is only available for local installations. The remote server uses scope-based access control to determine which operations are available.