Skip to main content
Glama
tbernabo

forbiz-mcp

forbiz-mcp

MCP server for Forbiz, the CRM for AI agents. Your business continues when your AI changes.

Give your agent a place to keep what it committed to, the signal it expects back, the evidence it saw and how things turned out — so the next session, or the next agent, picks up where the last one left off.

  • No account to start. The agent opens a provisional workspace by itself with forbiz_start. The owner claims it later with a link.

  • Commitments that can be resumed. Every commitment carries a commitmentKey. Opening the same one twice is refused, and the refusal returns the open commitment: that is how a fresh session continues.

  • Evidence is not truth. What the agent writes is append-only history. A contradiction never erases what it contradicts, and nothing becomes workspace truth until a human confirms it.

  • Who did what is recorded. Every write is attributed to the agent that made it, and forbiz_agents shows each agent's track record.

Install

Requires Node 18 or later.

Claude Code

claude mcp add forbiz -- npx -y github:tbernabo/forbiz-mcp

Claude Desktop (claude_desktop_config.json) or Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "forbiz": {
      "command": "npx",
      "args": ["-y", "github:tbernabo/forbiz-mcp"]
    }
  }
}

That is enough: the agent calls forbiz_start the first time and the credential is stored in ~/.forbiz-mcp/credential.json.

Already have a Forbiz credential? Add it to the server's environment instead:

"env": { "FORBIZ_API_KEY": "<your credential>" }

Credentials starting with fbzr_ are exchanged automatically for a short-lived token.

Related MCP server: Waymark

Tools

Tool

What it does

forbiz_start

Open a provisional workspace, no account. Stores the credential locally; never shows it

forbiz_me

Workspace, identity, capabilities, plan and limits. Call it first

forbiz_next

The single next thing that needs attention

forbiz_prompts

Everything pending, grouped, with the commands available right now

forbiz_state

Workspace overview

forbiz_commit

Record a commitment with its expected signal and date

forbiz_mark_executed

Record that the action really happened

forbiz_check_signal

Record where and when you looked for the signal

forbiz_record_signal

Record what actually came back

forbiz_postpone

Move the expected signal date

forbiz_close / forbiz_close_without_signal

Close the loop

forbiz_get_action / forbiz_action_history

One action, and who changed it

forbiz_add_evidence / forbiz_find_evidence

Append and recover evidence

forbiz_search

Search across actions, evidence, people, projects

forbiz_agents

Agents of the workspace and their track record

forbiz_claim_link

The link the owner opens to take ownership

forbiz_request

Any other route of the Agent API

A first cycle

  1. forbiz_start → workspace and trial limits.

  2. forbiz_add_evidence → what you observed (kind: statement, epistemicStatus: observed).

  3. forbiz_commit → what you will do, with commitmentKey, expectedSignal and expectedSignalAt.

  4. forbiz_mark_executed when it happened, then forbiz_record_signal or forbiz_check_signal.

  5. forbiz_claim_link → hand the link to the owner.

Plans

Trial: free, one agent, 30 actions and 100 evidence records; after that the workspace stays readable and exportable, nothing is deleted. Continuity: USD 29/month. forbiz_me returns the current catalog, which is authoritative.

How it works

A thin translation of the public Forbiz Agent API into MCP tools. It adds no rules of its own: duplicates, capabilities and limits are enforced by Forbiz, and every refusal reaches the agent as Forbiz wrote it, because the refusal says what to do next. Tool results are scrubbed of credentials before they reach the model.

Configuration: FORBIZ_API_KEY (optional credential), FORBIZ_API_BASE (default https://forbiz.io/api/public/agent), FORBIZ_MCP_HOME (default ~/.forbiz-mcp).

MIT License.

Available Tools

20 tools
forbiz_action_historyHistory of one actionB
Read-only

Chronological changes of one action and who made each one, agent or human (GET /actions/{id}/history).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds genuinely useful context beyond them: results are chronologically ordered and authors are classified as agent or human. It says nothing about pagination, result size, or authorization scope for a read tool that may span many changes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. The endpoint reference is somewhat redundant for an agent but reinforces parameter meaning, so it earns a modest place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one required parameter and no output schema, the description covers purpose and authorship semantics but not the shape of the returned history (entries, timestamps, ordering across agents vs humans) or bounds on result size. Adequate but with visible gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (id) with 0% schema description coverage, so the schema gives no explanation. The description indirectly documents it by embedding the REST path GET /actions/{id}/history, clarifying that id identifies the action whose history is fetched. However it adds no format or validity detail beyond that inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource (one action's history) and specifies the content (chronological changes and who made each, agent or human), which distinguishes it from forbiz_get_action. The verb is implicit in the noun phrase rather than an explicit action word, but an agent can tell what it retrieves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case (auditing an action's change sequence) but never states when to choose this over the clearly related sibling forbiz_get_action, nor any prerequisites. Usage is inferable but not guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_add_evidenceRecord evidenceA

Append what you observed, were told, inferred or decided (POST /context/evidence). Append-only epistemic history: nothing becomes workspace truth automatically, and a contradiction never erases what it contradicts.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only give the bare safety profile (write, non-destructive, open-world), so the description carries meaningful extra weight: append-only semantics, no automatic promotion to workspace truth, and the guarantee that a contradiction never erases the item it contradicts. These are real behavioral commitments an agent cannot get from the annotations. Auth requirements, rate limits, and error behavior remain undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and its content categories, followed by the single most important behavioral caveat. The parenthetical endpoint adds orientation at no length cost, and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema, the description covers the core epistemic contract but omits practical essentials: whether it returns evidence ids (which the schema's contradictsEvidenceId field implies are needed for follow-up calls), whether items are validated or partially rejected, and how it relates to forbiz_find_evidence. Adequate, but an agent could still call it incorrectly on the first try.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description says nothing about the single 'items' parameter — not that it is a batch array, nor anything about the kind/epistemicStatus enums, confidence, or materialToDecision. With schema description coverage reported at 0% for the top-level property and a complex nested enum surface, the description does not compensate; the agent must read the schema and infer enum semantics on its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (append) and resource (evidence), and enumerates the input kinds ('what you observed, were told, inferred or decided'), which lets an agent distinguish this write tool from the read-side sibling forbiz_find_evidence. It does not name that sibling explicitly, so the differentiation is inferable rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The four content categories ('observed, were told, inferred or decided') imply when to record evidence, and 'nothing becomes workspace truth automatically' hints that this is a raw capture step. However, there is no explicit when-to-use vs when-not, no mention of forbiz_find_evidence or forbiz_record_signal as alternatives, and no guidance on batching multiple items.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_agentsAgents of this workspaceA
Read-only

Every agent of this workspace with its activity and a plain track record over the actions it created: created, executed, signal recorded, outcomes, overdue (GET /agents). Counts only, no ranking.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoWindow in days, default 30

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description still adds real value: it discloses the per-agent payload (activity plus a track record over created/executed/signal-recorded/outcome/overdue) and the important limitation 'Counts only, no ranking.' It stops short of disclosing pagination or exact return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense sentence, front-loaded with the resource and its metrics, with the endpoint appended. Slightly run-on with the colon list, but every clause carries information and nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only one optional parameter, no output schema, and annotations covering safety, the description adequately conveys what the tool returns and its counts-only scope. It could say more about granularity or ordering, but it is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%; the single 'days' parameter is fully documented in the schema ('Window in days, default 30'). The description adds no extra meaning about the window, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the resource (every agent of this workspace) and enumerates the specific activity metrics returned: created, executed, signal recorded, outcomes, overdue. This is a clear verbless-but-specific retrieval description that an agent can act on, though it never explicitly differentiates itself from siblings like forbiz_me or forbiz_state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the roster-plus-tally framing suggests it is an overview tool, and 'Counts only, no ranking' hints at its scope. There is no explicit when-to-use statement and no named alternative for getting per-action or per-user detail.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_check_signalRecord a signal checkA

Record that you looked for the expected signal (POST /actions/{id}/signal-checks). not_found_in_source REQUIRES source and period: it says where you looked and when, never that a third party did not answer. found closes nothing; link the signal with forbiz_record_signal. cannot_check REQUIRES reason.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAction id
noteNo
periodNoThe time window you checked
reasonNo
resultYes
sourceNoWhere you looked, e.g. { kind: 'email_thread', detail: 'Re: quote' }
looked_forNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (destructiveHint=false, openWorldHint=true, readOnlyHint=false = a mutation with no destructive risk). The description adds non-obvious behavioral facts beyond that: that recording 'found' closes nothing, and the specific field obligations attached to each result value. These are meaningful, non-schema behavioral disclosures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense, front-loaded sentences with no filler; the behavior for each result state is stated tersely. The parenthetical endpoint is slightly redundant since the tool name already implies the resource, but overall it wastes little.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating tool with 7 params, 43% schema coverage, nested objects, and no output schema, the description covers the result-dependent behaviors and the key alternative well but omits what note and looked_for are for and how they interact with the result states. Adequate but with visible gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 43% across 7 params, so the description is required to compensate. It does explain the conditional semantics of result values (not_found_in_source needs source+period; cannot_check needs reason) and the meaning of source/period ('where you looked and when'), but leaves note, looked_for, and id semantics unaddressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Record that you looked for the expected signal') and anchors it to the endpoint POST /actions/{id}/signal-checks, so the agent knows exactly what action is taken. It names forbiz_record_signal as the tool for linking a found signal, giving partial sibling differentiation, though it never addresses the closely-related forbiz_close_without_signal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete conditional guidance: not_found_in_source requires source+period, cannot_check requires reason, and 'found closes nothing; link the signal with forbiz_record_signal' explicitly routes a finding to the alternative tool. It stops short of full when-to-use/when-not coverage (e.g. no boundaries against close_without_signal), but the routing to a sibling is genuinely present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_closeClose the loopC

Resolve an action with its outcome (POST /actions/{id}/close-loop).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
learningNoteNo
outcomeStatusYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered elsewhere. The description adds only the HTTP verb/path; it says nothing about reversibility, what 'closing' an action does to its state, or whether a learningNote is retained, which is what would earn credit beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the action and endpoint front-loaded and no filler. It is efficient, though bordering on under-specified rather than merely concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating, open-world tool with no output schema and zero schema description coverage, the definition is too thin. An agent cannot tell how this differs from forbiz_close_without_signal, what the outcome enum means, or what happens to the action afterward.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the parameter burden. It implies id (via the {id} path) and outcomeStatus ('with its outcome'), but never explains the four enum values (expected/partial/unexpected/deferred) and never mentions learningNote at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Resolve an action with its outcome') plus the underlying endpoint, so the agent knows this is a write that closes an action loop. It does not distinguish itself from close alternatives in the sibling list such as forbiz_close_without_signal or forbiz_mark_executed, leaving that inference to the agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no precondition, and no named alternative. The most obvious alternative, forbiz_close_without_signal, is never mentioned even though the two names are nearly identical, forcing the agent to guess which close path applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_close_without_signalClose without a signalA

Close an action that will not get a signal, saying why (POST /actions/{id}/close-without-signal). Silence is not rejection: say what you know.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
reasonNo
learningNoteNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the mutation/safety profile is covered. The description adds that a reason is expected and that silence ('no signal') is a valid outcome distinct from rejection, but it does not say what closing does to the action's state, whether the reason is required, or whether the close is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and condition, then the endpoint and a short rationale. The tagline 'Silence is not rejection: say what you know' is somewhat motivational rather than operational, keeping it just short of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-param mutation tool with no output schema and 0% schema coverage, the description conveys the trigger condition and endpoint but omits the semantics of learningNote, whether reason is mandatory, and what a successful close returns or changes. Adequate but with notable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the parameter burden. 'Saying why' loosely maps to 'reason', but 'learningNote' and the required 'id' are never explained, and there is no format, length, or required/optional guidance for either string.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource ('Close an action') plus the exact condition that selects it over the sibling 'forbiz_close' ('that will not get a signal'). An agent can distinguish this from forbiz_close without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states the context for use: an action that will never receive a signal, and that you must explain why. It implies but does not explicitly name the alternative (forbiz_close / forbiz_record_signal) that applies when a signal is expected, so routing is slightly inferential.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_commitRecord a commitmentA

Record an action you will take or took, with the signal you expect back (POST /actions). Always send a commitmentKey (a short stable id for the objective, e.g. 'acme/quote-followup') and expectedSignalAt. A second open commitment with the same key is refused 409 COMMITMENT_ALREADY_OPEN and the body returns the open one: that is how you resume. A look-alike is refused 409 POSSIBLE_DUPLICATE: resend with confirm_new true only if it is a different objective.

ParametersJSON Schema
NameRequiredDescriptionDefault
roiNoWhat it is worth, each dimension 0-5. Optional; never inferred by Forbiz
verbNo
dueAtNoWhen the action itself is due; without it the action never becomes overdue
projectIdNoUUID of an existing project in this workspace
confirm_newNoOverride a POSSIBLE_DUPLICATE refusal
descriptionYesWhat the action is, in one sentence
whyThisMoveNo
commitmentKeyNoStable id of the objective this commitment serves (recommended)
expectedSignalNoWhat you expect to see if it worked, e.g. 'Dana replies with a date'
expectedSignalAtNoWhen the expected signal should have arrived
expectedSignalSourceNoWhere the expected signal will appear

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare mutation, open-world, and non-destructive; the description goes well beyond that by disclosing two distinct 409 failure modes (COMMITMENT_ALREADY_OPEN, POSSIBLE_DUPLICATE), the resume semantics of the first, and the confirm_new override for the second. This is exactly the kind of error/retry behavior an agent needs and cannot infer from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with purpose, then the two error paths in the order an agent would encounter them. No filler and no restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter mutation tool with nested objects and no output schema, the description covers the flow, the required fields, and both refusal paths. The one gap is the successful return shape — the description explains what a 409 body returns but not what a created commitment looks like, which matters given there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 82%, so the baseline is 3, but the description adds real meaning: commitmentKey is glossed with a concrete example ('acme/quote-followup') and its stability requirement, expectedSignalAt is tied to the expected-signal concept, and confirm_new's override role is restated in context. It doesn't touch roi, verb, or dueAt, but those are handled in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Record an action you will take or took, with the signal you expect back') and pins the endpoint (POST /actions). The commitmentKey/expectedSignal framing clearly separates it from siblings like forbiz_record_signal or forbiz_close, which deal with signals and closure rather than opening a commitment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete operational routing: always send commitmentKey and expectedSignalAt, resending the same key is the documented way to resume, and confirm_new true should only be used 'if it is a different objective.' It stops short of naming sibling alternatives (e.g. when to use forbiz_record_signal vs this tool), which keeps it out of 5 territory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_find_evidenceFind evidenceB
Read-only

Recover evidence by text or subject (GET /context/evidence). Each item carries its source and its contradiction and supersession pointers.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFull text over subject and content
statusNo
subjectNoSubject contains this
materialOnlyNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description usefully adds what each returned item carries (source, contradiction and supersession pointers), which is behavioral context beyond the annotations, though it says nothing about ordering, paging, or result limits for a potentially large corpus.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the primary action front-loaded and the return-shape note second. No filler, though it is arguably slightly under-specified rather than optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description partially compensates by sketching the item shape, and read-only annotations cover the safety profile. However, two of four parameters and the semantics of the contradiction/supersession pointers remain unexplained, leaving gaps for an agent assembling a query.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: status and materialOnly have no schema description, and the description does not explain them either. "by text or subject" merely restates the already-documented q and subject fields, so the description does not compensate for the undocumented half of the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Recover evidence") plus the two axes it can be queried by (text or subject) and the HTTP route. It is distinguishable from the write-side sibling forbiz_add_evidence, but it never contrasts itself with forbiz_search, which sounds like an overlapping retrieval tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase "by text or subject" hints at how to query, but there is no statement of when to prefer this over forbiz_search or forbiz_add_evidence, and no prerequisites or exclusions. The agent is left to infer routing entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_get_actionRead one actionA
Read-only

Full state of one action: expected signal, dates, lifecycle, outcome (GET /actions/{id}).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAction id

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful context by naming the fields returned (expected signal, dates, lifecycle, outcome) and the underlying endpoint, which matters because there is no output schema. It does not cover auth or error behavior, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the resource and return contents stated first and the endpoint kept as a parenthetical. Nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema, the description compensates by listing the shape of the returned state. What remains thin is routing guidance against lookalike siblings and any error/not-found behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

One parameter at 100% schema coverage; the schema already documents 'id' as the Action id. The description's '(GET /actions/{id})' only restates the path template and adds no format, sourcing, or lookup guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: read the full state of one action, identified by id. The enumeration of what 'full state' contains (expected signal, dates, lifecycle, outcome) distinguishes it from vague siblings like forbiz_state, though it never names a sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: an agent infers it should call this when it has an action id and needs the complete record. There is no explicit when-to-use, no exclusion, and no pointer to alternatives such as forbiz_action_history or forbiz_state, which is a real ambiguity given the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_mark_executedMark an action as executedB

Record that the action really happened (POST /actions/{id}/execute). Only when it did: never mark as executed without evidence that the act occurred.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
executedAtNoWhen it really happened; at most 5 minutes in the future
expectedSignalAtNoISO 8601 date-time, e.g. 2026-10-15T14:00:00Z

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the write/safety profile is covered. The description adds the meaningful behavioral rule that this records an event that already occurred rather than scheduling one, but is silent on idempotency, whether the action can be re-marked, and any required auth or evidence preconditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action ('Record that the action really happened'), adds the endpoint for lookup, then one emphatic caution sentence. No filler, though the endpoint path is somewhat redundant with the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema and modest annotations, the description covers the core intent and a key precondition. It leaves open what the call returns, whether marking is idempotent/repeatable, and how expectedSignalAt interacts with the recorded execution, which an agent invoking this state-changing endpoint would want.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, and the schema itself carries the notable constraint ('at most 5 minutes in the future') and the ISO 8601 format for expectedSignalAt. The description only implies that 'id' is the action identifier via the endpoint path and adds no meaning to executedAt or expectedSignalAt, so it neither compensates for the coverage gap nor regresses below baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('record that the action really happened') and pins it to the endpoint POST /actions/{id}/execute, so the operation is unambiguous. It does not name or contrast itself with adjacent siblings such as forbiz_add_evidence, forbiz_record_signal, or forbiz_close, which is the only thing keeping it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a strong precondition ('Only when it did: never mark as executed without evidence that the act occurred'), which tells the agent the required state before calling. However, it never routes to alternatives (add_evidence, check_signal, close_without_signal) or says what to do when evidence is absent, so the guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_meWho am I in ForbizA
Read-only

Workspace, agent identity, capabilities, plan and limits of the current credential (GET /me). Call this first.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint and openWorldHint already declaring the safety profile, the description adds value by enumerating what the call surfaces (identity, capabilities, plan, limits) and by implying the credential-scoped nature of the result. It does not discuss error behavior or auth prerequisites beyond 'current credential', so it is good but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero waste. The payload inventory comes first and the operational instruction ('Call this first.') is front-loaded and easily scanned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and no parameters, so the description carries the burden of describing the return — which it does by listing workspace, identity, capabilities, plan and limits. That is enough for an agent to know what it gets back, though field-level detail is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4; there is nothing for the description to disambiguate. The description appropriately spends its words on the return payload instead of nonexistent inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific resource returned — workspace, agent identity, capabilities, plan and limits for the current credential — and the GET /me endpoint anchors it. It implicitly distinguishes itself from the sibling forbiz_agents by scoping to the caller ('current credential'), though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Call this first.' gives a clear, actionable ordering instruction that tells the agent when this tool belongs in a sequence. It stops short of naming alternatives or exclusions, but the startup framing is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_nextNext moveB
Read-only

The single next thing that needs attention, with its handoff (GET /next).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that it returns a single prioritized item rather than a list and that it includes a handoff, which is genuinely useful beyond the annotations, but it stops short of explaining what the handoff contains or how the item is ranked.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with no filler, and the essential concept is front-loaded. It reads as a fragment ('with its handoff') whose referent is unclear, which slightly undercuts crispness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the full burden of describing the return value, and it only gestures at it ('the single next thing ... with its handoff'). An agent knows the flavor of the response but not its shape, so it is minimally adequate for a zero-param read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. No parameter guidance is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It conveys that the tool surfaces a prioritized next item plus a handoff, but the phrasing is abstract ('the single next thing that needs attention') rather than a clear verb+resource. With no output schema, an agent cannot pin down what object it actually returns or how it differs from siblings like forbiz_state or forbiz_get_action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a faint implication of when to call it (when you need to know what to do next), but no explicit when/when-not and no routing to alternatives. Given ~19 siblings covering state, actions, and history, the absence of any differentiation is a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_postponeMove the expected signal dateC

Push the date the signal is expected (POST /actions/{id}/postpone).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
reasonNo
expectedSignalAtYesISO 8601 date-time, e.g. 2026-10-15T14:00:00Z

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds the HTTP endpoint, confirming it is a mutating POST call, but says nothing about whether the previous expected date is overwritten, what the reason is used for, or what the response returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no waste; the action is stated before the endpoint parenthetical. Very terse, but nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema and only partial parameter documentation, the description leaves too much unstated: effect on existing signal state, role/auth requirements, and the purpose of reason. An agent has enough to guess a call but not to call it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%; expectedSignalAt is documented in the schema but id and reason are not. The description gestures at the expected date but adds no meaning for the required id or the optional reason field, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (push/postpone) and resource (the date the signal is expected), plus the underlying endpoint POST /actions/{id}/postpone. It is clear what the tool does, though it does not explicitly differentiate itself from siblings such as forbiz_close or forbiz_mark_executed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of alternatives. The agent must infer that this is the tool for rescheduling an expected signal rather than recording, claiming, or closing one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_promptsQueue of pending itemsA
Read-only

Everything waiting, grouped (needs_decision, needs_feedback, waiting, needs_review_date), each with timing.available_commands: what you may do right now (GET /prompts).

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoOnly one group, e.g. needs_feedback

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuine value by disclosing the grouping taxonomy (needs_decision, needs_feedback, waiting, needs_review_date) and the timing.available_commands semantics, which tell the agent the response shape beyond what annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence front-loads the resource and its grouping, with the endpoint appended. The dotted 'timing.available_commands' notation is slightly cryptic, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must carry the return-shape burden, and it does so by naming the groups and the timing/available_commands fields. It omits ordering or pagination behavior, but for a read-only queue view with full annotation coverage it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single optional 'group' parameter, so baseline is 3. The description goes further by enumerating the concrete group values that the filter accepts, adding meaning beyond the schema's terse 'Only one group, e.g. needs_feedback'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly conveys that this returns the full queue of pending items grouped by category, effectively a list/get of waiting work. The verb is implicit ("Everything waiting") rather than a crisp action word, and it does not explicitly contrast itself with siblings like forbiz_next, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer that this is the tool to call for a complete view of the pending queue, versus forbiz_next for the next single item. There is no explicit when-to-use/when-not statement and no named alternatives, so it stays at the minimum-viable level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_record_signalRecord the signal that came backA

Record what actually happened after the action (POST /signals). A signal is written once; a correction is a new record.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionIdYes
actualSignalYesWhat actually came back, in plain words
learningNoteNo
outcomeStatusNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so mutation and openness are covered structurally. The description adds genuinely new behavioral context: the signal is written once and corrections are new records, which tells the agent about immutability and the append-only model. It omits auth requirements and failure handling, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action and followed by the one behavioral caveat that matters. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description needn't explain return values, and annotations cover the mutation profile. But for a four-parameter tool with 25% schema coverage and a rich outcomeStatus enum, the description is too thin on parameter meaning and sibling routing to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, so the schema does not carry the load. The phrase 'what actually happened' loosely maps to actualSignal, but actionId, learningNote, and the outcomeStatus enum values (expected/partial/unexpected/deferred) get no explanation in the description, leaving four parameters largely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (record) and resource (the signal / what happened after the action), plus the underlying endpoint POST /signals. It is clear on its own, but it never names or contrasts with the obvious sibling forbiz_check_signal or forbiz_mark_executed, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Record what actually happened after the action' implies the moment to call it, and the write-once note hints at the correction workflow. However there is no explicit when-to-use versus check_signal, mark_executed, or close, and no stated prerequisites, leaving usage to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_requestCall any Forbiz routeA

Escape hatch for any other route of the Forbiz Agent API (https://forbiz.io/openapi.json): projects, decisions, delegations, outreach, policies, export, purchases. The path is relative to the API base, e.g. '/projects' or '/decisions/recommendation'. Forbiz enforces capabilities server-side.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYesRoute path starting with /
queryNo
methodYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true and destructiveHint=false, and the description usefully adds that capabilities are enforced server-side, which tells the agent it cannot exceed its permissions. It does not disclose error/response behavior, whether POST bodies are validated, or any reversibility concerns for arbitrary mutations, so it adds only moderate context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the tool's identity, followed by the resource list, path-format example and the server-side enforcement note. Every sentence carries information and nothing is padded, though the parenthetical URL could be folded more tightly into the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a generic untyped HTTP passthrough with nested body/query objects and no output schema, the description is adequate: it names the spec URL, the route families and the path convention. It still leaves the agent without guidance on request shaping or expected responses, which matters more for an open-world escape hatch than for a narrow tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% across 4 parameters, so the description must compensate, and it partially does by explaining that 'path' is relative to the API base and starting with '/', with concrete examples. It says nothing about how 'body' versus 'query' are used, nor when to choose GET versus POST beyond what the enum already shows, leaving half the burden unmet.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb+resource: a generic escape hatch that calls any Forbiz Agent API route, and it enumerates the route domains (projects, decisions, delegations, outreach, policies, export, purchases) so the agent knows the surface area. The phrase 'any OTHER route' implicitly distinguishes it from the purpose-built siblings, but it never names one, leaving differentiation slightly inferential.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Escape hatch for any other route' clearly signals this is the fallback when no dedicated tool exists, and the pointer to the OpenAPI spec plus concrete path examples ('/projects', '/decisions/recommendation') tell the agent how to pick a route. There is no explicit statement of when NOT to use it or which sibling to prefer, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_startOpen a Forbiz workspaceA

Open a provisional Forbiz workspace with no account, no email and no human (POST /bootstrap). The credential is stored locally by this server and never shown. Returns the workspace, the trial limits and a claim link for the owner. Call it once; if a credential already exists it refuses unless replace is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
replaceNoOpen a new workspace even if a credential is already stored
agent_nameYesYour name as an agent, e.g. 'Acme ops agent'
workspace_nameNoName of the business or workspace

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover the generic safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true). The description goes well beyond them: the credential is stored locally, never displayed, and a second call is refused unless replace is true — side-effect and state semantics the annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the action and endpoint, then credential handling, then return payload and the idempotency caveat. No filler and no repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still names the return shape (workspace, trial limits, claim link), covers auth/credential handling, and flags the re-invocation constraint. An agent has everything needed to call this correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3. The description adds real meaning for replace by tying it to the refusal behavior ('it refuses unless replace is true'), making the parameter's purpose concrete in workflow terms, though agent_name and workspace_name are left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Open a provisional Forbiz workspace') plus the underlying endpoint (POST /bootstrap), which immediately distinguishes it from sibling lifecycle tools like forbiz_close or forbiz_claim_link. The 'provisional / no account, no email, no human' framing tells an agent exactly what kind of workspace is created.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Call it once' and documents the refusal behavior when a credential already exists, with the condition that selects the alternative path (replace=true). That is real when-to-use and when-not-to-use guidance rather than an implied hint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forbiz_stateWorkspace stateB
Read-only

Overview of the workspace: queues, counts and next priorities (GET /state).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and reach are covered. The description adds the concrete payload contents (queues, counts, next priorities), which is useful, but says nothing about freshness, size, or access requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that names the resource first and appends the endpoint as a parenthetical. No filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing the return value; it gestures at the shape (queues, counts, next priorities) but not the structure of those fields. For a parameterless read tool this is adequate but thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. Schema description coverage is 100% and no parameter guidance is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear resource (workspace overview) and enumerates the content: queues, counts and next priorities, with the underlying endpoint. It does not differentiate itself from siblings such as forbiz_next, which also deals with priorities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is given. The mention of 'next priorities' actually overlaps with the sibling forbiz_next, and the description never clarifies which tool an agent should pick for that purpose or when a full state overview is preferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 20 tool updatesv0.1.0
    • First observedforbiz_action_history
    • First observedforbiz_add_evidence
    • First observedforbiz_agents
    • First observedforbiz_check_signal
    • First observedforbiz_claim_link
    • First observedforbiz_close
    • First observedforbiz_close_without_signal
    • First observedforbiz_commit
    • First observedforbiz_find_evidence
    • First observedforbiz_get_action
    • First observedforbiz_mark_executed
    • First observedforbiz_me
    • First observedforbiz_next
    • First observedforbiz_postpone
    • First observedforbiz_prompts
    • First observedforbiz_record_signal
    • First observedforbiz_request
    • First observedforbiz_search
    • First observedforbiz_start
    • First observedforbiz_state

TDQS

B3.4/5.0

Scored across 20 tools

Disambiguation4/5

Tools largely target distinct resources and lifecycle steps, and the descriptions explicitly separate similar-looking operations. A few pairs remain easy to confuse—next/prompts/state all surface pending work, and search/find_evidence both retrieve evidence—but the descriptions usually resolve the choice.

Naming Consistency4/5

All tools use the same forbiz_ prefix and snake_case, with no casing or abbreviation chaos. The only inconsistency is that some names are verb phrases (forbiz_commit, forbiz_get_action) while others are noun-like views (forbiz_state, forbiz_agents), so the pattern is readable but not uniformly verb_noun.

Tool Count3/5

20 tools is on the heavy side for an MCP server and pushes the practical limit before agents must sift through many closely related lifecycle calls. While most tools map to distinct operations, some read-only views and status checks could arguably be consolidated.

Completeness4/5

The core action lifecycle is well covered: commit, execute, check/record signal, postpone, close, close-without-signal, history, and detail. Evidence and workspace bootstrap/ownership are also present, and the generic forbiz_request escape hatch prevents dead ends for projects, decisions, and other API routes, though those domains lack dedicated tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Gives AI agents persistent memory, handoffs, and shared context across sessions, enabling seamless continuity and multi-agent collaboration.
    25 npm
    67
    -
  • A
    license
    A
    quality
    A
    maintenance
    Self-hosted task tracker and MCP server for AI coding agents. Append-only case files preserve decisions, failed attempts, questions, and check results across sessions. A live web board lets people track progress and answer agents. Runs locally in Docker and connects to Claude Code, Codex, Cursor, and other Streamable HTTP MCP clients. MIT licensed.
    10
    30
    6
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI coding agents to record and resume engineering work as durable, byte-exact threads of focus, decisions, evidence, and next steps.
    2
    Functional Source , Version 1.1, ALv2 Future