Skills for MCP Clients
How the Modem MCP server teaches your MCP client to use its tools
Skills are short instructions that the Modem MCP server gives your MCP client. Each one covers one group of Modem tools: when to use them, in what order, and what to check in the result.
There is nothing to install. When you connect the server, your client gets a modem_skills tool that returns them.
How your client finds them
The descriptions of modem_agent_invoke, the write tools, create_feedback_channel, and the automation tools each end by naming the skill to read before the first call. Your client calls modem_skills with that name and gets the whole skill back.
When your client calls modem_skills with no name, the result lists every skill and says which tool fits which task. For questions about your data and most other work, it points your client to a Modem Agent run.
The server has four skills:
agent-runscovers when to ask the Modem Agent, passing your question through as written, waiting for the result, continuing a conversation, and cancelling.write-toolscovers getting IDs from an agent run or from you before a write, confirming merges with you, and reading partial results.install-feedbackcovers adding Modem feedback to an app: creating a feedback channel withcreate_feedback_channel, wiring in its token, and confirming a test item arrives.automationscovers listing automations before creating one, writing schedules, trigger conditions, and self-contained prompts, and choosing output channels and model levels.
The MCP Tool Reference documents the modem_skills parameters and result.
Skills and scopes
The scopes you approve decide which tools your client can call. list_automations needs data:read. The agent run tools, the write tools, create_automation, and update_automation need agent:invoke.
Skills have no such limit. A client with either scope can read all four.
A skill can therefore name a tool your client does not have, and it explains what to do in that case. The agent-runs skill, for example, tells a client that has data:read alone to ask you to re-authorize with agent:invoke before it starts a run.