agentleFS
MosoFinMosoFin/mosofin-mcp-plugin/skills/query-workspace/SKILL.md

query-workspace

Skill3 starsChanged 22 days agoMITView on GitHub

Query MosoFin workspace business data (accounting platforms and other connected SaaS). Use when the user asks for P&L, invoices, cash, customers, or any live books data, or mentions MosoFin, a client workspace, or reconnecting a data source.

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 1

    1. MosoFin/mosofin-plugins★ 3100% same

    Edited · 0

    None found.

    Wrote their own version · 0

    None found.

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository8 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 1 is distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read-only path for any MosoFin data question.

    line 8
  2. Very specific:

    Call list_workspaces with no arguments.

    line 27
  3. Very specific:

    If several exist, ask single- vs multi-workspace, then which name(s), and confirm with list_workspaces(workspace_ids=[…], mode="single") or …

    line 29
  4. Very specific:

    Call get_agent_datasources for the confirmed workspace_id.

    line 33
  5. Very specific:

    If more than one row for a platform is connected: true, ask which company, then pass that data_source_id on every later call.

    line 35
  6. Very specific:

    If the needed source is connected: false, stop.

    line 37
  7. Very specific:

    Call get_datasource_tools for the chosen datasource (and data_source_id when required) to pick a valid tool_name.

    line 40
  8. Distinctive:

    If the fetch does not cover part of the question, say so and name the tool that could fetch it.

    line 92

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Query a MosoFin workspace

Read-only path for any MosoFin data question. Call only the MosoFin MCP tools listed below. Full per-tool spec (inputs, outputs, examples, errors): docs/mcp-tool-spec.md. Short contract: docs/plugin-contract.md.

MosoFin MCP tools used (registered names; your host prefixes them, e.g. mcp__plugin_mosofin_mosofin__<name> in Claude Code or mcp__MosoFin__<name> for a Claude connector):

  • list_workspaces
  • get_agent_datasources
  • get_datasource_tools
  • invoke_datasource_api_tool

Native pickers may not appear (production MCP is stateless JSON). Ask in chat, then pass handles explicitly.

Steps

  1. Call list_workspaces with no arguments.
  2. Show workspaces by name (and role). Never show integer tenant ids. If several exist, ask single- vs multi-workspace, then which name(s), and confirm with list_workspaces(workspace_ids=[…], mode="single") or mode="multi". One accessible workspace auto-confirms server-side — still read the name back and wait for an explicit yes before invoking data tools.
  3. Call get_agent_datasources for the confirmed workspace_id.
    • Refer to companies by display_name. Never show raw data_source_id.
    • If more than one row for a platform is connected: true, ask which company, then pass that data_source_id on every later call.
    • If the needed source is connected: false, stop. Tell the user to open the reconnect_url from a later error, or the MosoFin workspace data-sources page. Do not invent numbers.
  4. Call get_datasource_tools for the chosen datasource (and data_source_id when required) to pick a valid tool_name.
  5. Call invoke_datasource_api_tool with:
    • datasource (e.g. quickbooks)
    • tool_name from the catalog (e.g. get_profit_and_loss)
    • workspace_id (the opaque handle list_workspaces returned, copied exactly) on every call
    • data_source_id on every call when the workspace has multiple companies
    • params with concrete YYYY-MM-DD dates — resolve "last month" / "this quarter" before invoking. Transaction searches and period reports need both start_date and end_date. As-of reports (get_balance_sheet, get_aged_receivables, …) take an optional report_date (default today). Get-by-id tools need id. Multiple independent invokes may run in parallel in one turn.

Result handling

  • Pagination (search tools): if pagination.has_more is true, re-invoke with params.offset = pagination.next_offset until complete or the user has enough. Omit max_results unless a smaller page is needed.
  • Budgets are two-step: search_budgets to list names, then get_budget_details with budget_id or budget_name.
  • mock flag: false means live numbers — say so. true means demo/fixture data — tell the user the numbers are not real.

Read-only boundary

MosoFin cannot create, update, send, or delete records in any connected accounting platform or other SaaS. If asked to (e.g. "create an invoice"), do not invoke — explain the boundary and offer the read equivalent (e.g. search_invoices).

Errors

  • Unknown tool / MosoFin tools missing / sign-in required — the user is not signed in to MosoFin in this host. Never say "refresh/reconnect". Keep the question (dates already resolved) and follow /mosofin:connect (skills/connect/SKILL.md); when the user says they're done, confirm the workspace and answer the original question. Do not invent data.
  • Workspace not confirmed — confirm via list_workspaces then retry.
  • entity_required — ask which company from entities[]; retry with that data_source_id.
  • datasource_not_active / connection_unavailable — give the user reconnect_url. Do not guess data.
  • invalid_params — fix dates/fields and retry.
  • approval_required — ask the user, then retry with approved=true.
  • tool_policy_disabled / valid-access refusal — explain; do not leak or invent data.

Grounding

Answer only from invoke results in this conversation. Do not use general knowledge or another company's memory. End data-backed answers with one Data sources line (datasource + tool + fetched_at from provenance). If the fetch does not cover part of the question, say so and name the tool that could fetch it.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.