MCP server

Plug your AI assistant into Guliel.

Every Guliel REST endpoint shows up as an MCP tool. Claude Desktop, Claude Code, Cursor, ChatGPT, and any other MCP-aware client can read and write invoices, expenses, customers, suppliers, orders — anything in your workspace — using natural language. OAuth 2.0 with PKCE handles auth; you pick which organizations and scopes the agent gets when you connect.

What does “Guliel as an MCP server” mean?

MCP — the Model Context Protocol — is the open standard MCP-aware AI clients use to talk to external systems. When you connect Guliel as an MCP server, your agent gains a tool for every REST route on this API. Asking “create a draft invoice for Acme” becomes a invoices.create call. “Show last month's travel expenses” becomes expenses.list.

The full tool catalog is public — /api/mcp/tools — and a quick way to see what an agent can do without connecting first.

Connect a client

Claude Desktop

macOS, Windows, Linux — the easiest one

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows). Add Guliel under mcpServers:

claude_desktop_config.json
{
  "mcpServers": {
    "guliel": {
      "command": "npx",
      "args": ["-y", "@guliel/mcp-server"]
    }
  }
}

Restart Claude Desktop. The first time you ask Claude to do something with Guliel — e.g. “list my customers”— a browser window opens. Sign in, pick which organizations + scopes to grant, and that's it.

Claude Code

The Anthropic CLI — connect with one command

From any project directory, run:

claude mcp add guliel npx -y @guliel/mcp-server

That registers Guliel in the project's .mcp.json. To make it available across every project on this machine:

claude mcp add guliel --scope user npx -y @guliel/mcp-server

Then in any Claude Code session, the first tool call kicks off the OAuth flow. You can confirm Guliel is registered with claude mcp list.

Cursor

The IDE — drop Guliel into your editor

Edit ~/.cursor/mcp.json:

~/.cursor/mcp.json
{
  "mcpServers": {
    "guliel": {
      "command": "npx",
      "args": ["-y", "@guliel/mcp-server"]
    }
  }
}

Reload Cursor. The agent picks up the new tools on next chat.

ChatGPT — cloud agents

No local install. Add the remote MCP URL.

In ChatGPT, open Settings → Connectors and add a new MCP connector with this URL:

https://guliel.com/api/mcp/sse

ChatGPT discovers our OAuth metadata at /.well-known/oauth-authorization-server and runs the consent dance inline. After you authorize, every Guliel tool is callable from a regular ChatGPT conversation.

Continue / other MCP clients

Anything that speaks the stdio transport works

Continue's .continue/config.json takes the standard MCP server descriptor:

.continue/config.json
{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "npx",
          "args": ["-y", "@guliel/mcp-server"]
        }
      }
    ]
  }
}

For any other client, point it at npx -y @guliel/mcp-server as an MCP stdio server. The bridge handles the OAuth flow on first run.

Try a prompt

Once Guliel is connected, paste this into your MCP client to see the bridge in action:

Create a draft invoice for Acme Corp:
- 5 hours of consulting at $200/hr
- 1 license at $1,200
- net 30 due date

Then list the last 5 expenses tagged "travel" so I can attach receipts.

Connect to a non-prod deployment

Self-hosting, staging, or any other Guliel instance? Override the host via the GULIEL_HOST environment variable. The bridge keeps a separate credential entry per host so you can have prod and staging connected at the same time.

claude_desktop_config.json — staging entry
{
  "mcpServers": {
    "guliel-staging": {
      "command": "npx",
      "args": ["-y", "@guliel/mcp-server"],
      "env": { "GULIEL_HOST": "https://staging.guliel.com" }
    }
  }
}

Manage your connections

Every consent grant is a row at /dashboard/developer under the MCP clients tab. Revoke the authorization there and every active access + refresh token under it is invalidated immediately — the agent sees a 401 on its next call.

From the bridge side, guliel-mcp logout wipes the local credential cache; guliel-mcp login re-runs the OAuth flow.

OAuth discovery

Guliel publishes a standard RFC 8414 authorization-server metadata document. MCP clients that support OAuth auto-discovery (ChatGPT, Cursor, Claude Web) read this once to learn every endpoint:

curl https://guliel.com/.well-known/oauth-authorization-server