Ban Bulkheads — Reputation Firebreaks for Agent Fleets

Partition an agent fleet into reputation compartments with automatic firebreaks.

Should I use this

Quality & Safety

B
Description quality
71%
Schema completeness
74%
Naming quality
89%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (6)

  • LOWTool 'assign_agent' description lacks action verbin assign_agent
  • LOWTool 'add_job' description lacks action verbin add_job
  • LOWTool 'freeze_compartment' description lacks action verbin freeze_compartment
  • LOWTool 'readmit' description lacks action verbin readmit
  • LOWTool 'status_query' description lacks action verbin status_query
  • LOWTool 'receipts' description lacks action verbin receipts

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~473Tokens (tool definitions)
~292 BTypical response size
Minimal attention impact (0.37% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "ban-bulkheads-reputation-firebreaks": {
      "url": "https://textforagents.com/products/ban-bulkheads-reputation-firebreaks/mcp"
    }
  }
}

Remote endpoints

https://textforagents.com/products/ban-bulkheads-reputation-firebreaks/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡create_compartment(task_class)

Create a reputation compartment {task_class} (plan slot required)

Input Schema

{
  "type": "object",
  "properties": {
    "task_class": {
      "type": "string"
    }
  },
  "required": [
    "task_class"
  ]
}
⚪assign_agent(agent, compartment)

Assign an agent to a compartment {agent, compartment}

Input Schema

{
  "type": "object",
  "properties": {
    "agent": {
      "type": "string"
    },
    "compartment": {
      "type": "string"
    }
  },
  "required": [
    "agent",
    "compartment"
  ]
}
⚪record_outcome(compartment, outcome)

Record an outcome {compartment, outcome, job_id?, job_clean?}

Input Schema

{
  "type": "object",
  "properties": {
    "compartment": {
      "type": "string"
    },
    "outcome": {
      "type": "string"
    }
  },
  "required": [
    "compartment",
    "outcome"
  ]
}
🟡add_job(compartment, job_id)

Register an in-flight job {compartment, job_id, clean}

Input Schema

{
  "type": "object",
  "properties": {
    "compartment": {
      "type": "string"
    },
    "job_id": {
      "type": "string"
    }
  },
  "required": [
    "compartment",
    "job_id"
  ]
}
⚪penalty_signal(kind)

Intake an account-level penalty signal {kind}; attribution comes from baselines only

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string"
    }
  },
  "required": [
    "kind"
  ]
}
⚪freeze_compartment(compartment)

Freeze a compartment {compartment}

Input Schema

{
  "type": "object",
  "properties": {
    "compartment": {
      "type": "string"
    }
  },
  "required": [
    "compartment"
  ]
}
⚪readmit(compartment, probes)

Re-admission probes {compartment, probes}

Input Schema

{
  "type": "object",
  "properties": {
    "compartment": {
      "type": "string"
    },
    "probes": {
      "type": "array"
    }
  },
  "required": [
    "compartment",
    "probes"
  ]
}
🟢status_query(agent)

Compartment status for an agent {agent} — $0.01 x402 or included on an active plan (same billing as HTTP)

Input Schema

{
  "type": "object",
  "properties": {
    "agent": {
      "type": "string"
    }
  },
  "required": [
    "agent"
  ]
}
⚪receipts

Incident receipt chain + validity

Input Schema

{
  "type": "object",
  "properties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools