Is the Benawf MCP server down?

mcp-registry/com.benawf/mcp · v1.0.0

healthy
Last checked 2026-10-24 10:58 UTC · handshake 520ms

As of 2026-10-24 10:58 UTC, the Benawf MCP server is up with a Glimind reliability score of 83/100 (grade B). Over the last 30 days it answered 99.7% of Glimind's liveness checks. It had 3 outages in 90 days, with a median recovery of 8 minutes.

uptime (30d checks)
99.7%
checks observed
3,790
outages (90d)
3
tools
16

BenAwf remote MCP for Strategy Lab. Streamable HTTP. Paper GA; live venue beta.

Install Benawf MCP server

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http benawf-mcp-server https://api.benawf.com/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "benawf-mcp-server": {
      "type": "http",
      "url": "https://api.benawf.com/mcp"
    }
  }
}

Third-party server, listed as discovered. Review its source before installing.

Agent-readiness: C (71/100)

C (71/100): 0 error(s), 5 warning(s) across 16 tool(s); ~11,210 tokens of tool definitions.
Scores higher than 5% of 15,633 MCP servers Glimind has audited.
Its tool list costs an agent ~11,210 tokens per session — more than 80% of servers.
72 → 71 since 2026-10-17
no tool-poisoning patterns
Schemas100
Descriptions77
Safety hints0
Token cost81
Client compatibility70
Protocol100
Reliability85
Stability92

What to fix (7)

3 tool definition(s) exceed ~1,200 tokens each (largest: patch_exit, ~3,476).

Move long reference material out of descriptions (link a doc or expose a resource), drop repeated examples, and collapse large enums. Trimming these to ~600 tokens saves ~5,966 tokens every session. How to fix →

Tools: patch_exit, patch_entry_gate, add_entry_gate · saves ~5,966 tokens/session

16 of 16 tool(s) carry no readOnlyHint/destructiveHint annotations.

Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →

Tools: add_entry_gate, delete_entry_gate, diff_dsl, get_backtest, get_experiment and 11 more

5 tool(s) look like they change state (create/send/delete/pay…) but declare no destructiveHint.

Set annotations {"readOnlyHint": false, "destructiveHint": true|false, "idempotentHint": …}. Clients use these to ask the user before a side effect and to auto-approve safe reads. How to fix →

Tools: delete_entry_gate, patch_cooldown, patch_entry_gate, patch_exit, patch_position

6 parameter(s) across 3 tool(s) have no description.

Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →

Tools: get_market_context_by_date, list_strategies, list_trades

Handshake + tools/list takes ~2,093 ms.

Serve tools/list from memory, keep the process warm, and host close to your users. Every new agent session pays this before its first call.

No tool declares an outputSchema.

Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →

In the last 30 days: 0 tool(s) removed and 2 schema change(s).

Add new tools or optional parameters instead of renaming or removing; deprecate first (say so in the description) and remove later. Agents cache tool contracts. How to fix →

Auto-fix: 14 corrected tool definitions

Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 3 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fcom.benawf%2Fmcp/fixes

add_entry_gate 1 change
{
  "name": "add_entry_gate",
  "description": "Add one AND entry gate. Args: side + condition JSON. You are the DSL translator. Invent the section JSON (condition/position/exit/cooldown). Browser applies only — BenAwf does not call an LLM. No prose text.",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "side",
      "condition"
    ],
    "properties": {
      "side": {
        "enum": [
          "long",
          "short"
        ],
        "type": "string",
        "description": "entry.long or entry.short."
      },
      "condition": {
        "anyOf": [
          {
            "type": "object",
            "required": [
              "kind",
              "left",
              "op",
              "right"
            ],
            "properties": {
              "op": {
                "enum": [
                  "gt",
                  "lt",
                  "gte",
                  "lte",
                  "crosses_above",
                  "crosses_below"
                ],
                "type": "string",
                "description": "Comparison operator. crosses_above/crosses_below require previous bar context."
              },
              "kind": {
                "type": "string",
                "const": "comparison"
              },
              "left": {
                "anyOf": [
                  {
                    "type": "object",
                    "required": [
                      "kind",
                      "field",
                      "timeframeMinutes",
                      "lookback"
                    ],
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "price"
                      },
                      "field": {
                        "enum": [
                          "open",
                          "high",
                          "low",
                          "close"
                        ],
                        "type": "string",
                        "description": "Bar field: open, high, low, or close (default close). Ignored at `lookback: 0` (live ticker). At `lookback >= 1` returns this OHLC field of bar N back — enables wick/rejection patterns (e.g. high pierced a level then close reclaimed)."
                      },
                      "lookback": {
                        "type": "integer",
                        "maximum": 20,
                        "minimum": 0,
                        "description": "How many bars back to look. 0 = latest bar, 1 = one bar ago, etc. Max 20."
                      },
                      "timeframeMinutes": {
                        "type": "integer",
                        "description": "Chart timeframe (5, 15, 60, 240, or 1440 minutes) the lookback resolves against. `lookback: 0` returns the live ticker price (timeframe-independent); `lookback >= 1` returns the chosen `field` of bar N back on this timeframe."
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "required": [
                      "kind",
                      "value"
                    ],
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "constant"
                      },
                      "value": {
                        "type": "number"
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "required": [
                      "kind",
                      "name",
                      "field",
                      "timeframeMinutes",
                      "lookback",
                      "params"
                    ],
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "indicator"
                      },
                      "name": {
                        "type": "string",
                        "description": "Indicator name. One of: SMA20, SMA50, EMA, RSI, ADX, MACD, BBANDS, ATR, ATR_PCT, VWAP, OBV, OBV_CHANGE, LAST_DAY_HIGH, LAST_DAY_LOW, LAST_WEEK_HIGH, LAST_WEEK_LOW, SWING_HIGH, SWING_LOW, BOS, CHOCH, DISPLACEMENT, VOLUME_PROFILE, DEALING_RANGE."
                      },
                      "field": {
                        "enum": [
                          "value",
                          "signal",
                          "histogram",
                          "upper",
                          "middle",
                          "lower",
                          "poc",
                          "vah",
                          "val",
                          "equilibrium",
                          "premium_pct"
                        ],
                        "type": "string",
                        "description": "Sub-field for composite indicators: MACD uses signal/histogram, BBANDS uses upper/middle/lower, VOLUME_PROFILE uses poc/vah/val, DEALING_RANGE uses equilibrium/premium_pct. Use value for scalar indicators."
                      },
                      "params": {
                        "type": "object",
                        "required": [
                          "wing",
                          "atrMult",
                          "lookbackBars"
                        ],
                        "properties": {
                          "wing": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "maximum": 10,
                                "minimum": 1
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Pivot wing for SWING_HIGH/SWING_LOW/BOS/CHOCH/DEALING_RANGE: bars required on each side to confirm a pivot. Default 3. Smaller (1–2) = short-term structure, larger (4–10) = major swings only."
                          },
                          "atrMult": {
                            "anyOf": [
                              {
                                "type": "number",
                                "maximum": 5,
                                "minimum": 0.5
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "ATR(14) multiplier for DISPLACEMENT: bar range must exceed atrMult × ATR to count as displacement. Default 1.5."
                          },
                          "lookbackBars": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "maximum": 100,
                                "minimum": 10
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Rolling window length for VOLUME_PROFILE (bars ending at the current closed bar). Default 48. Must fit the entry-rules indicator window (≤100)."
                          }
                        },
                        "description": "Optional indicator parameters (e.g. swing pivot wing, VOLUME_PROFILE lookbackBars). Empty object = defaults.",
                        "additionalProperties": false
                      },
                      "lookback": {
                        "$ref": "#/properties/condition/anyOf/0/properties/left/anyOf/0/properties/lookback"
                      },
                      "timeframeMinutes": {
                        "$ref": "#/properties/condition/anyOf/0/properties/left/anyOf/0/properties/timeframeMinutes",
                        "description": "Chart timeframe: 5, 15, 60, 240 (4h), or 1440 (daily) minutes."
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "required": [
                      "kind",
                      "zoneType",
                      "state",
                      "field",
                      "timeframeMinutes",
                      "lookback"
                    ],
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "zone"
                      },
                      "field": {
                        "enum": [
                          "top",
                          "bottom",
                          "mid"
                        ],
                        "type": "string",
                        "description": "Zone price level: top or bottom edge, or mid (midpoint — the FVG 'consequent encroachment'). Default mid."
                      },
                      "state": {
                        "enum": [
                          "open",
                          "tapped",
                          "mitigated"
                        ],
                        "type": "string",
                        "description": "Which zones to consider: open = untouched, tapped = wick entered but no close through, mitigated = closed beyond the far edge. Default open."
                      },
                      "lookback": {
                        "$ref": "#/properties/condition/anyOf/0/properties/left/anyOf/0/properties/lookback"
                      },
                      "zoneType": {
                        "enum": [
                          "fvg_bull",
                          "fvg_bear",
                          "ob_bull",
                          "ob_bear"
                        ],
                        "type": "string",
                        "description": "fvg_bull/fvg_bear = 3-candle fair value gap (imbalance). ob_bull/ob_bear = last opposite-close candle before a displacement bar (order block)."
                      },
                      "timeframeMinutes": {
                        "$ref": "#/properties/condition/anyOf/0/properties/left/anyOf/0/properties/timeframeMinutes",
                        "description": "Chart timeframe the zone detection runs on: 5, 15, 60, 240 (4h), or 1440 (daily) minutes."
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "required": [
                      "kind",
                      "fn",
                      "a",
                      "b"
                    ],
                    "properties": {
                      "a": {
                        "anyOf": [
                          {
                            "$ref": "#/properties/condition/anyOf/0/properties/left/anyOf/0"
                          },
                          {
                            "$ref": "#/properties/condition/anyOf/0/properties/left/anyOf/1"
                          },
                          {
                            "$ref": "#/properties/condition/anyOf/0/properties/left/anyOf/2"
                          },
                          {
                            "$ref": "#/properties/condition/anyOf/0/properties/left/anyOf/3"
                          }
                        ],
                        "description": "First input — a primitive operand (price, indicator, or constant). No nesting."
                      },
                      "b": {
                        "$ref": "#/properties/condition/anyOf/0/properties/left/anyOf/4/properties/a",
                        "description": "Second input — a primitive operand (price, indicator, or constant). No nesting."
                      },
                      "fn": {
                        "enum": [
                          "spread",
                          "ratio",
                          "abs_distance_pct"
                        ],
                        "type": "string",
                        "description": "spread = a - b (same units as inputs). ratio = a / b (fails when b is 0). abs_distance_pct = |a - b| / |b| * 100 (percent points — same scale as ATR_PCT and SL/TP)."
                      },
                      "kind": {
                        "type": "string",
                        "const": "derived"
                      }
                    },
                    "additionalProperties": false
                  }
                ]
              },
              "right": {
                "$ref": "#/properties/condition/anyOf/0/properties/left"
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "required": [
              "kind",
              "startUtc",
              "endUtc",
              "timeframeMinutes"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "time_window"
              },
              "endUtc": {
                "$ref": "#/properties/condition/anyOf/1/properties/startUtc",
                "description": "Window end, exclusive. Earlier than startUtc = overnight window (e.g. \"02:00\" with start \"22:00\"). Equal to startUtc = always in window."
              },
              "startUtc": {
                "type": "string",
                "description": "Window start, inclusive (e.g. \"09:30\" for the New York killzone open)."
              },
              "timeframeMinutes": {
                "$ref": "#/properties/condition/anyOf/0/properties/left/anyOf/0/properties/timeframeMinutes",
                "description": "Chart timeframe whose latest closed bar provides the clock. Use 5 or 15 for killzone precision."
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "required": [
              "kind",
              "days",
              "timeframeMinutes"
            ],
            "properties": {
              "days": {
                "type": "array",
                "items": {
                  "enum": [
                    "sun",
                    "mon",
                    "tue",
                    "wed",
                    "thu",
                    "fri",
                    "sat"
                  ],
                  "type": "string"
                },
                "maxItems": 7,
                "minItems": 1,
                "description": "Allowed UTC weekdays (e.g. omit \"fri\" to skip Friday)."
              },
              "kind": {
                "type": "string",
                "const": "day_of_week"
              },
              "timeframeMinutes": {
                "$ref": "#/properties/condition/anyOf/0/properties/left/anyOf/0/properties/timeframeMinutes",
                "description": "Chart timeframe whose latest closed bar provides the clock. Use 5 or 15 for precision."
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Translator-shaped entry gate condition."
      },
      "strategy_id": {
        "type": "string",
        "minLength": 1,
        "description": "Strategy id. Prefer always: routes to that Lab tab, and NO_ACTIVE_LAB errors include a direct Lab URL to open."
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false
  }
}
delete_entry_gate 1 change
{
  "name": "delete_entry_gate",
  "description": "Remove one entry gate by id (from get_experiment). Args: id only. Refuses when it would leave both long and short with zero gates.",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "id"
    ],
    "properties": {
      "id": {
        "type": "string",
        "maxLength": 32,
        "minLength": 1,
        "description": "Gate id shown in Live rules or get_experiment."
      },
      "strategy_id": {
        "type": "string",
        "minLength": 1,
        "description": "Strategy id. Prefer always: routes to that Lab tab, and NO_ACTIVE_LAB errors include a direct Lab URL to open."
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "idempotentHint": true
  }
}
get_backtest 1 change
{
  "name": "get_backtest",
  "description": "Cache-or-run one sim for an @R# + window, then return Score, trade count, PnL, drawdown, and bounded stats for one run. Numbers only — no BenAwf assessment LLM; you analyze. Same @R# + window → cached @B# (identical stats; follow the comment). After any mutate pass that result's dsl_ref. If you changed rules behind the same R#/draft, or suspect a stale cached @B#, pass force:true to force a fresh sim — never extrapolate from a cached B# of a different rules state.",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "ref"
    ],
    "properties": {
      "ref": {
        "type": "string",
        "maxLength": 32,
        "minLength": 1,
        "description": "@R# to sim. After mutate use that result's dsl_ref, not the Live-rules header."
      },
      "force": {
        "type": "boolean",
        "description": "Skip the cache and force a fresh sim for this @R# + window. Use after any rule change on the same R#/draft, or whenever a cached B# is suspect."
      },
      "config": {
        "type": "object",
        "required": [
          "asset",
          "start_date",
          "end_date",
          "initial_balance",
          "max_drawdown"
        ],
        "properties": {
          "asset": {
            "enum": [
              "BTC",
              "ETH",
              "SOL",
              "XRP",
              "BNB",
              "LTC",
              "LINK",
              "DOGE",
              "PEPE",
              "SHIB",
              "SPY",
              "QQQ",
              "IWM",
              "DIA",
              "VOO",
              "XLF",
              "XLE",
              "XLK",
              "XLV",
              "XLP",
              "XLY",
              "XLU",
              "XLI",
              "XLB",
              "XLRE",
              "XLC",
              "SMH",
              "ARKK",
              "GLD",
              "SLV",
              "TLT",
              "HYG",
              "EEM",
              "AAPL",
              "MSFT",
              "GOOGL",
              "AMZN",
              "NVDA",
              "META",
              "TSLA",
              "AVGO",
              "ORCL",
              "ADBE",
              "CRM",
              "AMD",
              "QCOM",
              "TXN",
              "INTC",
              "INTU",
              "IBM",
              "NOW",
              "AMAT",
              "MU",
              "ARM",
              "MRVL",
              "PANW",
              "CRWD",
              "DDOG",
              "NET",
              "SNOW",
              "PLTR",
              "SMCI",
              "DELL",
              "APP",
              "SHOP",
              "UBER",
              "ABNB",
              "NFLX",
              "COIN",
              "HOOD",
              "PYPL",
              "JPM",
              "BAC",
              "WFC",
              "C",
              "GS",
              "MS",
              "V",
              "MA",
              "AXP",
              "SCHW",
              "BLK",
              "SPGI",
              "CME",
              "COF",
              "UNH",
              "JNJ",
              "LLY",
              "PFE",
              "MRK",
              "ABBV",
              "TMO",
              "ABT",
              "AMGN",
              "ISRG",
              "MDT",
              "BMY",
              "GILD",
              "CVS",
              "WMT",
              "COST",
              "HD",
              "MCD",
              "NKE",
              "SBUX",
              "TGT",
              "LOW",
              "PG",
              "KO",
              "PEP",
              "PM",
              "MO",
              "CL",
              "EL",
              "DIS",
              "BKNG",
              "MAR",
              "CAT",
              "DE",
              "BA",
              "GE",
              "HON",
              "UPS",
              "RTX",
              "LMT",
              "XOM",
              "CVX",
              "COP",
              "SLB",
              "NEE",
              "DUK",
              "SO",
              "F",
              "T",
              "VZ",
              "CMCSA",
              "TMUS",
              "XAUUSD",
              "XAGUSD"
            ],
            "type": "string",
            "description": "Single symbol to sim (e.g. BTC)."
          },
          "end_date": {
            "type": "string",
            "format": "date-time"
          },
          "start_date": {
            "type": "string",
            "format": "date-time"
          },
          "max_drawdown": {
            "type": "number",
            "maximum": 100,
            "minimum": 0.01
          },
          "initial_balance": {
            "type": "number",
            "exclusiveMinimum": 0
          }
        },
        "description": "Window + capital. Omit to reuse the previous run's window. Do not send empty strings or zeros.",
        "additionalProperties": false
      },
      "strategy_id": {
        "type": "string",
        "minLength": 1,
        "description": "Strategy id. Prefer always: routes to that Lab tab, and NO_ACTIVE_LAB errors include a direct Lab URL to open."
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": true
  }
}

Get alerted

Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:

curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/com.benawf/mcp"],"email":"[email protected]"}'

Agents: watch_tool({"toolId": "mcp-registry/com.benawf/mcp"}) over MCP.

Passed

Largest tool definitions

Static checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).

Operator? Fix these, then re-check live. Embed the readiness badge:

Markdown
[![MCP agent-readiness](https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.benawf%2Fmcp.svg)](https://glimind.com/server/mcp-registry%2Fcom.benawf%2Fmcp?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fcom.benawf%2Fmcp?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.benawf%2Fmcp.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.benawf%2Fmcp.svg
   :target: https://glimind.com/server/mcp-registry%2Fcom.benawf%2Fmcp?ref=badge
   :alt: MCP agent-readiness

Tool-definition log

Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:a2f8c6ea00e2d4c3…, first seen 2026-10-20, included at leaf 34917 of 58,394. Version history · verify what your client received.

Tools (16)

Compare: most reliable data servers · most reliable devops servers

Know before your agent calls it

Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.

Add Glimind — free, no signup:

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http glimind https://glimind.com/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "glimind": {
      "type": "http",
      "url": "https://glimind.com/mcp"
    }
  }
}

FAQ

Is the Benawf MCP server down right now?

As of 2026-10-24 10:58 UTC, the Benawf MCP server is up with a Glimind reliability score of 83/100 (grade B). Over the last 30 days it answered 99.7% of Glimind's liveness checks. It had 3 outages in 90 days, with a median recovery of 8 minutes.

How many tools does Benawf MCP server provide?

Benawf MCP server advertises 16 tools, including add_entry_gate, delete_entry_gate, diff_dsl, get_backtest, get_experiment.

How do I install Benawf MCP server?

Point your MCP client at this streamable-http endpoint: https://api.benawf.com/mcp

Is the Benawf MCP server safe to connect to an AI agent?

Glimind scanned all 16 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.

Operator of Benawf MCP server?

Status page: 90-day uptime, every outage and how long it lasted.

Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.

Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.

Feedback
Help us improve