Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

BriefGate

NPM · @BRIEFGATE/MCP · SCANNED SEP 21

Client intake for AI agents: get files, copy and logins from clients, chased automatically.

Available components

+3 this week 87 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 96 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to sekera-radim/briefgate-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability62
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 5348 tokens (~356/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management67
  • Stability observed for 20 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 94% of tool parameters carry a description.Partial
  • Structured output schemas are declared (87% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the BriefGate MCP server?

BriefGate runs locally as an npm package, launched with npx -y @briefgate/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @briefgate/mcp

# add to Claude Code
claude mcp add sekera-radim-briefgate -- npx -y @briefgate/mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "sekera-radim-briefgate": {
      "command": "npx",
      "args": [
        "-y",
        "@briefgate/mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "sekera-radim-briefgate": {
      "command": "npx",
      "args": [
        "-y",
        "@briefgate/mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add sekera-radim-briefgate -- npx -y @briefgate/mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sekera-radim-briefgate": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@briefgate/mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add sekera-radim-briefgate --command npx --arg -y --arg @briefgate/mcp
# ~/.hermes/config.yaml
mcp_servers:
  sekera-radim-briefgate:
    command: "npx"
    args: ["-y", "@briefgate/mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "sekera-radim-briefgate": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@briefgate/mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add sekera-radim-briefgate -t stdio -c npx -a -y @briefgate/mcp
// mcp.json
{
  "mcpServers": {
    "sekera-radim-briefgate": {
      "command": "npx",
      "args": [
        "-y",
        "@briefgate/mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 +11
    • Known CVEs: unverified → pass security
    • Dependency health: unverified → 0.85 functional
  • 16 Sept 26 −10
    • Malware scan: pass → unverified security
    • Known CVEs: pass → unverified security
    • Tool safety: pass → unverified security
    • Stability: 0.47 → unverified security
    • Capabilities: pass → unverified functional
    • Dependency health: 0.84 → unverified functional
    • Tool coverage: 100 → unverified functional
    • First check of Tool coverage: 87 functional
    • First check of Schema quality: unverified functional
    • Package version: 0.9.0 → 0.10.5 functional
    • Package version: 0.9.0 → 0.10.4 functional
    • Package version: 0.9.0 → 0.10.1 functional
    • Package version: 0.9.0 → 0.10.0 functional
  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 7 Sept 26 +16
    • Malware scan: unverified → pass security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed npm/@briefgate/mcp@0.10.5

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo sekera-radim/briefgate-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/sekera-radim/briefgate-mcp/.github/workflows/publish.yml@refs/tags/v0.10.5
Rekor log index 2862967178
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:793dd75a65eb8207f70839b7baba1063a6be01962e84deb959f49c78583c61045cf434d8c2ee0b1186543e0d92aeec8b560f9ffd93353f775a231bbb0

Background: How many MCP packages publish verified provenance →

Dependencies 96 packages
Packages resolved 96
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 15 exposed · ~5,135 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_items ~123

Add new items to an already-sent intake — for example, when you realise mid-project that you also need a favicon, social media assets, or additional credentials. The client is notified about the new items. Existing items and their submitted values are not affected. Returns the updated intake object. Items must follow the same key/type/label rules as define_intake (snake_case keys, type-specific constraints).

NameTypeReqDescription
intake_idstringyesIntake ID returned by define_intake.
itemsarrayyesNew items to add. Same schema as define_intake items.
NameTypeReqDescription
folder_idstring|null
follow_upobjectHow to learn this intake is done — present unless a webhook already covers it. Mirrors FollowUpAdvice in client.ts.
intake_idstring
itemsarray
portal_urlstring
statusstring

No examples provided.

create_folder ~113

Create a new folder to group intakes, e.g. one per client. Call list_folders first and reuse a matching folder — only create one when none of the existing folders fits. Fails with folder_exists if a folder with this name already exists; use list_folders to find it instead. Returns the created folder { id, name, sort_order, intake_count, created_at }.

NameTypeReqDescription
namestringyesFolder name, e.g. the client's or project's name. Must be unique in your account.
NameTypeReqDescription
created_atstring|null
idstring
intake_countnumber
namestring
sort_ordernumber

No examples provided.

define_intake ~1,710

Create a new client intake request — a branded portal where the client submits logos, copy, files, credentials, and other assets. BriefGate sends the invite email and chases the client automatically until all items are collected. Call this once at the start of a project, after you know what assets you need. Returns { intake_id, portal_url, status, follow_up }. Save intake_id — you need it for all follow-up calls. AFTER CREATING AN INTAKE, SET UP HOW YOU WILL LEARN IT IS DONE. Nothing pushes to you on its own: MCP is request/response, so the server cannot wake you when the client finishes. Creating the intake and never checking again is the common failure — the completed work then sits in the portal until a human happens to look. The returned follow_up block tells you which of the two mechanisms applies: - follow_up.recommended = "webhook" — the account already has an endpoint; deliveries will arrive there and you need do nothing further. - follow_up.recommended = "schedule" — no endpoint is registered. If you control a service that can receive public HTTPS, register one with manage_webhook. Otherwise tell the user to set up a recurring check (cron, a systemd timer, a scheduled task in their agent host) that calls get_intake_status every follow_up.schedule.every_hours hours until follow_up.schedule.until, and offer to configure it for them. Example: { "project_name": "Website for John Finance", "client": { "email": "john@example.com", "name": "John", "language": "cs" }, "due_date": "2026-08-15", "branding": { "accent_color": "#1B2A4A", "sender_name": "Radim" }, "items": [ { "key": "logo", "type": "image", "label": "Company logo", "constraints": { "formats": ["svg","png"], "min_width": 512 } }, { "key": "hero_copy", "type": "longtext", "label": "Homepage headline (2–3 sentences)", "constraints": { "max_chars": 400 } }, { "key": "wp_admin", "type": "secret", "label": "WordPress admin credentials" }, { "key": "photos", "type":…

NameTypeReqDescription
auto_approve_hoursnumberHours after submission before an item is auto-approved without agent review. Default: 72. Set to 0 to require explicit approval.
brandingobjectOverride account-level branding for this intake.
chase_at_timestringLocal time of day to send reminders at, "HH:MM" in the client's timezone (e.g. "07:00"). Anchors the cadence to a clock time instead of counting from the invite, and needs an interval measured in who…
chase_intervalintegerHow often to remind, only with chase_schedule="custom". Pair with chase_interval_unit. Defaults to every 3 days when omitted. The interval must work out to at least 5 minutes and at most 90 days.
chase_interval_unitstringUnit for chase_interval. Defaults to "days".
chase_schedulestringAutomated reminder cadence. default=T+2d,T+5d,T+9d,weekly. gentle=T+3d,T+8d,biweekly. aggressive=T+1d,T+3d,T+5d,every-other-day. custom=every chase_interval chase_interval_unit. off=no auto reminders.
clientobjectyesClient contact details.
client_briefstringFree-text brief shown to the client at the top of the portal, above the requested items — information from you to them: an offer, instructions, or context for why you are asking for these items. Up t…
due_datestringDeadline in YYYY-MM-DD format. Shown in the portal and used to escalate chase cadence.
email_copyobjectYour own subject and intro lines, overriding the built-in translation for this intake. Placeholders: {sender}, {project}, {client}, {count}, {minutes}, {due}. An unknown placeholder is rejected rathe…
folder_idstringPut this intake in an existing folder from list_folders instead of leaving it unfiled. Folders group intakes by client or project — reuse one for a returning client rather than creating a duplicate w…
itemsarrayyesList of assets to collect. Each item has key, type, label, and optional constraints.
max_remindersReminders to send before the intake is marked stalled and handed back to you (default 3). An integer from 1 to 1000, or the string "unlimited" to keep reminding until the client finishes. Raise it fo…
project_namestringyesHuman-readable project name shown in the invite email and portal heading.
respect_quiet_hoursbooleanHold reminders to the client's 08:00-19:00 local window (default true). A cadence of minutes or hours pauses overnight and resumes in the morning; set false to send around the clock.
retentionobjectHow long BriefGate keeps this intake after it is finished. Default: purged 90 days after the client completes. Use mode "on_delivery" when the intake holds anything sensitive (credentials, personal p…
sendbooleanWhether to send the invite email immediately. Default: true. Set to false to create a draft and call /v1/intakes/:id/send later.
templatestringTemplate slug to pre-populate items (e.g. "restaurant-website", "consulting-firm").
NameTypeReqDescription
follow_upobjectHow to learn this intake is done — present unless a webhook already covers it. Mirrors FollowUpAdvice in client.ts.
intake_idstring
noticesarrayCadence caveats, present only when chase_schedule="custom" makes them relevant.
portal_urlstring
statusstring

No examples provided.

get_intake_results ~313

Retrieve the typed submitted values from a client intake. Files are returned as signed download URLs that expire after 24 hours. Secrets (type=secret, e.g. passwords, API keys) are decrypted and included only in the first retrieval. Later calls return first_reveal: false in meta and omit the value, so the user should be ready to receive a secret before this tool is called on an intake that contains one. Use only_new=true to get only items submitted since the last call (useful in webhook-driven workflows). Use include_pending=true to also return partially filled items. Returns { results: { <key>: <typed value> }, meta: { <key>: { type, status, submitted_at, first_reveal? } } }. For a DECISION item (assignee=owner, type select/multiselect), results holds the current answer and meta.<key>.decided_by is "owner" (answered by the account holder) or "agent_proposal" (only a proposal exists). Proposals are returned even without include_pending. A proposal does not bump revision, so only_new returns decisions the account holder has answered or changed since the last call.

NameTypeReqDescription
include_pendingbooleanInclude items not yet submitted (useful for partial progress checks). Default: false.
intake_idstringyesIntake ID returned by define_intake.
only_newbooleanReturn only items submitted or updated since the previous get_intake_results call. Default: false.
NameTypeReqDescription
intake_idstringyes
metaobjectyesKeyed the same as results.
resultsobjectyesKeyed by this intake's own item keys. A value's shape depends on that item's type.
statusstringyes

No examples provided.

get_intake_status ~167

Check the completion status of a client intake — which items are submitted, pending, or need revision; the history of automated chase emails sent; and when the client last opened the portal. Use this to decide whether to send a manual reminder (send_chase), request a revision (request_revision), or fetch results (get_intake_results). Returns per-item status and chase history. This is also the call a scheduled check should make when no webhook is registered — see follow_up in the define_intake response for the cadence. When status becomes "completed", fetch the results with get_intake_results and carry on with the work that was waiting on them.

NameTypeReqDescription
intake_idstringyesIntake ID returned by define_intake (e.g. "in_8f3k").
NameTypeReqDescription
chasesarrayyes
client_briefstringThe brief shown to the client above the requested items, if one is set.
client_last_seenstring|null
due_datestring|null
intake_idstring
itemsarrayyes
progressobjectyes
statusstringyes

No examples provided.

list_folders ~84

List the folders in your account, used to group intakes by client or project. Call this before create_folder or before setting folder_id on define_intake, update_intake, or list_intakes — reuse an existing folder for a returning client instead of creating a duplicate. Returns { folders: [{ id, name, sort_order, intake_count, created_at }] }.

Input schema present but exposes no named parameters.

NameTypeReqDescription
foldersarrayyes

No examples provided.

list_intakes ~239

List all intakes in your account, optionally filtered by status, client email, folder, or a text search. Use this to get an overview of active projects, find a specific intake by the client's email when you have lost the intake_id, check how many intakes are currently in progress, or see what's in a folder from list_folders. Returns { intakes: [...], total } where each intake includes intake_id, project_name, status, created_at, due_date, folder_id, and portal_url.

NameTypeReqDescription
client_emailstringFilter by client email address.
folder_idstringFilter by folder, using an id from list_folders. Pass the literal string "none" to see only intakes that are not in any folder.
limitnumberMaximum number of results (1–100). Default: 20.
offsetnumberPagination offset. Default: 0.
qstringFree-text search: matches a substring of project name, client name, or client email.
statusstringFilter by intake status. Omit to return all.
NameTypeReqDescription
intakesarrayyes
totalnumberyes

No examples provided.

login ~308

Sign in without pasting an API key, the same way `snyk_auth` works: this opens a browser page where a human approves this device, then stores the issued key locally. Call this whenever a tool reports "Not signed in" or that the stored key was revoked or expired. This is a TWO-PHASE tool because approval can take minutes — longer than a single tool call should block for: 1. The first call starts the sign-in and returns immediately with a URL and a short code (e.g. "WDJB-MJHT"). Tell the user to open the URL and confirm the code; a browser is also opened automatically when possible. 2. Call `login` again (no arguments change) to check progress. While the human hasn't approved yet, it replies that it's still waiting. Once approved, the same call reports success and the key is saved — no further action needed, other tools start working immediately. Do not wait silently for minutes on one call — call this tool again after telling the user to approve, and again if they say they've clicked Allow. Has no effect if a key is already supplied via the `--api-key` flag or the `BRIEFGATE_API_KEY` environment variable — those always take priority over a locally stored one, so this tool says so instead of running the flow. Not available when this server is running as the shared hosted endpoint (mcp.briefgate.dev): there, connecting a client already triggers OAuth automatically.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

logout ~100

Remove the API key `login` stored locally for this BriefGate server, and best-effort revoke it on the server too (a `DELETE /v1/keys/current` call using that same key). If the revoke call fails — no network, the API is unreachable — the local copy is still removed; the response says so and points at the BriefGate dashboard to revoke it there instead. Not available when this server is running as the shared hosted endpoint.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

manage_recipients ~221

Add, remove, or reinstate a person who receives an intake's invite and reminders, alongside or instead of the primary client. action="add" invites another address the same way also_notify does at define_intake time — its own message, its own bounce state; pass name to address it by name. action="remove" stops future reminders to that address. action="reinstate" is for a bounce that was wrong — the person did get the e-mail — and clears the bounce flag so reminders resume; if that address was the only one still being chased, the schedule is re-planned from now. Fails if the address is not on the intake, or — for reinstate — if it never bounced in the first place.

NameTypeReqDescription
actionstringyesWhat to do with the address.
emailstringyesThe recipient's e-mail address.
intake_idstringyesIntake ID returned by define_intake.
namestringTheir name, used to address their copy. Only used with action="add".

Structured output declared, but exposes no named fields.

No examples provided.

manage_webhook ~383

Register, list, or remove a webhook endpoint so BriefGate pushes intake events to your service instead of you polling for them. Use this ONLY if you control a service that can receive public HTTPS requests. An agent running in a terminal cannot — for that case do not register anything and check on a schedule with get_intake_status instead. A registered endpoint that cannot receive produces failing deliveries and a false impression that the work is being watched. action="create" returns a signing "secret" exactly once. The receiving service needs it to verify the signature on every delivery (verifyWebhookSignature from @briefgate/mcp/webhook), and it cannot be shown again. If it is ever exposed, there is no rotation in place — delete the endpoint and create a new one, which issues a fresh secret. Events: intake.completed (all required items in — the one to act on), item.submitted (a single item arrived), client.viewed (the client opened the portal), chase.bounced (a reminder failed to deliver), intake.overdue (the due date passed with required items outstanding — the one to act on when work is blocked), intake.stalled (fires only when the intake sets max_reminders; without it this event never arrives).

NameTypeReqDescription
actionstringyesWhat to do. "list" needs no other argument.
eventsarrayEvents to receive. Required for action="create". For "tell me when the client is done", this is ["intake.completed"].
formatstringPayload shape. "raw" (default) is the signed BriefGate envelope; "slack" and "discord" post a message those services render directly.
urlstringHTTPS endpoint to deliver to. Required for action="create".
webhook_idstringEndpoint to remove. Required for action="delete".

Structured output declared, but exposes no named fields.

No examples provided.

request_revision ~165

Ask the client to resubmit a specific item with a note explaining what is wrong. Use this after reviewing get_intake_results and finding an item that does not meet requirements — for example a blurry logo, copy that is too long, or a broken URL. The client is notified automatically and the item status moves to needs_revision. Returns { status: "revision_requested", item_key }.

NameTypeReqDescription
intake_idstringyesIntake ID returned by define_intake.
item_keystringyesThe key of the item to revise (e.g. "logo", "hero_copy").
notestringyesPlain-language explanation shown to the client (e.g. "Logo is blurry — we need at least 512 px wide in SVG or PNG with a transparent background").
NameTypeReqDescription
item_keystring
statusstring

No examples provided.

send_chase ~109

Send a manual reminder to the client outside the automatic schedule. Use when a deadline is approaching and the client has not responded to automatic reminders, or when you want to send an SMS after email attempts have failed. The automatic chase schedule continues after this call — this is an extra nudge, not a replacement. Returns { sent: true }.

NameTypeReqDescription
channelstringDelivery channel. Email is the only one offered.
intake_idstringyesIntake ID returned by define_intake.
NameTypeReqDescription
sentboolean

No examples provided.

update_intake ~743

Change settings on an intake that has already been sent — project name, due date, reminder cadence, quiet hours, which folder it's in, the client brief, or the client's name, phone, language, and timezone. Use this instead of deleting and recreating the intake when a deadline moves or the chase cadence needs to change. If any of chase_schedule, chase_interval, chase_interval_unit, chase_at_time, max_reminders, respect_quiet_hours, due_date, or client.timezone is included, every pending reminder is cancelled and the schedule is re-planned from now — reminders already sent still count toward max_reminders. Raising max_reminders (or setting it to "unlimited") past the number already sent on a stalled intake reactivates it and resumes chasing. The client's e-mail address cannot be changed here — the portal link and login are bound to it. Use manage_recipients to add, remove, or reinstate an address. folder_id moves the intake to a different folder (an id from list_folders); set it to null to remove the intake from any folder. It never touches the chase schedule. client_brief replaces the free-text brief shown to the client above the requested items; set it to null to clear it. Documents attached to the brief are managed via the dashboard or the REST endpoint POST /v1/intakes/:id/brief/files, not through this tool. Fails if the intake is archived. At least one field must be given. Returns the full, updated intake object.

NameTypeReqDescription
chase_at_timestring|nullAnchor reminders to this 24-hour local time in the client's timezone (e.g. "07:00"), overriding quiet hours. null clears it.
chase_intervalnumberHow often to remind, only meaningful with chase_schedule="custom". Pair with chase_interval_unit.
chase_interval_unitstringUnit for chase_interval.
chase_schedulestringAutomated reminder cadence. default=T+2d,T+5d,T+9d,weekly. gentle=T+3d,T+8d,biweekly. aggressive=T+1d,T+3d,T+5d,every-other-day. custom=every chase_interval chase_interval_unit. off=no auto reminders.
clientobjectClient fields to change. Email cannot be changed here — use manage_recipients.
client_briefstring|nullFree-text brief shown to the client at the top of the portal, above the requested items — information from you to them: an offer, instructions, or context. Up to 5000 characters. null clears it. Docu…
due_datestring|nullDeadline in YYYY-MM-DD format. null clears it.
folder_idstring|nullMove this intake to a different folder, using an id from list_folders. null removes it from any folder.
intake_idstringyesIntake ID returned by define_intake.
max_remindersnumber|stringCap on reminder attempts (1-1000), or "unlimited". Raising this above the number already sent reactivates a stalled intake.
owner_notestring|nullPrivate note, never shown to the client. null clears it.
project_namestringHuman-readable project name shown to the client.
respect_quiet_hoursbooleanWhether reminders pause outside 08:00-19:00 in the client's timezone.

Structured output declared, but exposes no named fields.

No examples provided.

update_item ~357

Change one item on an intake that is already with the client — its type, label, hint, whether it is required, and which file formats it accepts. Reach for this when the field turns out to be the wrong shape: you asked for an image and the client only has their logo as a PDF, or what you asked for as a line of text is really a file. Widening the accepted formats or switching the type unblocks them without adding a duplicate item and waiving the original. The item key cannot be changed — results come back under it, so renaming would break whatever reads them. Add a new item instead. If the client has already answered and the change would make their answer invalid, the call fails and nothing is touched. Repeat it with discard_submitted_value: true to clear the answer and ask them again. A change that leaves their answer valid (a new label, a wider limit) never discards anything.

NameTypeReqDescription
constraintsobject|nullSame shape as define_intake, e.g. { "formats": ["svg","png","pdf"] }. null clears all constraints.
discard_submitted_valuebooleanGo ahead even though it throws away what the client already sent. Only set this after the call has failed once for that reason.
helpstring|nullHint under the label. null clears it.
intake_idstringyesIntake ID returned by define_intake.
item_keystringyesKey of the item to change.
labelstringHuman-readable label shown to the client.
optionsarray|null
patternstring|null
requiredboolean
typestring
NameTypeReqDescription
discarded_submitted_valueboolean
itemobject

No examples provided.

Common questions

What is the BriefGate MCP server?

BriefGate is an MCP server listed in the public MCP registry as io.github.sekera-radim/briefgate. Client intake for AI agents: get files, copy and logins from clients, chased automatically. This page covers its npm package (@briefgate/mcp).

Is the BriefGate MCP server safe to use?

BriefGate scores 87 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the BriefGate MCP server expose?

BriefGate exposes 15 tools: define_intake, get_intake_status, get_intake_results, request_revision, send_chase, and 10 more. Their descriptions and schemas cost roughly 5,135 tokens of context every time the server is loaded.

Is the BriefGate MCP server still maintained?

BriefGate is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the BriefGate MCP server under?

BriefGate declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.