Dashly Docs

Prompts and resources

The built-in agency procedures and the context documents the Dashly MCP server offers.

Next to its tools, the server offers the two other MCP capabilities: prompts, the agency's recurring procedures written once and offered as commands, and resources, context documents a client loads once instead of calling tools for.

Prompts

A prompt is a ready-made instruction that composes the existing tools. It grants nothing: the credential still decides what may be read or written, and a procedure the credential is not allowed to run fails exactly as the same calls typed by hand would.

List them with prompts/list; fill one with prompts/get, which returns the user message your client sends to the model:

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "prompts/get",
  "params": {
    "name": "weekly_client_update",
    "arguments": { "client": "hsbftmp3f5", "since": "2026-10-22" }
  }
}

A missing required argument is a JSON-RPC error (-32602) naming it. Arguments are strings.

Every prompt carries the same house rules for the model: work only from what the tools return and say what is missing rather than inventing it; read dashly://conventions before writing a status, moving a deal or assigning someone; cite the public id of everything it mentions; propose before writing anything back; answer in the language of the request.

weekly_client_update

What moved on one client over the week: requests opened and closed, time spent, what is left on the retainer, and what is late. Produces a short update an account manager can send.

ArgumentRequiredDescription
clientyesClient name or public id.
sincenoStart of the period (YYYY-MM-DD). Defaults to 7 days ago.

prepare_meeting

The state of one account before a call: open subjects, commitments made since last time, retainer left, open deals, and three questions worth asking. Produces a one-page brief.

ArgumentRequiredDescription
clientyesClient name or public id.

estimate_request

What comparable work has actually cost the agency, from its own closed tickets and the time logged on them. Produces a range (shortest, median, longest) with the comparable items listed, or no number when fewer than three comparable items exist.

ArgumentRequiredDescription
requestyesThe request to estimate, in a sentence.
clientnoClient name or public id, when it is for a known client.

catch_up_on_late_work

Everything past its due date and still open, grouped by client, with a proposed redistribution that looks at who already carries the late work.

ArgumentRequiredDescription
scopenoA client, a project or a team. Defaults to the whole agency.

pipeline_review

Two lists of deals: those whose expected close date has passed, and those that have stopped moving, each with its value, owner and one next step. No forecast.

ArgumentRequiredDescription
pipelinenoPipeline name or public id. Defaults to all of them.

prepare_next_cycle

A selection of backlog tickets for a project's next cycle, sized on the velocity its last closed cycles actually delivered. The selection is proposed; on a yes, only each selected ticket's cycle is set.

ArgumentRequiredDescription
projectyesProject name or public id.

split_deal_into_parts

Builds a complex project sold as several deals: one deal per milestone, recurring parts (maintenance, evolutions…) as recurring deals, follow-up deals on the follow-up pipeline. The parts are proposed as a table and written in a single action after a yes.

ArgumentRequiredDescription
dealyesDeal name or public id (the first part).
partsnoThe parts as the person describes them, if given.

ai_visibility_setup

Every AI-visibility setting of one client — brand, domain, competitors, engines, tracked questions, tracked keywords — read, reviewed against the latest results, and changed after a yes. It never claims the module is switched on when it is not (switching it on bills the client and is done in the dashboard), and runs a capture only when asked, since a capture spends the agency's allowance. See AI visibility from Claude.

ArgumentRequiredDescription
clientyesClient name or public id.
goalnoWhat the person wants, if they said it (e.g. "add three competitors").

Resources

Four read-only JSON documents. resources/list answers without a credential; resources/read reads with the caller's credential, so each document only contains what that credential may see.

{ "jsonrpc": "2.0", "id": 4, "method": "resources/read", "params": { "uri": "dashly://conventions" } }

The tools cover the same ground on demand, which is what an agent needs after it creates a field or a stage. The resources exist so that an agent does not spend its first turns learning the shape of the product.

dashly://catalog

Every resource of the API with, for each, its readable and writable fields, its filters, its sorts and its relations. Enough to write a correct call without guessing. The same content as the list_resources tool.

dashly://fields

The built-in fields and the agency's own custom fields, per entity (client, deal, lead, ticket), with their key, type and options. This is what says how to fill customFields. The same content as the list_fields tool.

dashly://me

Which agency the credential belongs to, what it is allowed to do (its scopes), and how much of the monthly token allowance is left. Read it first when a call is refused. The same content as the get_account tool.

dashly://conventions

The words this agency uses, which no schema can tell you:

SectionContents
workflowColumnsThe ticket workflow columns, in order, and which ones mean finished (isDone).
pipelinesThe sales pipelines.
pipelineStagesTheir stages, in order, each with its pipelineId.
ticketCategoriesTicket categories.
projectTypesProject types.
leadSourcesLead sources.
lostReasonsReasons a deal was lost.
teamsTeams.
peopleThe agency's members.
howToReadShort rules for using the above.

The rules it spells out:

  • A ticket's status must be one of workflowColumns[].id. Those keys are the agency's own.
  • "Is this finished?" is isDone on the column, never a comparison with the literal done: an agency may have several terminal columns, and none need be called done.
  • A deal's stageId must belong to the deal's own pipeline: match pipelineId on the stage before moving anything.
  • Custom fields are not in this document; they are in dashly://fields.

Each section degrades on its own: if the credential may not read one of them (for example the members list), that section carries an unavailable entry with the refusal and the others are still returned.

On this page