Docsbook
Overview

Edit opportunity

MCPedit_opportunityWRITE$0.02 / call

CORRECT one opportunity — a figure that was re-measured, a competitor that moved, or a decision not to work it. Free on every plan. 🔴 THIS IS NOT WHERE A WIN IS RECORDED. Whether the opportunity was taken is the verdict on the hypotheses pointing at this row (edit_hypothesis), and this table deliberately has no column for it: one fact with two owners is two answers within a week. What IS decided here is dispositiondropped for "the audience is real and the fit is not", with the reason in the owner's words, so the next run reading the same demand does not re-propose it. The same rule as add_opportunity: intent, current, competitor, potential, demand_note and drop_reason are the owner's; evidence and demand_source are the trace. This answers WHAT, not what to do about it. If you have not already got the method from docsbook_expert, get it first: it names which readings answer this question, what to compare them against, and what would make the conclusion wrong. One call, changes nothing.

Arguments
workspace_idstringoptional

Workspace ID (optional when MCP endpoint is auto-scoped). Numeric workspace id — OR the project as the user names it: 'owner/repo', the repo name alone, the site's display name, its docs URL or custom domain. Text is resolved server-side; an ambiguous name returns the candidates instead of guessing, so pass what the user said rather than calling list_workspaces first.

direction_keystringrequired

The direction, from list_opportunities.

keystringrequired

The opportunity's handle.

intentstringoptional

demand_valuenumberoptional

demand_unitstringoptional

demand_sourcestringoptional

demand_notestringoptional

currentstringoptional

competitorstringoptional

competitor_urlstringoptional

actionstringoptional

One of: create, rewrite, expand, structure, authority, none.

potentialstringoptional

potential_value_centsnumberoptional

evidencestringoptional

dispositionstringoptional

One of: open, dropped.

drop_reasonstringoptional

positionnumberoptional

Call it#

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "edit_opportunity",
    "arguments": {
      "direction_key": "<direction_key>",
      "key": "<key>",
      "action": "create",
      "disposition": "open"
    }
  }
}
curl -X POST 'https://docsbook.io/api/mcp/server' \
  -H 'Authorization: Bearer dbk_YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"edit_opportunity","arguments":{"direction_key":"<direction_key>","key":"<key>","action":"create","disposition":"open"}}}'

Try it over REST#

The same tool is callable as a plain HTTP request, no MCP client required. It runs on the same server, at the same price.

Your workspace is resolved from the API key, so workspace_id is decided server-side here and anything you send for it is ignored.

POST/api/v1/tools/edit_opportunity
Authorization
Authorizationstringrequired

Your API key, sent as Authorization: Bearer dbk_YOUR_API_KEY.Sent as the Authorization header. Your key is used only by your browser for this request — it is never sent to Docsbook or stored.

Body
argsobjectrequired

The arguments above, as one JSON object.

Request
curl -X POST 'https://docsbook.io/api/v1/tools/edit_opportunity' \
  -H 'Authorization: Bearer dbk_YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"args":{"direction_key":"<direction_key>","key":"<key>","action":"create","disposition":"open"}}'

Updated

Was this page helpful?