Replay a saved skill
Wraps the server's get_my_skill tool (consent is server-enforced) plus
recipe execution via invoke_datasource_api_tool. Full spec:
docs/mcp-tool-spec.md §3.6.
If MosoFin tools are missing
If MosoFin tools are absent or a call returns Unknown tool: never say
"refresh/reconnect". Give ChatGPT/Codex setup: Settings → Apps & Connectors
→ create MosoFin at https://mcp.mosofin.com/mcp with OAuth → sign in → new
chat with MosoFin on. Claude Code / Grok Build: install mosofin@financehub. Do not invent
skill contents or figures.
Steps
- Confirm workspace via
list_workspacesif this chat has not already. - Find the skill with
get_skills; match the ask againstname/description. Present the candidate by name and wait for an explicit yes. Never auto-replay. - Only then call
get_my_skill(skill_id, confirmed="yes", workspace_id=…).confirmedmust be""or"yes"—"yes"only after the explicit chat yes. Files markedcontent_omitted: trueneed a re-call withpaths=[…]andconfirmed="yes"again. - If
references/run-recipe.jsonexists:- Ask each
inputs[].askquestion verbatim — never silently default dates. - For a
type: "data_source"input, list companies bydisplay_name(get_agent_datasources) and pass the chosendata_source_idinto every step carrying the"{data_source_id}"placeholder. A literal id in the recipe is pinned — use it as written.
- Ask each
- Execute steps in order (same
parallel_groupmay batch), substituting{workspace_id}and collected inputs, replaying data only viainvoke_datasource_api_tool— never invented numbers. - Check
mock(live vs fixture) and end with a Data sources line per fetch.
Unknown, archived, or someone else's skill_id all return the same error —
report it plainly and do not probe existence.