Connect ProfitSync to AI apps and agents
ProfitSync runs a remote MCP server. Claude, ChatGPT, Cursor, VS Code and any other client that speaks the Model Context Protocol can read and record a person's books — only the workspaces they choose, at the access level they choose.
MCP server URL: https://profitsync.net/api/mcp
Connect a client
Claude
claude.ai, Claude Desktop and Claude mobile
- Open Customize → Connectors, find ProfitSync.net in the directory and choose Connect.
- Until the listing is live, choose + → Add custom connector, name it
ProfitSync, paste the server URL and choose Continue. Keep sign-in on and the OAuth client on Use Claude's published identity, then choose Add. - Sign in to ProfitSync, pick the workspaces Claude may use and set each to View only or View and edit.
- In a chat, open + → Connectors and turn ProfitSync on.
Free accounts can add one custom connector. On Team and Enterprise an owner adds it under Organization settings → Connectors first; members then choose Connect.
Claude Code
Terminal, IDE extensions and the desktop app
- Add the server.
--scope usermakes it available in every project. - Run
/mcpin Claude Code, pick profitsync and finish the sign-in in your browser — or runclaude mcp login profitsync.
claude mcp add --transport http --scope user profitsync https://profitsync.net/api/mcp
ChatGPT
chatgpt.com
- Once ProfitSync is listed: open Plugins in the sidebar, search for ProfitSync, choose Install plugin, then Connect.
- Until then, add it as a custom MCP server: in Plugins choose + → Add custom MCP server, paste the server URL under Connection and use OAuth. Some workspaces still show this under Settings → Apps → Advanced settings → Developer mode.
- Sign in to ProfitSync when asked and pick the workspaces ChatGPT may use.
- In a chat, type
@ProfitSyncor pick it from the + menu.
Custom MCP servers depend on your ChatGPT plan, and on Business and Enterprise an admin must enable developer mode. OpenAI's guide has the current steps.
Cursor
Cursor editor and the Cursor CLI
- Use the install link, or add the server to
~/.cursor/mcp.json(every project) or.cursor/mcp.json(one project). - Cursor opens the ProfitSync sign-in when the server first needs it. From the CLI, run
agent mcp login profitsync.
{
"mcpServers": {
"profitsync": {
"url": "https://profitsync.net/api/mcp"
}
}
}
VS Code
GitHub Copilot agent mode
- Use the install link, run the command below, or add the server to
.vscode/mcp.json. - Start the server. VS Code opens your browser for the ProfitSync sign-in, and the connection appears in the Accounts menu.
code --add-mcp '{"name":"profitsync","type":"http","url":"https://profitsync.net/api/mcp"}'{
"servers": {
"profitsync": {
"type": "http",
"url": "https://profitsync.net/api/mcp"
}
}
}On Copilot Business and Enterprise an admin must allow MCP servers.
Codex
Codex CLI, the IDE extension and the ChatGPT desktop app
- Add the server, then sign in — Codex opens your browser for the ProfitSync consent screen.
- In the IDE extension or the desktop app: Settings → MCP servers → Add server, then Authenticate.
codex mcp add profitsync --url https://profitsync.net/api/mcp
codex mcp login profitsync[mcp_servers.profitsync]
url = "https://profitsync.net/api/mcp"
Gemini CLI
Terminal
- Add the server, or put it in
~/.gemini/settings.json. - The first call opens your browser for the ProfitSync sign-in. To sign in by hand, run
/mcp auth profitsync.
gemini mcp add --transport http -s user profitsync https://profitsync.net/api/mcp{
"mcpServers": {
"profitsync": {
"httpUrl": "https://profitsync.net/api/mcp"
}
}
}
Devin Desktop
Formerly Windsurf — the desktop app and the Devin CLI
- Add the server from the Devin CLI, or put it in
~/.config/devin/mcp_config.json(Windows:%APPDATA%\devin\mcp_config.json). - Choose Authenticate when the server shows Needs auth, or run
devin mcp login profitsync.
devin mcp add -s user profitsync https://profitsync.net/api/mcp
devin mcp login profitsync{
"mcpServers": {
"profitsync": {
"url": "https://profitsync.net/api/mcp"
}
}
}On Enterprise plans an admin must turn MCP on.
Any MCP client
Anything that supports remote MCP servers with OAuth
- Point the client at the server URL with the Streamable HTTP transport. It discovers the authorization server, registers itself and opens the ProfitSync consent screen.
- To try the tools by hand, run the MCP Inspector (Node 22.19 or later) and choose Connect.
npx @modelcontextprotocol/inspector --server-url https://profitsync.net/api/mcp --transport http
Authentication
- OAuth 2.1 authorization code flow with PKCE (
S256only). There are no API keys: every connection is a person signing in and choosing what to share. - Apps identify themselves with a Client ID Metadata Document (an HTTPS URL as
client_id— how ChatGPT, Claude and Claude Code connect) or by registering at/api/oauth/register. Public clients usetoken_endpoint_auth_method: none;client_secret_postandclient_secret_basicare also accepted. - Redirect URIs must be HTTPS, a loopback address (
http://127.0.0.1orhttp://localhost, any port) or an app's own private-use scheme. - Send
resource=https://profitsync.net/api/mcpon the authorization and token requests (RFC 8707). - Scopes:
profitsync:workspaces:readandprofitsync:workspaces:write. The requested scope is only a hint — on the consent screen the person picks each workspace and sets it to View only or View and edit, and the connection gets write access only if at least one workspace allows it. - Access tokens are opaque bearer tokens valid for 1 hour. Refresh tokens last 90 days and rotate on every use; replaying an already-used refresh token revokes the whole connection.
- Company workspaces join only after an owner or admin turns on Connected apps for that company. Every tool call re-checks the connection against the person's current membership, role and the company's policy.
- People see and revoke connections in ProfitSync under Settings → Connected apps. Revocation stops refresh too.
- POST
https://profitsync.net/api/mcp— MCP server (Streamable HTTP, JSON responses) - GET
https://profitsync.net/.well-known/oauth-protected-resource/api/mcp— Protected resource metadata (RFC 9728) - GET
https://profitsync.net/.well-known/oauth-authorization-server— Authorization server metadata (RFC 8414) - GET
https://profitsync.net/api/oauth/authorize— Authorization endpoint (opens the consent screen) - POST
https://profitsync.net/api/oauth/token— Token endpoint (authorization_code, refresh_token) - POST
https://profitsync.net/api/oauth/register— Dynamic client registration (RFC 7591) - POST
https://profitsync.net/api/oauth/revoke— Token revocation (RFC 7009) - GET
https://profitsync.net/api/public/mcp-tools— This tool reference as JSON (no sign-in)
Conventions
- Pick a workspace on every call. Call
list_workspacesfirst. Every other tool takes aworkspace_idfrom it — there is no "active workspace" to switch, and a workspace that was not shared is refused without being named. - Writes are idempotent. Every write takes a
request_id(a new UUID per action). Repeating a call with the samerequest_idand arguments returns the first result instead of acting twice; the samerequest_idwith different arguments returns409. - Results. A tool result carries
structuredContent: { status, data }and the same JSON as text.statusfollows HTTP (200,400,403,404,409…) andisErroris true from400up. - Reads are snapshots. Read tools return what ProfitSync has recorded. They never post due recurring entries, file card statements or run autopay, so figures can lag until the person next opens ProfitSync.
- Money, dates and currency. Amounts are decimal numbers in the currency's own units (
12.5), currencies are ISO 4217 codes (USD), dates areYYYY-MM-DD. Reports convert to the workspace's reporting currency and list anything without an exchange rate as excluded. - Workspace types. Personal and company workspaces share most tools. Savings spaces are personal-only; clients, quotations and client spend caps are company-only. Each tool below says which it serves.
- Bookkeeping, not banking. No tool moves real money. A transfer, payment or new account is a record in the person's books. Full account and routing numbers and card numbers are never returned.
Errors and limits
401— No token, or an expired or revoked one. The response carriesWWW-Authenticatewith the resource metadata URL — refresh, or run the OAuth flow again.403— Write tool on a read-only connection (insufficient_scope, with a fresh challenge in_meta["mcp/www_authenticate"]), a workspace that was not shared, a role that cannot edit, or a tool that does not serve that workspace type.400— Arguments that fail the tool's schema.data.issueslists each path and message.409— Arequest_idreused for a different action, or one whose outcome is still uncertain — inspect the records before retrying.413— A request body over 256 KB.429— More than 120 MCP requests a minute on one connection (Retry-After: 60).
Call the server directly
1. Discover the authorization server
curl https://profitsync.net/.well-known/oauth-protected-resource/api/mcp
curl https://profitsync.net/.well-known/oauth-authorization-server
2. Register your app (skip if you host a Client ID Metadata Document)
curl -X POST https://profitsync.net/api/oauth/register \
-H 'Content-Type: application/json' \
-d '{"client_name":"My app","redirect_uris":["http://127.0.0.1:8976/callback"]}'
3. Send the person to the consent screen (PKCE S256)
https://profitsync.net/api/oauth/authorize?response_type=code
&client_id=$CLIENT_ID
&redirect_uri=http://127.0.0.1:8976/callback
&code_challenge=$CODE_CHALLENGE&code_challenge_method=S256
&scope=profitsync:workspaces:read%20profitsync:workspaces:write
&resource=https%3A%2F%2Fprofitsync.net%2Fapi%2Fmcp
&state=$STATE
4. Exchange the code for tokens
curl -X POST https://profitsync.net/api/oauth/token \
-d grant_type=authorization_code -d code=$CODE \
-d client_id=$CLIENT_ID -d code_verifier=$CODE_VERIFIER \
-d redirect_uri=http://127.0.0.1:8976/callback \
-d resource=https://profitsync.net/api/mcp
5. Call a tool
curl -X POST https://profitsync.net/api/mcp \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_workspaces","arguments":{}}}'
Tool reference
The same catalog as JSON: https://profitsync.net/api/public/mcp-tools
list_workspaces — List my ProfitSync.net workspaces
Read. Workspaces. List workspaces available under the current OAuth consent, with type, role, reporting currency and plugin support. This does not switch the web app's active workspace.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_workspaces",
"arguments": {}
}
}
list_transactions — List transactions
Read. Transactions. List selected-workspace ledger entries. Global results collapse splits and exclude transfers; account/card views include transfer legs. Page size is 20. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesquery(object)query.clientId(string (uuid))query.wealthAccountId(string (uuid))query.cardId(string (uuid))query.recurringRuleId(string (uuid))query.groupId(string (uuid))query.search(string)query.type(enum) One of: incoming, outgoing.query.page(integer)query.sort(enum) One of: date_asc, date_desc, amount_asc, amount_desc.query.category(string)query.tag(string)query.from(string (date))query.to(string (date))
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_transactions",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"query": {
"page": 1
}
}
}
}
get_transaction — Get transaction
Read. Transactions. Read one transaction, native currency and reporting value; missing FX rates may be refreshed.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_transaction",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
}
}
}
create_transaction — Record income or expense
Write. Transactions. Record a positive amount on a bank, cash or credit-card account. Takes wealth_account_id or card_id; company workspaces also require client_id. Refunds must be incoming. Savings-space, debt and transfer entries are not recorded here.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacestype(enum, required) One of: incoming, outgoing.amount(number, required)client_id(string (uuid))wealth_account_id(string (uuid))card_id(string (uuid) | null)description(string)category(string)tags(string[])date(string (date))kind(enum) One of: standard, refund.contact_ids(string (uuid)[]) — IDs from list_contacts. Replaces the record's linked contacts; an empty list removes them allrequest_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_transaction",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"type": "incoming",
"amount": 100,
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
update_transaction — Update transaction
Write. Transactions. Edit an existing transaction. Transfer, debt-payment and system-row money fields are locked; labels may be editable. Changing currency requires restating the amount.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)type(enum) One of: incoming, outgoing.amount(number)client_id(string (uuid))wealth_account_id(string (uuid))card_id(string (uuid) | null)description(string)category(string)tags(string[])date(string (date))kind(enum) One of: standard, refund.contact_ids(string (uuid)[]) — IDs from list_contacts. Replaces the record's linked contacts; an empty list removes them allrequest_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_transaction",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
delete_transaction — Move transaction to trash
Write. Transactions. Move a transaction to trash and reverse its balance effect. A split or transfer removes its entire group. System rows and debt repayments are not deleted here.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_transaction",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
list_budgets — List spending budgets
Read. Budgets. List limits, spending and remaining amounts for all four view windows. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspaces
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_budgets",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
get_budget — Get spending budget
Read. Budgets. Read one budget, spending history and recent entries. Child budgets inherit their parent's window and currency.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_budget",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
}
}
}
create_budget — Create spending budget
Write. Budgets. Create a spending limit in the reporting currency. Empty categories means overall spending; only one active overall budget is allowed. Category budgets need a name; sibling category scopes must be disjoint.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesname(string)amount(number, required)icon(string)period(enum) One of: daily, weekly, monthly, yearly, once.start_date(string (date) | null)end_date(string (date) | null)categories(string[])parent_id(string (uuid) | null)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_budget",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"amount": 100,
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
update_budget — Update spending budget
Write. Budgets. Edit a spending budget. Closing or reopening a parent also changes its children. Sub-budgets inherit the parent's window and currency.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)name(string)amount(number)icon(string)period(enum) One of: daily, weekly, monthly, yearly, once.start_date(string (date) | null)end_date(string (date) | null)categories(string[])parent_id(string (uuid) | null)status(enum) One of: active, closed.request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_budget",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
delete_budget — Delete spending budget
Write. Budgets. Delete a budget and all its sub-budgets. Ledger transactions are retained.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_budget",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
list_accounts — List cash and bank accounts
Read. Accounts & transfers. List recorded workspace accounts and balances. Full account and routing numbers are withheld. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspaces
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_accounts",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
get_account — Get account
Read. Accounts & transfers. Read an account and its currency-lock status.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_account",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
}
}
}
create_account — Create account
Write. Accounts & transfers. Create a bank, cash or credit-card ledger account. Opening balances create system entries. This records bookkeeping; it does not open a real bank account.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacestype(enum, required) One of: bank, cash, credit_card.bank_name(string)nickname(string)note(string)icon(string)color(string)color_style(enum) One of: subtle, bold.credit_limit(number)current_debt(number)statement_closing_day(integer)payment_due_day(integer)opening_balance(number)currency_code(string) — ISO currency code; amounts use this currency's precisionstatement(object | null)statement.balance(number, required)statement.closing_date(string (date), required)statement.due_date(string (date), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_account",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"type": "bank",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
update_account — Update account
Write. Accounts & transfers. Edit account details, reconcile its balance, set the default, or archive/restore it. Reconciliation creates a system adjustment; currency cannot change after financial history exists.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)bank_name(string)nickname(string)note(string)icon(string)color(string)color_style(enum) One of: subtle, bold.credit_limit(number)current_debt(number)statement_closing_day(integer)payment_due_day(integer)current_balance(number)currency_code(string) — ISO currency code; amounts use this currency's precisionarchive(boolean)restore(boolean)set_default(boolean)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_account",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
delete_account — Remove or close account
Write. Accounts & transfers. Delete a clean account or archive one with history/cards; may close linked cards and stop their autopay. The default cash wallet is permanent; a card with debt cannot be closed.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_account",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
list_recurring — List recurring entries
Read. Recurring entries. List recurring rules and their last error. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspaces
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_recurring",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
get_recurring — Get recurring entry
Read. Recurring entries. Read a recurring rule and its generated entries. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_recurring",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
}
}
}
create_recurring — Create recurring entry
Write. Recurring entries. Create a recurring income or expense. A past start date immediately catches up due entries. An optional debt_account_id makes a forward-only repayment, requiring an eligible paying bank/cash account.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesname(string, required)type(enum, required) One of: incoming, outgoing.amount(number, required)category(string)frequency_unit(enum, required) One of: day, week, month, year.frequency_interval(integer)start_date(string (date), required)end_date(string (date) | null)wealth_account_id(string (uuid) | null)card_id(string (uuid) | null)debt_account_id(string (uuid))request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_recurring",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"name": "Example",
"type": "incoming",
"amount": 100,
"frequency_unit": "day",
"start_date": "2026-10-01",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
update_recurring — Update recurring entry
Write. Recurring entries. Edit a recurring rule; due entries may be recorded immediately. Debt repayments must retain an eligible account and direction.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)name(string)type(enum) One of: incoming, outgoing.amount(number)category(string)frequency_unit(enum) One of: day, week, month, year.frequency_interval(integer)start_date(string (date))end_date(string (date) | null)wealth_account_id(string (uuid) | null)card_id(string (uuid) | null)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_recurring",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
set_recurring_active — Pause or resume recurring entry
Write. Recurring entries. Pause or resume a recurring rule. Resuming a normal rule catches up missed entries; debt repayment resumes no earlier than today.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)active(boolean, required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "set_recurring_active",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"active": true,
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
link_recurring_debt — Link recurring entry to debt
Write. Recurring entries. Link a recurring rule to a debt, or unlink with null. Existing due entries are recorded first; only future entries change shape.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)debt_account_id(string (uuid) | null, required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "link_recurring_debt",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"debt_account_id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
delete_recurring — Delete recurring entry
Write. Recurring entries. Stop future occurrences by deleting the rule. Existing ledger transactions remain.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_recurring",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
list_debts — List debts and receivables
Read. Debts & loans. List amounts owed and money owed to the user. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspaces
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_debts",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
get_debt — Get debt
Read. Debts & loans. Read debt terms, balances and repayment schedule. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_debt",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
}
}
}
create_debt — Record debt or receivable
Write. Debts & loans. Record a debt with a name or counterparty and current balance. Optional disbursement records money already received, not a real bank transfer. link_rule_id and repayment are mutually exclusive.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesname(string)counterparty(string)kind(string)currency(string) — ISO currency code; amounts use this currency's precisioncurrent_balance(number, required)original_amount(number | null)annual_rate_pct(number | null)rate_type(enum | null) One of: fixed, variable.start_date(string (date) | null)maturity_date(string (date) | null)remaining_installments(integer | null)notes(string)balance_is_estimate(boolean)payment_amount(number | null)payment_frequency(enum | null) One of: weekly, biweekly, monthly, quarterly, yearly, irregular.next_due_date(string (date) | null)icon(string)repayment(object) — enabled=false stops it; otherwise it needs the paying account, amount, frequency and start daterepayment.enabled(boolean)repayment.from_account_id(string (uuid))repayment.amount(number)repayment.frequency_unit(enum) One of: day, week, month, year.repayment.frequency_interval(integer)repayment.start_date(string (date))repayment.end_date(string (date) | null)repayment.name(string)direction(enum) One of: owed, receivable.disbursement_account_id(string (uuid))disbursement_amount(number)link_rule_id(string (uuid))request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_debt",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"current_balance": 100,
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
update_debt — Update debt
Write. Debts & loans. Edit debt terms, reconcile its balance or change lifecycle. Pausing/settling affects recurring repayments. Currency is locked once financial history exists.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)name(string)counterparty(string)kind(string)currency(string) — ISO currency code; amounts use this currency's precisioncurrent_balance(number)original_amount(number | null)annual_rate_pct(number | null)rate_type(enum | null) One of: fixed, variable.start_date(string (date) | null)maturity_date(string (date) | null)remaining_installments(integer | null)notes(string)balance_is_estimate(boolean)payment_amount(number | null)payment_frequency(enum | null) One of: weekly, biweekly, monthly, quarterly, yearly, irregular.next_due_date(string (date) | null)icon(string)repayment(object | null) — Null or enabled=false stops repayment. Only the named frequencies can be set here; a custom interval belongs to the linked recurring entry.repayment.enabled(boolean)repayment.from_account_id(string (uuid))repayment.amount(number)repayment.start_date(string (date))repayment.end_date(string (date) | null)repayment.name(string)repayment.active(boolean)repayment.frequency(enum) One of: weekly, biweekly, monthly, quarterly, yearly.lifecycle(enum) One of: active, paused, paid_off, refinanced, written_off.refinanced_into_account_id(string (uuid) | null)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_debt",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
delete_debt — Remove or close debt
Write. Debts & loans. Delete a debt with no history, or archive one with history and stop its repayment rules.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_debt",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
list_debt_payments — List debt payments
Read. Debts & loans. Read up to 500 payments for a debt.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_debt_payments",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
}
}
}
record_debt_payment — Record debt payment
Write. Debts & loans. Record a payment already made: from_account_id for owed debt, to_account_id for a receivable. Principal is a ledger transfer; interest/fees are expenses. No money is sent to a bank. Principal, interest and fees can be given explicitly; otherwise the split is calculated from the debt's terms.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)amount(number, required)from_account_id(string (uuid))to_account_id(string (uuid))principal(number)interest(number)fees(number)other(number)date(string (date))note(string)advance_schedule(boolean)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "record_debt_payment",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"amount": 100,
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
delete_debt_payment — Delete debt payment
Write. Debts & loans. Delete an entire repayment and reverse its linked ledger effects. This does not reverse a real bank payment.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)paymentId(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_debt_payment",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"paymentId": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
get_wealth_summary — Get net worth summary
Read. Accounts & transfers. Read consolidated wealth and liabilities in reporting currency. Currencies without an exchange rate are listed in excluded_currencies and left out of the totals. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspaces
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_wealth_summary",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
get_analytics — Get income and expense report
Read. Reports. Read income, spending and trends; transfers and system balances are excluded, refunds reduce expenses. Missing exchange rates may be fetched and stored; entries still without one are counted in excluded_count and left out of the totals.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesquery(object)query.from(string (date))query.to(string (date))query.granularity(enum) One of: day, week, month, year.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_analytics",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
get_budget_analytics — Get budget analytics
Read. Budgets. Read budget trends and adherence. Each window reports whether it is partial (still running) and whether its figures are reliable (the budget's scope has not changed since it closed).
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesquery(object)query.view(enum) One of: daily, weekly, monthly, yearly.query.back(integer)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_budget_analytics",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
get_alerts — Get financial alerts
Read. Reports. Read current attention items without posting due entries. Figures may lag recurring entries that have not materialized yet.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspaces
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_alerts",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
get_calendar — Get money calendar
Read. Reports. Read daily income and spending for an ordered range of at most 400 days. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesquery(object, required)query.from(string (date), required)query.to(string (date), required)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_calendar",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"query": {
"from": "2026-10-01",
"to": "2026-10-01"
}
}
}
}
get_money_flow — Get money flow
Read. Reports. Read income and spending grouped by account/category, or a running-balance timeline. Entries without an exchange rate are counted in excluded_count and left out of the totals. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesquery(object)query.from(string (date))query.to(string (date))query.groupBy(enum) One of: account, category.query.mode(enum) One of: grouped, timeline.query.bucket(enum) One of: day, week, month, year.query.category(string) — Comma-separated category namesquery.accountId(string (uuid))query.periodLimit(integer)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_money_flow",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
list_cards — List cards
Read. Cards. List card identities and balances. This never exposes a full card number. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesquery(object)query.includeClosed("1")
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_cards",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
get_card — Get card
Read. Cards. Read one card's stored identity and linked accounts.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_card",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
}
}
}
get_card_summary — Get card summary
Read. Cards. Read recorded activity, statements and autopay status. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_card_summary",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
}
}
}
list_spaces — List savings spaces
Read. Savings spaces. List personal savings spaces, goals and balances. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspaces
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_spaces",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
get_space — Get savings space
Read. Savings spaces. Read one savings space and its goal.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_space",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
}
}
}
create_space — Create savings space
Write. Savings spaces. Create a savings goal. Money only enters or leaves through ledger transfers; no real bank account is created.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesname(string, required)currency_code(string) — ISO currency code; amounts use this currency's precisiongoal_amount(number | null)target_date(string (date) | null)icon(string)color(string)color_style(enum) One of: subtle, bold.request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_space",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"name": "Example",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
update_space — Update savings space
Write. Savings spaces. Edit a savings goal or archive it. Its balance changes only through transfers.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)name(string)goal_amount(number | null)target_date(string (date) | null)icon(string)color(string)color_style(enum) One of: subtle, bold.note(string)archived(boolean)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_space",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
delete_space — Delete savings space
Write. Savings spaces. Remove an empty savings space and its auto-save rule. Spaces with transaction history are archived; withdraw remaining balance first.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_space",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
get_space_auto_save — Get savings auto-save
Read. Savings spaces. Read a space's automatic ledger transfer schedule.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_space_auto_save",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
}
}
}
set_space_auto_save — Set savings auto-save
Write. Savings spaces. Schedule automatic ledger transfers from a bank/cash account into this space. Due occurrences may post immediately. This does not instruct a bank to move money.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)source_account_id(string (uuid), required)amount(number, required)frequency_unit(enum, required) One of: day, week, month, year.frequency_interval(integer)start_date(string (date), required)end_date(string (date) | null)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "set_space_auto_save",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"source_account_id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"amount": 100,
"frequency_unit": "day",
"start_date": "2026-10-01",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
delete_space_auto_save — Stop savings auto-save
Write. Savings spaces. Delete the space's auto-save schedule. Previously recorded ledger transfers remain.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_space_auto_save",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
list_categories — List transaction categories
Read. Categories & tags. List recorded categories without initializing defaults.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesquery(object)query.type(enum) One of: incoming, outgoing.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_categories",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
create_category — Create transaction category
Write. Categories & tags. Create an income and/or expense category. Names are shared across a logical category's types.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesname(string, required)color(string)types(string[], required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_category",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"name": "Example",
"types": [
"incoming"
],
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
update_category — Update category
Write. Categories & tags. Rename or recolor a category. Renaming also updates existing category labels and budget scopes, subject to overlap checks.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)name(string)color(string)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_category",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
delete_category — Delete category
Write. Categories & tags. Delete a category registry row; existing transaction text remains.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_category",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
list_tags — List tags
Read. Categories & tags. Read the selected workspace's tag names and colors.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspaces
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_tags",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
create_tag — Create tag
Write. Categories & tags. Create a tag; a case-insensitive existing tag is returned instead of duplicated.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesname(string, required)color(string)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_tag",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"name": "Example",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
update_tag — Update tag
Write. Categories & tags. Rename or recolor a tag and update its uses on existing records.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)name(string)color(string)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_tag",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
delete_tag — Delete tag
Write. Categories & tags. Remove a tag without deleting the financial records it labels.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_tag",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
list_contacts — List contacts
Read. Contacts. List the selected workspace's contacts (people and companies it deals with) by name, with their phones, emails, note and custom fields. search matches a name, company, email or phone.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesquery(object)query.search(string)query.limit(integer)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_contacts",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"query": {
"limit": 100
}
}
}
}
get_contact — Get contact
Read. Contacts. Read one contact, how many transactions, clients and quotations are linked to it (linked_counts), and the newest of them in linked. next_cursor is set when more remain.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)query(object)query.limit(integer)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_contact",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"query": {
"limit": 20
}
}
}
}
list_contact_links — List a contact's linked records
Read. Contacts. Page through the transactions, clients and quotations linked to a contact, newest first. A split transaction is one row at its full amount. Personal workspaces link transactions only.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)query(object)query.type(enum) — Only this kind of record One of: transaction, client, quotation.query.before(string) — next_cursor from get_contact or from the previous pagequery.limit(integer)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_contact_links",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"query": {
"limit": 20
}
}
}
}
create_contact — Create contact
Write. Contacts. Save a contact in the selected workspace. Everyone with access to the workspace can see it. Nothing is sent to the person.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesname(string, required)company(string)phones(string[])emails(string[])notes(string)custom_fields(object[])request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_contact",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"name": "Example",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
update_contact — Update contact
Write. Contacts. Edit a contact; fields left out keep their value. Given phones, emails or custom_fields replace the whole list.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)name(string)company(string)phones(string[])emails(string[])notes(string)custom_fields(object[])request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_contact",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
delete_contact — Delete contact
Write. Contacts. Permanently delete a contact and remove it from every transaction, client and quotation it was linked to. The records themselves remain.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_contact",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
list_trash — List trash
Read. Transactions. Read restorable items in the selected workspace's trash.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspaces
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_trash",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
restore_transaction — Restore trashed transaction
Write. Transactions. Restore a trashed transaction and its balance effect. A split or transfer restores all linked legs together.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacestype("transaction", required)id(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "restore_transaction",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"type": "transaction",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
record_transfer — Record account transfer
Write. Accounts & transfers. Record an internal ledger transfer, including a savings deposit or card payment. This does not initiate a bank transfer. Cross-currency transfers require explicit destination_amount; fee is extra spending. Default status is completed.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesfrom_account_id(string (uuid), required)to_account_id(string (uuid), required)source_amount(number, required)destination_amount(number)source_fee_amount(number)source_currency(string) — ISO currency code; amounts use this currency's precisiondestination_currency(string) — ISO currency code; amounts use this currency's precisionstatus(enum) One of: planned, pending, completed.date(string (date))note(string)from_card_id(string (uuid))request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "record_transfer",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"from_account_id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"to_account_id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"source_amount": 100,
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
list_transfers — List account transfers
Read. Accounts & transfers. Read ledger transfers. Without a status it returns only planned and pending ones; status=completed returns settled transfers. These describe bookkeeping, not bank execution.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesquery(object)query.status(enum) One of: planned, pending, completed, cancelled.query.limit(integer)query.include_trashed("true")query.group_id(string (uuid))
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_transfers",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
list_clients — List company clients
Read. Company workspaces. List company clients and their income, expense and profit in reporting currency.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesquery(object)query.search(string)query.page(integer)query.closed("1")query.includeClosed("1")query.tag(string)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_clients",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
get_client — Get company client
Read. Company workspaces. Read one company client and its financial totals.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_client",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
}
}
}
create_client — Create company client
Write. Company workspaces. Create a company client, subject to the workspace's plan quota.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesname(string, required)company(string)email(string)phone(string)status(enum) One of: active, inactive, archived.notes(string)onboard_date(string (date) | null)category(string)tags(string[])contact_ids(string (uuid)[]) — IDs from list_contacts. Replaces the record's linked contacts; an empty list removes them allrequest_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_client",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"name": "Example",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
update_client — Update company client
Write. Company workspaces. Edit or close a company client; its financial history remains.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)name(string)company(string)email(string)phone(string)status(enum) One of: active, inactive, archived.notes(string)onboard_date(string (date) | null)category(string)tags(string[])contact_ids(string (uuid)[]) — IDs from list_contacts. Replaces the record's linked contacts; an empty list removes them allclosed(boolean)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_client",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
delete_client — Move company client to trash
Write. Company workspaces. Move a company client and its live transactions to trash; their balance effects are reversed. The own-company client cannot be deleted.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_client",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
list_quotations — List company quotations
Read. Company workspaces. List quotations and their status in the selected company workspace.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesquery(object)query.search(string)query.status(enum) One of: draft, sent, accepted, rejected.query.page(integer)query.dateFrom(string (date))query.dateTo(string (date))query.closed("1")query.includeClosed("1")query.tag(string)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_quotations",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
get_quotation — Get company quotation
Read. Company workspaces. Read one company quotation.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_quotation",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
}
}
}
create_quotation — Create company quotation
Write. Company workspaces. Create a company quotation. This records a quote; it does not send it to the prospect.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacestitle(string, required)prospect_name(string, required)company(string)email(string)phone(string)amount(number)currency_code(string) — ISO currency code; amounts use this currency's precisiondate(string (date))status(enum) One of: draft, sent, accepted, rejected.notes(string)category(string)tags(string[])contact_ids(string (uuid)[]) — IDs from list_contacts. Replaces the record's linked contacts; an empty list removes them allrequest_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_quotation",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"title": "Example",
"prospect_name": "example",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
update_quotation — Update company quotation
Write. Company workspaces. Edit a quotation. Accepting it notifies the workspace's owners, admins and the quotation's creator inside ProfitSync; nothing is sent to the prospect.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)title(string)prospect_name(string)company(string)email(string)phone(string)amount(number)date(string (date))status(enum) One of: draft, sent, accepted, rejected.notes(string)category(string)tags(string[])contact_ids(string (uuid)[]) — IDs from list_contacts. Replaces the record's linked contacts; an empty list removes them allclosed(boolean)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_quotation",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
delete_quotation — Move quotation to trash
Write. Company workspaces. Move a company quotation to trash.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_quotation",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
convert_quotation — Convert quotation to client
Write. Company workspaces. Create a client from this quotation and mark the quotation accepted. Notifies the workspace's owners, admins and the quotation's creator inside ProfitSync; nothing is sent to the prospect. Subject to client quota.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesid(string (uuid), required)request_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "convert_quotation",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
list_client_budgets — List company client spend caps
Read. Company workspaces. Read per-client spending caps and the company default template in their kept currencies.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspaces
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_client_budgets",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
set_client_budget — Set company client spend cap
Write. Company workspaces. Set or replace a client's spend cap; amount zero removes it. Omit client_id to edit the company default template. Currency is locked once set.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesclient_id(string (uuid) | null)period(enum) One of: lifetime, monthly, weekly, daily.amount(number, required)currency_code(string) — ISO currency code; amounts use this currency's precisionrequest_id(string (uuid), required) — A new UUID for each action. A repeated call with the same request_id and arguments returns the first result instead of acting twice.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "set_client_budget",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
"amount": 100,
"request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
}
}
}
get_client_budget_overview — Get company spend cap overview
Read. Company workspaces. Read company client caps, aggregate status and currency exclusions.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspaces
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_client_budget_overview",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}
get_client_budget_detail — Get company spend cap detail
Read. Company workspaces. Read a client cap's history and adherence: a client's with client_id, or the company default template without it.
workspace_id(string (uuid), required) — ID of a workspace returned by list_workspacesquery(object)query.client_id(string (uuid))
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_client_budget_detail",
"arguments": {
"workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
}
}
}