BLOMBoundary Layer Labs
All guides

DocsAgents

The MCP tools

BLOM's MCP server offers eighteen tools, for task work, learning BLOM, drafts, notes, reviews, and feedback. No tool approves anything.

The server

Your agent reaches the MCP server at your organization's own address, sending its key as Authorization: Bearer:

https://blom.boundarylayerlabs.com/o/{organization id}/mcp

The server speaks Streamable HTTP, one POST per message, at MCP protocol revisions 2026-07-28, 2025-11-25, and 2025-06-18. A request is at most 256 KiB.

Every key sees all eighteen tools, and BLOM checks the agent's own access on every call: a Read only key, for example, is refused when it tries to change something. Each tool's description says the access it needs, its side effects, and its preconditions, and ends with an example of its arguments. Use the input schemas discovery returns: a tool refuses a field it doesn't list.

What every call returns

A call either succeeds or is refused, and its status says which:

  • succeeded brings the answer in data, and principal: the agent as actorId, its organization, its accountable owner, and its role. A change also brings a receipt, with its requestId, when it was committed, the agent and its accountable owner, the channel, and whether it was replayed.
  • refused brings an error, with its code, a message, any fieldErrors, and retry.mode. Most refusals also carry recovery.instruction, the next step in words.

Every change takes a new requestId, a UUID, and may carry sessionName, the session's own label for it. Retry a lost call with the same requestId and the same input: it returns the first result and changes nothing more.

Task work

Nine tools take a task from the queue to its handoff. Start, refresh, and return puts them in order.

ToolWhat it doesInputs that matter
blom_read_queueReads the next actions waiting on the agent, with their claim state and the IDs and revisions the other tools take, and the latest notes that mention it.Optional filter by product, type, or claim state; page
blom_claimClaims a next action before the agent works on it. On a Job, it assigns the Job to the agent, and takes it over at once from anyone who holds it.taskId, nextActionId, expected; optional scope, workspace, note; mode resume or takeover, with priorClaimId, for a Stale claim
blom_renew_claimRenews the claim's lease while the agent works, with a progress note.taskId, claimId, expected, note
blom_completeCompletes a next action with one of its outcomes, ending the claim, and may suggest the next action.taskId, nextActionId, expected, outcomeId; optional note, reference, suggestion, links, tokenUse; environment on a Release step
blom_release_claimReleases the claim unfinished. The next action stays current and returns to the queue.taskId, claimId, expected, reason
blom_export_contextExports the task's context from BLOM's records, checked against what the agent may read, with a manifest of each part.taskId, mode: initial, page with cursor, refresh with baselineId and contextVersion, or saved with exportId; optional representation, maxBytes
blom_return_closureRecords the session's handoff: what changed, the checks, the evidence, and the remaining work.taskId, sessionName, reportedClaimId, and its lists; optional tokenUse
blom_capture_taskCaptures a new task, a Job or a report, in Backlog, with a blank next action.typeId, title, homeId; for a Job, optional initiativeId, targetItems, parentJobId
blom_read_work_listReads the work list by priority and rank, with the initiative choices for capturing a Job.Optional filter, page

Learning BLOM

Three reads teach the agent how BLOM works and what your organization holds. None records anything. What BLOM tells your agent says what they answer.

ToolWhat it doesInputs that matter
blom_read_primerReads BLOM's method in brief, with your organization's products, levels, PDLCs, and adopted standards, and the agent's own name, role, and accountable owner.None: send {}
blom_read_itemsReads the Items table, or one item with its ancestors, versions, children, and the levels permitted below it.None for the table, or productItemId, filters, sort, page; itemId or number, such as 1-2-3, for one item
blom_read_standardsReads the standards register, or one standard's text at a named revision.None for the register; documentId, revisionNumber, and revisionPin for a revision's text

Drafts and notices

Three tools let the agent draft and propose. Nothing they save takes effect until it's approved or accepted in BLOM.

ToolWhat it doesInputs that matter
blom_draft_standardDrafts a new standard, or a standard's next revision. A draft governs nothing until it's approved for Adopt.markdown; documentId and editedFromPin for a next revision, or categoryId and title for a new standard
blom_propose_itemsProposes capabilities and features for a product, as one list. Nothing is added until a person accepts it on Product summary.productItemId; 1 to 200 entries, each with ref, levelId, name, and optional purpose and parent
blom_dismiss_default_noticeDismisses a notice that BLOM ships a newer default for a standard, where it doesn't apply, for everyone in the organization. It never accepts the default.documentId, defaultRevision, and a reason of 1 to 500 characters

Notes and reviews

ToolWhat it doesInputs that matter
blom_add_noteAdds a short note to a task's timeline, and can mention people or agents who can read the task. A note never holds work to do, and a correction is a new note.taskId, a body of at most 500 characters; optional mentions, up to 20, and correctsNoteId
blom_record_reviewRecords a review the agent did, whole, on the Job it serves: what it reviewed, its independence, its verdict, and its findings.taskId of a Job, subjects, independence, verdict, findings

Feedback about BLOM

blom_send_feedback sends feedback about BLOM itself to Boundary Layer Labs, the company that makes it: yours, when you ask the agent to pass it on, or the agent's own, about how BLOM's tools work for it. It isn't for your organization's work, which belongs in tasks and notes, and it must never carry secrets, keys, code, or your records.

It takes a body of at most 500 characters. The person the agent answers to sees it in BLOM under Help, Your requests, with any reply. An organization's agents can send 20 an hour, and any key may send it, Read only too.

What no tool can do

  • No tool approves anything or passes a gate.
  • No tool adds an item, or accepts or discards a proposal. A person accepts proposed items on Product summary.
  • No tool makes a standard govern. A draft governs nothing until it's approved for Adopt, which no MCP tool can do, and only a person accepts a newer default.
  • A review is evidence, not approval. Even a verdict of approved grants nothing, changes no gate, and completes nothing.
  • No tool registers agents, issues keys or credentials, grants roles or delegations, invites people, or changes settings. People do those in BLOM.
  • Your tool's own permissions aren't BLOM's. Allowing a tool in Claude Code or Codex never widens what the agent may do in BLOM, or approves anything there.

The same key also works with the public API, which offers an agent more of BLOM's operations, as its access allows.

When a call is refused

CodeWhat it means, and what to do
invalid_inputA field is missing, wrong, or not one the tool lists; fieldErrors names it. Correct the input, and send it under a new requestId.
not_found_or_deniedThe record doesn't exist, or the agent may not see it. Use identifiers BLOM returned.
operation_not_permitted, human_onlyThe agent may not make this change, or only a person can, in BLOM. Ask the agent's accountable owner or an Administrator.
revision_conflictThe task, its next action, or the claim changed since the agent read it. Read or export again, then decide.
held, claim_waiting, claim_stale, claim_endedSomeone else holds the step, or the agent's claim is Waiting, Stale, or ended. Read the task again. Take back a Stale claim of the agent's own with blom_claim and mode: "resume"; stop work on an ended one.
rate_limitedToo many calls this minute. Wait retry.afterMs, then send the same call again with the same requestId. Limits gives the numbers.
idempotency_conflictThe requestId was used with other input. Read the task to see what the first call did, and send the new input under a new requestId.
rebaseline_required, cursor_unavailableThe export can't continue. Start a new one with mode: "initial".

A refused key isn't a tool result: BLOM answers it with HTTP 401 or 403. Connect Codex or Claude Code says what to do.

Can't find what you need?

Write to us, and we'll answer and add it here.

service@boundarylayerlabs.com