run_sync
Sync all connected accounts with Plaid to fetch updated transactions and balances. Returns a summary of accounts updated and new transactions added.
Instructions
Trigger a Plaid sync across all connected items. Same as clicking 'Sync Now' in the UI. Returns a summary of what was fetched (accounts updated, transactions added). Safe to call freely — Plaid dedupes.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- tuskledger_mcp/server.py:311-312 (handler)Dispatch handler for the 'run_sync' tool. Calls client.trigger_sync() to perform a Plaid sync across all connected items.
if name == "run_sync": return client.trigger_sync() - tuskledger_mcp/server.py:240-249 (schema)Tool definition for 'run_sync' with description and empty input schema (no parameters needed).
Tool( name="run_sync", description=( "Trigger a Plaid sync across all connected items. Same as " "clicking 'Sync Now' in the UI. Returns a summary of what was " "fetched (accounts updated, transactions added). Safe to call " "freely — Plaid dedupes." ), inputSchema={"type": "object", "properties": {}, "additionalProperties": False}, ), - tuskledger_mcp/server.py:331-333 (registration)Registration of the tool via @server.list_tools() which returns the TOOLS list containing the run_sync Tool instance.
return TOOLS @server.call_tool() - tuskledger_mcp/server.py:333-341 (registration)The call_tool dispatcher routes the 'run_sync' name to _dispatch, which calls client.trigger_sync().
@server.call_tool() async def call_tool(name: str, arguments: dict) -> list[TextContent]: log.info("tool call: %s args=%s", name, list((arguments or {}).keys())) try: # The HTTP calls are blocking; offload to a thread so we don't # stall the event loop. Backend is on localhost so latency is # tiny but doing this correctly keeps the door open for # async-aware tools later. payload = await asyncio.to_thread(_dispatch, name, arguments, cli) - tuskledger_mcp/client.py:173-174 (helper)Client helper method that sends a POST request to /api/plaid/sync, the underlying HTTP call triggered by the run_sync tool.
def trigger_sync(self) -> Any: return self._request("POST", "/api/plaid/sync")