Skip to content
Agentmart
Submit a tool

BanditDB

Persistent decision memory for agents — learns which action works in which context

Connector by banditdb.comOfficial · Domain verified by the MCP Registry

IndexedApache-2.0Local (stdio)
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/banditdb-com-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Persistent decision memory for agents — learns which action works in which context

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
6 read · 5 write · 1 delete
Secrets
1 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Python package

Tools by what they do 12

Read from the source code; the running server may list different tools.

Read 6 · Look things up without changing anything.

  • batch_get_intuition
  • campaign_budget
  • campaign_diagnostics
  • campaign_report
  • get_intuition
  • list_campaigns

Write 5 · Create, change, send or run things.

  • add_arm
  • create_campaign
  • record_outcome
  • restore_campaign
  • set_arm_status

Delete 1 · Delete, drop, revoke or wipe things.

  • archive_campaign

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • BANDITDB_API_KEY

Other settings (environment variables or headers).

  • BANDITDB_URL

Tools (12)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_arm

    Add a new action (arm) to an existing campaign without losing what it has learned. Args: campaign_id: The campaign to extend. arm_id: Name of the new action. Must not already exist. group: Optional category label (e.g. 'shoes'). Arms in the same group can lend their knowledge to a new member. warm_start_from: Optional. "population" starts the new arm from the average of all active arms; "group" from the average of its group. Default is a cold start that learns from scratch. costs: Budget campaigns only. What the new action consumes per sugg…

  • archive_campaign

    Soft-delete a campaign. The campaign stops accepting new predictions and rewards but all data (arm matrices, history) is preserved and can be restored. Use this instead of deleting when you want to pause a campaign without losing its learned weights — for example, to suspend a seasonal campaign and resume it next quarter with the accumulated training data intact. Args: campaign_id: The campaign to archive. Returns: Confirmation or error message.

  • batch_get_intuition

    Ask BanditDB for the best action across multiple campaigns in a single round-trip. Use this instead of calling get_intuition repeatedly when you need decisions for multiple campaigns at once. More efficient — one network call instead of N. Each item in `predictions` must have: campaign_id : str — the campaign to query context : list — feature vector matching that campaign's feature_dim Example input: [ {"campaign_id": "llm_routing", "context": [0.8, 0.2, 0.5]}, {"campaign_id": "support_tier", "context": [0.3, 0.9]} ] Args: predictions: List of {"campa…

  • campaign_budget

    Show how a budget-constrained campaign is spending its budgets. Use this to answer: "How much budget is left? Is spend on pace? Why does the campaign stop suggesting the expensive option?" Per resource it reports budget, consumed, remaining, utilization, and the shadow price (lambda): what one unit of the resource currently costs an action's score. Rising lambda means spend is running ahead of pace; 0 means the budget is not limiting anything. Once a resource is exhausted, every action that costs it stays unavailable for good — budgets do not reset. Args: campaign_id: The campaign to in…

  • campaign_diagnostics

    Inspect the learning state and exploration health of a campaign. Use this when you suspect a campaign is not learning, one arm is dominating, or rewards are not being received. Key signals: - entropy_status: "ok" means healthy. "warning"/"critical" means exploration has collapsed — one arm is absorbing most traffic without a convergence signal. - entropy_trend: "falling" means collapse happened recently (check for pipeline bugs or config changes). "stable" means the current state has been consistent. - likely_cause / suggested_action: present when entropy is degraded, tells you what lik…

  • campaign_report

    Get per-arm performance for a campaign, with confidence intervals. Use this to answer: "How is this campaign doing? Which arm leads, and by how much?" The `converged` field tests whether ONE arm is best for EVERYBODY: True — the leading arm has a statistically significant global advantage (95% CI). Safe to stop and deploy the winner. False — no single global winner yet. None — not enough data yet (< 30 rewards per arm). IMPORTANT: on a contextual campaign, `converged` stays False by design. Where different arms win for different contexts — one action for mobile users, anot…

  • create_campaign

    Create a new decision campaign in BanditDB. Call this once before using get_intuition for a new type of decision. If the campaign already exists, this will return an error — that is safe to ignore if you are re-running setup code. Args: campaign_id: A unique name for this decision context (e.g., 'llm_routing', 'support_tier', 'offer_type'). Use snake_case. arms: The list of options the bandit will choose between (e.g., ['gpt-4o', 'claude-haiku', 'llama-3']). feature_dim: The number of floats in the context vector you will pass to get_in…

  • get_intuition

    Ask the BanditDB Hive Mind for the best strategy or action to take. Args: campaign_id: The ID of the decision campaign (e.g., 'llm_routing', 'support_strategy'). context: A list of finite floats representing the current state (e.g., user sentiment, task difficulty). Keep values on a similar, modest scale — roughly -1 to 1 works well. Very large values are rejected. exclude_arms: Optional. Actions not allowed for this request only (e.g. already tried, unavailable right now). Does not change the campaign. eligible_arms: Optional. Choose only among these a…

  • list_campaigns

    List all active decision campaigns in BanditDB. Call this to discover what campaigns exist before calling get_intuition, or to check that a campaign was created successfully. Returns: A summary of all live campaigns with their arm count and alpha value, or a message if no campaigns exist yet.

  • record_outcome

    Tell the BanditDB Hive Mind if the strategy it suggested was successful. Args: interaction_id: The unique ID returned by get_intuition. reward: A number between 0.0 and 1.0 — 1.0 for a clear success, 0.0 for a failure, and values in between for partial success. Anything outside this range is rejected, so scale it rather than passing a raw score. Returns: Confirmation that the global math matrices have been updated.

  • restore_campaign

    Restore an archived campaign to active status. The campaign resumes accepting predictions and rewards with all previously learned weights intact — no retraining needed. Args: campaign_id: The archived campaign to restore. Returns: Confirmation or error message.

  • set_arm_status

    Pause, retire, or reactivate an action (arm) in a campaign. Use "paused" for temporary unavailability (out of stock, seasonal), "retired" for actions that should not come back, and "active" to restore either. The arm keeps everything it learned in every state. To skip an arm for one request only, pass exclude_arms to get_intuition instead. Args: campaign_id: The campaign the arm belongs to. arm_id: The arm to change. status: "active", "paused", or "retired". Returns: Confirmation or error message.

Signals

Stars
0
Forks
0
Open issues
0
Weekly downloads
158
Last commit
Oct 17, 2026 (11 days ago)
Last release
Oct 11, 2026 (17 days ago)
Last package publish
Oct 17, 2026 (11 days ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
com.banditdb/mcp
Version
0.3.1
Auth
API key
Packages
pypi banditdb-python
License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 25, 2026
Cite this page

BanditDB MCP server. Agent Mart. https://agentmart.dev/connectors/banditdb-com-mcp (last updated 2026-10-25)