Skip to content

Debriefing

by debriefing.io · remote · no sign-in to list tools · v2.0.0 · published by io.debriefing

Competitive intelligence: tracked competitors, evidence-backed signals, digests and battlecards.

Deletes · 14Final · 1Changes · 10

43 tools: 14 can delete or cancel things, 1 do something that can't be undone, 10 change things and 18 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http debriefing https://debriefing.io/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "draft_positioning" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "read": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

43 tools

Deletes or cancels 14Claude Code: deny
  • generate_battlecardWrites or rewrites the battlecard for one core competitor now, instead of at the next cycle.No findings

    Why it is in this group

    • The name "generate_battlecard" says "generate": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Writes or rewrites the battlecard for one core competitor now, instead of at the next cycle. It takes about a minute; read it afterwards with get_battlecard. The competitor needs finished research. Needs a paid plan or the free first week, and counts toward a daily cap per workspace. Send an idempotency_key. A retry with the same idempotency_key returns the first answer and does not act again. It starts no second job and uses no allowance or daily cap a second time.

    Annotations the server declares

    • title: Write a battlecard
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • pin_digestPins a digest for the whole team, or removes the pin with pinned false.Reads text others writeNo findings

    Why it is in this group

    • The name "pin_digest" says "pin": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Pins a digest for the whole team, or removes the pin with pinned false.

    Annotations the server declares

    • title: Pin a digest
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • pin_signalPins a signal for the whole team, or removes the pin with pinned false.Reads text others writeNo findings

    Why it is in this group

    • The name "pin_signal" says "pin": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Pins a signal for the whole team, or removes the pin with pinned false.

    Annotations the server declares

    • title: Pin a signal
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • rate_digestScores a digest from 1 to 5, says what is missing from it, or both.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Scores a digest from 1 to 5, says what is missing from it, or both. A new rating replaces your old one.

    Annotations the server declares

    • title: Rate a digest
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • rate_signalTells Debriefing whether a signal was useful to you.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Tells Debriefing whether a signal was useful to you. For not useful, add reasons and a comment. A new rating replaces your old one.

    Annotations the server declares

    • title: Rate a signal
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • remove_competitorTakes one core competitor off the watchlist.No findings

    Why it is in this group

    • The name "remove_competitor" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Takes one core competitor off the watchlist. Debriefing stops monitoring it and keeps its history. Admin only, on a paid plan.

    Annotations the server declares

    • title: Remove competitor
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • remove_monitored_pageStops watching a page that someone added on a core competitor.No findings

    Why it is in this group

    • The name "remove_monitored_page" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Stops watching a page that someone added on a core competitor. Name it by page_id or url. Admin only, on a paid plan.

    Annotations the server declares

    • title: Stop monitoring a page
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • rename_competitorChanges the display name of one tracked competitor.No findings

    Why it is in this group

    • The name "rename_competitor" says "rename": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Changes the display name of one tracked competitor. Admin only.

    Annotations the server declares

    • title: Rename competitor
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • save_signalSaves a signal to your own saved list, or removes it with saved false.No findings

    Why it is in this group

    • The name "save_signal" says "save": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Saves a signal to your own saved list, or removes it with saved false. Only you see your saved signals.

    Annotations the server declares

    • title: Save a signal
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • set_delivery_channelsTurns delivery by email and to Slack on or off.No findings

    Why it is in this group

    • The name "set_delivery_channels" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Turns delivery by email and to Slack on or off. Slack gets the finished cycle, and also the daily digest and each high signal alert when slack_digest and slack_alerts are on. Only the switches you send change. Slack needs Growth or above and a Slack connection made in the app. Channel rules for Slack are set in the app. Admin only.

    Annotations the server declares

    • title: Set delivery channels
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • set_monitoring_cadenceSets how often Debriefing runs a monitoring cycle.No findings

    Why it is in this group

    • The name "set_monitoring_cadence" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Sets how often Debriefing runs a monitoring cycle. The plan decides which cadences are allowed; get_delivery_settings lists them. Admin only, on a paid plan.

    Annotations the server declares

    • title: Set monitoring cadence
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • update_company_profileChanges fields of the workspace's company profile.No findings

    Why it is in this group

    • The name "update_company_profile" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Changes fields of the workspace's company profile. Only the fields you send change. The lists replace the old lists. Admin only. Locked while the first brief runs.

    Annotations the server declares

    • title: Update company profile
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • update_icpSets the ideal customer profile, then re-reads how much each tracked competitor overlaps it.No findings

    Why it is in this group

    • The name "update_icp" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Sets the ideal customer profile, then re-reads how much each tracked competitor overlaps it. Only the dimensions you send change; an empty list clears one. Admin only. Counts toward a daily cap per workspace. Locked while the first brief runs. Send an idempotency_key. A retry with the same idempotency_key returns the first answer and does not act again. It starts no second job and uses no allowance or daily cap a second time.

    Annotations the server declares

    • title: Update ideal customer profile
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
Can't be undone 1Claude Code: ask
  • invite_memberSends an email invitation to join the workspace as a member.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The name "invite_member" says "invite": a word for sending, and what is sent cannot be taken back.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe name "invite_member" says "invite": it sends or publishes something to other people.
    Description, as the server wrote it
    Sends an email invitation to join the workspace as a member. The invitation lasts 7 days. Inviting the same address again sends a fresh email. Admin only, on a paid plan. Send an idempotency_key. A retry with the same idempotency_key returns the first answer and does not act again.

    Annotations the server declares

    • title: Invite a teammate
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Changes things 10Claude Code: ask
  • add_battlecard_noteAdds what the team knows about a core competitor that no page says.No findings

    Why it is in this group

    • The name "add_battlecard_note" says "add": a word for a change.
    Description, as the server wrote it
    Adds what the team knows about a core competitor that no page says. The next rewrite of its battlecard reads the note as framing, never as a verified fact.

    Annotations the server declares

    • title: Add a note to a battlecard
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • add_competitorAdds a competitor to the workspace's core watchlist from its website.Reads text others writeNo findings

    Why it is in this group

    • The name "add_competitor" says "add": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Adds a competitor to the workspace's core watchlist from its website. Debriefing then monitors it. Admin only. The plan sets how many core competitors fit; get_plan_and_limits shows the free slots.

    Annotations the server declares

    • title: Add competitor
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • add_digest_noteAdds a talking point to a digest.Reads text others writeNo findings

    Why it is in this group

    • The name "add_digest_note" says "add": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Adds a talking point to a digest. The team sees it in the workspace.

    Annotations the server declares

    • title: Add a talking point to a digest
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • add_monitored_pageAsks Debriefing to watch one more page of a core competitor, such as its pricing page.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The name "add_monitored_page" says "add": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    Asks Debriefing to watch one more page of a core competitor, such as its pricing page. Changes on it then show up as signals. Up to 10 pages per competitor. Admin only, on a paid plan.

    Annotations the server declares

    • title: Monitor a competitor page
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • add_signal_noteAdds a talking point to a signal.Reads text others writeNo findings

    Why it is in this group

    • The name "add_signal_note" says "add": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Adds a talking point to a signal. The team sees it in the workspace. It never appears on a public link unless the link includes notes.

    Annotations the server declares

    • title: Add a talking point to a signal
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • draft_positioningReads the company's own website and drafts the empty positioning fields: value propositions, differentiators, and exclusions.Reads text others write1 finding

    Why it is in this group

    • The description's first verb is "read": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "read" and "website": it reads web pages, which anyone can write.

    Findings

    • Warn

      The server marks "draft_positioning" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "read": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Reads the company's own website and drafts the empty positioning fields: value propositions, differentiators, and exclusions. Filled fields stay as they are. Read the result later with get_company_profile. Admin only. Counts toward a daily cap per workspace. Send an idempotency_key. A retry with the same idempotency_key returns the first answer and does not act again. It starts no second job and uses no allowance or daily cap a second time.

    Annotations the server declares

    • title: Draft positioning
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • refresh_watchlistRefreshes the research on the core watchlist now, instead of at the next cycle.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Refreshes the research on the core watchlist now, instead of at the next cycle. It uses one update from the weekly research allowance. Admin only. Send an idempotency_key. A retry with the same idempotency_key returns the first answer and does not act again. It starts no second job and uses no allowance or daily cap a second time.

    Annotations the server declares

    • title: Refresh the watchlist
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • request_free_briefRequests a free competitive brief for a person who has no Debriefing account, and returns a claim URL.Reads text others writeNo findings

    Why it is in this group

    • The name "request_free_brief" says "request": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Requests a free competitive brief for a person who has no Debriefing account, and returns a claim URL. Debriefing researches the company and the competitors, and emails the brief to the person. The person opens the claim URL and signs up once, with the same email, to get a workspace that holds the brief. Ask the person first: send person_consented true only after they agree. One email address gets one brief this way; a repeat returns the same claim URL.

    Annotations the server declares

    • title: Request a free brief
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • research_competitorStarts the first research on one core competitor that has none yet: Debriefing reads its site and outside sources.Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "start": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Starts the first research on one core competitor that has none yet: Debriefing reads its site and outside sources. It uses one update from the weekly research allowance. Admin only. Send an idempotency_key. A retry with the same idempotency_key returns the first answer and does not act again. It starts no second job and uses no allowance or daily cap a second time.

    Annotations the server declares

    • title: Research a competitor
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 18Claude Code: allow, ask for 1 outbound
  • get_battlecardGets one battlecard by competitor_id or battlecard_id.No findings

    Why it is in this group

    • The name "get_battlecard" says "get": a word for reading.
    Description, as the server wrote it
    Gets one battlecard by competitor_id or battlecard_id. Use it when the user prepares a sales call against a competitor.

    Annotations the server declares

    • title: Get battlecard
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_company_profileGets the workspace's own company profile: description, category, target customer, positioning lists, and the ideal customer profile.No findings

    Why it is in this group

    • The name "get_company_profile" says "get": a word for reading.
    Description, as the server wrote it
    Gets the workspace's own company profile: description, category, target customer, positioning lists, and the ideal customer profile. Debriefing reads every competitor move against it.

    Annotations the server declares

    • title: Get company profile
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_competitorGets the dossier for one tracked competitor: company facts, the risk and opportunity it poses to this workspace, and the stored reads on positioning, product, pricing, funding, tra…No findings

    Why it is in this group

    • The name "get_competitor" says "get": a word for reading.
    Description, as the server wrote it
    Gets the dossier for one tracked competitor: company facts, the risk and opportunity it poses to this workspace, and the stored reads on positioning, product, pricing, funding, traffic, and more. Use it when the user asks about one competitor in depth.

    Annotations the server declares

    • title: Get competitor dossier
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_delivery_settingsGets how often Debriefing runs a monitoring cycle for the workspace, the cadences the plan allows, and where Debriefing sends its posts.Reads text others writeNo findings

    Why it is in this group

    • The name "get_delivery_settings" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "get" and "post": it reads posts, which other people can write.
    Description, as the server wrote it
    Gets how often Debriefing runs a monitoring cycle for the workspace, the cadences the plan allows, and where Debriefing sends its posts. Email and Slack each get the finished cycle. Slack also gets the daily digest and each high signal alert when those switches are on. Admin only.

    Annotations the server declares

    • title: Get delivery settings
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_digestGets one digest by id or slug, or the newest digest when no id is given.No findings

    Why it is in this group

    • The name "get_digest" says "get": a word for reading.
    Description, as the server wrote it
    Gets one digest by id or slug, or the newest digest when no id is given. Pass type daily_digest for the newest daily digest. Use it when the user asks for the latest brief.

    Annotations the server declares

    • title: Get digest
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_evidenceGets the evidence behind one signal: each source excerpt with its URL and date.Reads text others writeNo findings

    Why it is in this group

    • The name "get_evidence" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "get" and "url": it reads web pages, which anyone can write.
    Description, as the server wrote it
    Gets the evidence behind one signal: each source excerpt with its URL and date. Use it when the user asks where a claim comes from.

    Annotations the server declares

    • title: Get signal evidence
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_plan_and_limitsGets the workspace plan and every limit an agent runs into: competitor slots, the weekly research allowance, the daily caps on battlecards, ICP refreshes and positioning drafts, sh…No findings

    Why it is in this group

    • The name "get_plan_and_limits" says "get": a word for reading.
    Description, as the server wrote it
    Gets the workspace plan and every limit an agent runs into: competitor slots, the weekly research allowance, the daily caps on battlecards, ICP refreshes and positioning drafts, share link lifetimes, monitoring cadences, and which features need a paid plan. Includes the pricing link.

    Annotations the server declares

    • title: Get plan and limits
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_public_briefGets one competitive brief that Debriefing published on debriefing.io: the summary, each finding with its category and date, and the numbered public sources with their URLs.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The name "get_public_brief" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe input takes a URL (input.url), and the tool reads it: it reads web pages, which anyone can write.
    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.

    Claude Code: ask, because it is tagged outbound.

    Description, as the server wrote it
    Gets one competitive brief that Debriefing published on debriefing.io: the summary, each finding with its category and date, and the numbered public sources with their URLs. Name the brief by its URL, or by company_slug and slug from search_public_briefs. With company_slug only, gets the newest brief about that company. Needs no Debriefing account.

    Annotations the server declares

    • title: Get a public brief
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_workspaceGets the Debriefing workspace this connection works on: its name and website, who you are in it and your role, the scopes this connection holds, and the plan.Reads text others writeNo findings

    Why it is in this group

    • The name "get_workspace" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "get" and "website": it reads web pages, which anyone can write.
    Description, as the server wrote it
    Gets the Debriefing workspace this connection works on: its name and website, who you are in it and your role, the scopes this connection holds, and the plan. Call it first when you are not sure what you may do.

    Annotations the server declares

    • title: Get workspace
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_battlecardsLists the battlecards Debriefing wrote for this workspace, one for each competitor that has one.No findings

    Why it is in this group

    • The name "list_battlecards" says "list": a word for reading.
    Description, as the server wrote it
    Lists the battlecards Debriefing wrote for this workspace, one for each competitor that has one. A battlecard holds talk tracks for sales calls against that competitor.

    Annotations the server declares

    • title: List battlecards
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_competitorsLists the competitors this Debriefing workspace tracks, with the id, name, website, and category of each.Reads text others writeNo findings

    Why it is in this group

    • The name "list_competitors" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "list" and "website": it reads web pages, which anyone can write.
    Description, as the server wrote it
    Lists the competitors this Debriefing workspace tracks, with the id, name, website, and category of each. Call it first to get the competitor_id that other tools take.

    Annotations the server declares

    • title: List competitors
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_digestsLists the digests Debriefing wrote for this workspace, newest first.No findings

    Why it is in this group

    • The name "list_digests" says "list": a word for reading.
    Description, as the server wrote it
    Lists the digests Debriefing wrote for this workspace, newest first. A digest is a brief that sums up competitor moves over a period. Filter by type, such as daily_digest.

    Annotations the server declares

    • title: List digests
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_membersLists the people in the workspace with their roles.No findings

    Why it is in this group

    • The name "list_members" says "list": a word for reading.
    Description, as the server wrote it
    Lists the people in the workspace with their roles. An admin also sees pending invitations.

    Annotations the server declares

    • title: List members
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_guidesSearches the public competitive intelligence library on debriefing.io: how-to guides, glossary terms, tool comparisons, alternatives pages, company profiles, and market intel posts…Reads text others writeNo findings

    Why it is in this group

    • The name "search_guides" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "search" and "post": it reads posts, which other people can write.
    Description, as the server wrote it
    Searches the public competitive intelligence library on debriefing.io: how-to guides, glossary terms, tool comparisons, alternatives pages, company profiles, and market intel posts. Returns the title, a short excerpt, and the page URL of each match, best match first. Needs no Debriefing account.

    Annotations the server declares

    • title: Search CI guides
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_public_briefsSearches the competitive briefs Debriefing publishes on debriefing.io about named companies, newest first.No findings

    Why it is in this group

    • The name "search_public_briefs" says "search": a word for reading.
    Description, as the server wrote it
    Searches the competitive briefs Debriefing publishes on debriefing.io about named companies, newest first. Each brief is dated and every finding cites a public source. Filter by words in the brief and by company name, slug, or domain. With no arguments, lists the newest briefs. Needs no Debriefing account. Returns the page URL of each brief.

    Annotations the server declares

    • title: Search public briefs
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_signalsSearches open signals, newest first.No findings

    Why it is in this group

    • The name "search_signals" says "search": a word for reading.
    Description, as the server wrote it
    Searches open signals, newest first. A signal is a competitor move that Debriefing found, such as a price change or a launch, with the source evidence. Filter by competitor_id, severity (low, medium, high), a text query, or a since time. Use it when the user asks what a competitor changed.

    Annotations the server declares

    • title: Search signals
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • what_changedLists everything new in the workspace since a time: signals Debriefing found, digests it wrote, and battlecards it wrote or rewrote.No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    Lists everything new in the workspace since a time: signals Debriefing found, digests it wrote, and battlecards it wrote or rewrote. Use it to catch up, such as since the user's last visit.

    Annotations the server declares

    • title: What changed
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data.

Reads private data0
Reads files, mail, messages, databases, secrets, calendars or repositories.
Can send data out3
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Install

Pinned to version 2.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http debriefing https://debriefing.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__debriefing__get_workspace",
      "mcp__debriefing__get_plan_and_limits",
      "mcp__debriefing__list_competitors",
      "mcp__debriefing__get_competitor",
      "mcp__debriefing__search_signals",
      "mcp__debriefing__list_digests",
      "mcp__debriefing__get_digest",
      "mcp__debriefing__list_battlecards",
      "mcp__debriefing__get_battlecard",
      "mcp__debriefing__get_evidence",
      "mcp__debriefing__get_company_profile",
      "mcp__debriefing__get_delivery_settings",
      "mcp__debriefing__list_members",
      "mcp__debriefing__what_changed",
      "mcp__debriefing__search_public_briefs",
      "mcp__debriefing__search_guides",
      "mcp__debriefing__get_free_brief_link"
    ],
    "ask": [
      "mcp__debriefing__create_checkout_link",
      "mcp__debriefing__add_competitor",
      "mcp__debriefing__add_monitored_page",
      "mcp__debriefing__research_competitor",
      "mcp__debriefing__refresh_watchlist",
      "mcp__debriefing__add_signal_note",
      "mcp__debriefing__add_digest_note",
      "mcp__debriefing__add_battlecard_note",
      "mcp__debriefing__draft_positioning",
      "mcp__debriefing__invite_member",
      "mcp__debriefing__get_public_brief",
      "mcp__debriefing__request_free_brief"
    ],
    "deny": [
      "mcp__debriefing__rename_competitor",
      "mcp__debriefing__remove_competitor",
      "mcp__debriefing__remove_monitored_page",
      "mcp__debriefing__pin_signal",
      "mcp__debriefing__save_signal",
      "mcp__debriefing__rate_signal",
      "mcp__debriefing__pin_digest",
      "mcp__debriefing__rate_digest",
      "mcp__debriefing__generate_battlecard",
      "mcp__debriefing__update_company_profile",
      "mcp__debriefing__update_icp",
      "mcp__debriefing__set_monitoring_cadence",
      "mcp__debriefing__set_delivery_channels",
      "mcp__debriefing__create_share_link"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as debriefing. Review it before you use it.

Capability tags behind 20 rules
  • mcp__debriefing__get_workspace untrusted-input
  • mcp__debriefing__create_checkout_link untrusted-input
  • mcp__debriefing__list_competitors untrusted-input
  • mcp__debriefing__get_evidence untrusted-input
  • mcp__debriefing__add_competitor untrusted-input
  • mcp__debriefing__add_monitored_page untrusted-input, outbound
  • mcp__debriefing__research_competitor untrusted-input
  • mcp__debriefing__refresh_watchlist untrusted-input
  • mcp__debriefing__pin_signal untrusted-input
  • mcp__debriefing__add_signal_note untrusted-input
  • mcp__debriefing__pin_digest untrusted-input
  • mcp__debriefing__add_digest_note untrusted-input
  • mcp__debriefing__draft_positioning untrusted-input
  • mcp__debriefing__get_delivery_settings untrusted-input
  • mcp__debriefing__create_share_link untrusted-input
  • mcp__debriefing__invite_member untrusted-input, outbound
  • mcp__debriefing__get_public_brief untrusted-input, outbound
  • mcp__debriefing__search_guides untrusted-input
  • mcp__debriefing__get_free_brief_link untrusted-input
  • mcp__debriefing__request_free_brief untrusted-input