Agent-native finance ops.
Agent-native finance ops.
Every other invoicing platform's "AI strategy" is a chat box stapled onto their existing product. Guliel ships an MCP server. Point Claude, ChatGPT, or any MCP-compatible agent at it, authenticate, and the agent operates your finance ops natively. Same actions, same compliance, same audit trail as the in-product AI and the REST API.
Status — the MCP server is in development alongside the REST API. The tool surface described below is the design we're building toward. Early access for agent-building partners is available on request — hello@guliel.com. The changelog flags general-availability when it lands.
What MCP is, briefly
Model Context Protocol is the open standard for AI agents to talk to external systems. The agent discovers what tools the server exposes, calls them with structured arguments, gets structured results back. Tools are deterministic, typed, and auditable — the agent isn't scraping a website or hallucinating an API. It's calling functions with names.
For Guliel, MCP means an agent can list your invoices, draft a new one, log an expense from a forwarded receipt, order from a supplier, or run a report — without us writing a bespoke integration with whichever AI vendor you use this quarter.
Available tools
A non-exhaustive list of the tools the server exposes. Names are stable; new tools get added with every feature ship.
| Tool | What it does |
|---|---|
invoice.draft |
Build an invoice in draft state. Returns the resource for review or issuance. |
invoice.issue |
Issue a drafted or new invoice. Triggers country-compliant document generation. |
invoice.list |
Filtered list of invoices for the active organization. |
invoice.send |
Send an issued invoice (email, Peppol, or in-system delivery). |
expense.log |
Log an expense — manual entry, from a URL, or from a base64 attachment for OCR. |
expense.list |
Filtered list of expenses with the source-document references. |
customer.create, customer.find |
Customer record management. |
supplier.order |
Draft and optionally send a supplier order. Handles cross-org delivery when the supplier is on Guliel. |
supplier.order.list |
List orders by status, supplier, or order date. |
item.list, item.update_stock |
Logistics catalog queries and stock movements. |
report.run |
Generate a report by ID with parameters. Returns the structured data and a PDF URL. |
report.list |
List of available reports (filtered by org country). |
automation.create, automation.list |
Build or query automations. |
org.list, org.switch |
Multi-org context management. |
Every tool returns structured JSON with consistent error shapes. The agent gets the same fidelity a developer using the REST API gets.
Compatibility
The server speaks MCP over the standard transports — stdio for local subprocess setups (Claude Desktop, MCP-compatible IDEs), HTTP/SSE for remote agent setups (cloud-hosted ChatGPT custom GPTs, agent frameworks).
Tested with:
- Claude Desktop — add Guliel to the MCP config, sign in once, the agent has the full tool surface.
- ChatGPT — connect via the MCP HTTP transport once your account supports it.
- Custom agents — any MCP client library works. Tooling overhead is whatever your language's MCP SDK requires.
We don't lock to one vendor. The protocol is open and the server doesn't care which agent on the other end.
Auth model
OAuth 2.0 for interactive agents (Claude Desktop, ChatGPT, end-user-facing setups). The agent triggers the authorization flow, the user signs in to Guliel and approves, the token gets stored in the agent's credential store. Token refresh is automatic. Revocation is per-token from the dashboard.
Personal Access Tokens for non-interactive agents (CI bots, internal scripts, scheduled jobs). Generate a PAT scoped to one org, drop it in the agent's config, done. PATs don't expire unless you set an expiration; revocable from the dashboard.
Per-org scoping applies. An agent authenticated to org A can't touch org B's data. Multi-org agents authenticate per-org and switch context with org.switch.
Setup
The Claude Desktop config snippet for the impatient:
{
"mcpServers": {
"guliel": {
"command": "npx",
"args": ["-y", "@guliel/mcp-server"],
"env": { "GULIEL_PAT": "your_pat_here" }
}
}
}
For OAuth setups, omit the GULIEL_PAT env and the server walks the agent through the authorization flow on first connection. For HTTP transports, point your agent at https://mcp.guliel.com and complete the OAuth dance from there.
The full MCP setup guide is in the developer docs, linked from /product/api. Tool schemas are published — your agent discovers them at connection time.
Pricing
MCP access is included on Standard ($20 / org / month) and Premium ($99 / org / month). Free tier has access for evaluation with the same metering that applies to the AI Companion (10 messages / month — relevant when the agent on the other end is using the same token budget). Full table on /pricing.
MCP tool calls themselves are not separately metered. What's metered is the underlying actions — invoices issued, expenses scanned, etc. — under the same quotas the rest of the platform uses. An agent that drafts a hundred invoices and discards them costs you nothing. An agent that issues a hundred invoices counts as a hundred invoices.
FAQ
Why MCP instead of a custom plugin per AI vendor?
Because every vendor's plugin format dies eventually. MCP is open, vendor-neutral, and getting adoption from the major model providers. Building once for MCP and getting Claude, ChatGPT, and the open agent ecosystem at the same time is the right trade.
Can my agent issue invoices without me approving them?
That's a token scope and a per-org gate. PATs can be issued with read-only scope (*:read only). For tokens with write scope, the same approval gates that apply to the in-product AI apply to the MCP tools — sending invoices, sending external email, mutating pricing default to confirm. You can relax the gate per token if you want unattended operation.
Does the agent see other organizations' data?
No. Tokens are org-scoped. An agent acting on org A's behalf cannot read or write org B's resources, even if the same user owns both. Multi-org operations require explicit org.switch calls and the agent re-authenticating context.
What's the latency on MCP tool calls?
Tool calls hit the same backend as the REST API. Read tool latency is sub-100ms typical. Write tool latency depends on the action — issuing an invoice is sub-1s, scanning a receipt is bounded by the DocAI service. The MCP layer adds no measurable overhead.
Will MCP work if I'm self-hosting an agent?
Yes. The HTTP/SSE transport is reachable from any agent runtime. Open-source agent frameworks (LangGraph, AutoGen, custom Python) work the same way as the commercial agents do. The OAuth flow handles browser-based authorization; PATs handle headless.
Is this different from the REST API or just a wrapper?
It's not a wrapper. MCP exposes a curated, agent-friendly subset of the platform's actions with semantic tool names (invoice.draft rather than POST /v1/invoices?status=draft) and richer descriptions for the agent's tool-selection logic. The actions land in the same backend as the REST API, so the audit trail is unified — you'll see MCP-originated invoices in the same dashboard as API-originated and UI-originated ones.
Get an API key from your dashboard. Pricing at /pricing.
Last updated: