Is the Plainrouter MCP server down?

mcp-registry/com.plainrouter/mcp · v0.4.1

healthy
Last checked 2026-10-17 23:37 UTC · handshake 1.3s

As of 2026-10-17 23:37 UTC, the Plainrouter MCP server is up with a Glimind reliability score of 83/100 (grade B). Over the last 30 days it answered 99.9% of Glimind's liveness checks. It had 5 outages in 90 days, with a median recovery of 7 minutes.

uptime (30d checks)
99.9%
checks observed
3,679
outages (90d)
5
tools
48

Inspect an approved ad account and first-party signal health, then propose policy-gated actions.

Install Plainrouter MCP server

Add to Cursor Add to VS Code

Claude Code

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

Claude Desktop · Windsurf · Cline (mcpServers JSON)

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

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

Agent-readiness: C (70/100)

C (70/100): 0 error(s), 7 warning(s) across 48 tool(s); ~17,607 tokens of tool definitions.
Scores higher than 5% of 15,330 MCP servers Glimind has audited.
Its tool list costs an agent ~17,607 tokens per session — more than 95% of servers.
no tool-poisoning patterns
Schemas100
Descriptions56
Safety hints100
Token cost23
Client compatibility70
Protocol100
Reliability85
Stability20

What to fix (7)

2 tool definition(s) exceed ~1,200 tokens each (largest: propose-actions, ~3,060).

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 ~4,807 tokens every session.

Tools: propose-actions, dry_run_actions · saves ~4,807 tokens/session

48 tools on one server. Tool-selection accuracy drops as the menu grows, and some clients (e.g. Cursor) cap the number of active tools.

Group tools by task into smaller servers or toolsets, and merge near-duplicates behind one tool with a mode parameter.

84 parameter(s) across 23 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.

Tools: actions.rules.create, actions.rules.list, actions.rules.update, actions.tests.create, actions.tests.list and 18 more

19 tool name(s) contain "." or exceed 64 characters, which OpenAI-compatible function calling rejects (^[a-zA-Z0-9_-]{1,64}$).

Use "_" or "-" instead of "." and keep names to 64 characters, so clients built on OpenAI-style tool calling don't have to rename (or drop) them.

Tools: actions.rules.create, actions.rules.list, actions.rules.show, actions.rules.update, actions.tests.create and 14 more

Loading this server's tool list costs an agent ~17,607 tokens before any work — more than 95% of MCP servers.

Split rarely-used tools into a separate server or a toolset the client can enable, or expose one "search tools" entry point. Many agents load every connected server's tools into every request.

Handshake + tools/list takes ~3,746 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.

In the last 30 days: 97 tool(s) removed and 92 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.

Auto-fix: 19 corrected tool definitions

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

actions.rules.create 1 change
{
  "name": "actions_rules_create",
  "description": "Store a performance rule disabled. Enabling requires an explicit update; this never evaluates or proposes actions.",
  "inputSchema": {
    "type": "object",
    "required": [
      "name",
      "definition",
      "platform_ad_account_id"
    ],
    "properties": {
      "name": {
        "type": "string",
        "maxLength": 255
      },
      "limit": {
        "type": "integer",
        "default": 5,
        "maximum": 25,
        "minimum": 1,
        "description": "Maximum latest revisions; current_revision is always returned separately."
      },
      "cursor": {
        "type": "string",
        "description": "Read older revisions using rule.next_cursor. Continue through actions.rules.show to avoid another write."
      },
      "definition": {
        "type": "object",
        "required": [
          "target_level",
          "action",
          "minimum_counted_arrivals",
          "cost_comparison",
          "cost_ratio"
        ],
        "properties": {
          "action": {
            "enum": [
              "pause",
              "increase_budget",
              "decrease_budget"
            ],
            "type": "string"
          },
          "cost_ratio": {
            "type": "number",
            "maximum": 10,
            "minimum": 0.1,
            "description": "Target cost per counted arrival divided by whole-account cost per counted arrival."
          },
          "target_level": {
            "enum": [
              "ad",
              "ad_set",
              "campaign"
            ],
            "type": "string"
          },
          "cost_comparison": {
            "enum": [
              "at_least",
              "at_most"
            ],
            "type": "string"
          },
          "budget_change_percent": {
            "type": "integer",
            "maximum": 50,
            "minimum": 1,
            "description": "Required for daily-budget changes on ad sets or campaigns; omit for pause. Pause targets only ads or ad sets."
          },
          "minimum_counted_arrivals": {
            "type": "integer",
            "minimum": 50,
            "description": "Counted arrivals on the target. At least 100 for a budget increase."
          }
        },
        "description": "Both arrivals and cost conditions must hold over the last 3 complete days in the account timezone. Supply the complete definition when editing.",
        "additionalProperties": false
      },
      "workspace_id": {
        "type": "integer",
        "minimum": 1,
        "description": "Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces."
      },
      "platform_ad_account_id": {
        "type": "integer",
        "minimum": 1
      }
    }
  },
  "annotations": {
    "readOnlyHint": false,
    "openWorldHint": false,
    "idempotentHint": false,
    "destructiveHint": true
  },
  "title": "Create action rule"
}
actions.rules.list 1 change
{
  "name": "actions_rules_list",
  "description": "List stored performance rules available to this workspace key. This does not evaluate them.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "page": {
        "type": "integer",
        "maximum": 10000000000000000,
        "minimum": 1
      },
      "cursor": {
        "type": "string",
        "description": "Continue using rules.next_cursor; use actions.rules.show for detail."
      },
      "per_page": {
        "type": "integer",
        "default": 25,
        "maximum": 100,
        "minimum": 1
      },
      "workspace_id": {
        "type": "integer",
        "minimum": 1,
        "description": "Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces."
      }
    }
  },
  "annotations": {
    "readOnlyHint": true,
    "openWorldHint": false,
    "idempotentHint": true,
    "destructiveHint": false
  },
  "title": "List action rules"
}
actions.rules.show 1 change
{
  "name": "actions_rules_show",
  "description": "Read a stored performance rule and its immutable revisions, with author type only.",
  "inputSchema": {
    "type": "object",
    "required": [
      "rule_id"
    ],
    "properties": {
      "limit": {
        "type": "integer",
        "default": 5,
        "maximum": 25,
        "minimum": 1,
        "description": "Maximum latest revisions; current_revision is always returned separately."
      },
      "cursor": {
        "type": "string",
        "description": "Read older revisions using rule.next_cursor. Continue through actions.rules.show to avoid another write."
      },
      "run_id": {
        "type": "string",
        "description": "Read decisions for one run belonging to this rule."
      },
      "rule_id": {
        "type": "string",
        "pattern": "^[0-7][0-9a-hjkmnp-tv-z]{25}$",
        "description": "The action rule ID."
      },
      "workspace_id": {
        "type": "integer",
        "minimum": 1,
        "description": "Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces."
      },
      "decisions_cursor": {
        "type": "string",
        "description": "Continue decisions using runs[].next_cursor; requires run_id."
      }
    }
  },
  "annotations": {
    "readOnlyHint": true,
    "openWorldHint": false,
    "idempotentHint": true,
    "destructiveHint": false
  },
  "title": "Show action rule"
}

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.plainrouter/mcp"],"email":"[email protected]"}'

Agents: watch_tool({"toolId": "mcp-registry/com.plainrouter/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.plainrouter%2Fmcp.svg)](https://glimind.com/server/mcp-registry%2Fcom.plainrouter%2Fmcp?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fcom.plainrouter%2Fmcp?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.plainrouter%2Fmcp.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.plainrouter%2Fmcp.svg
   :target: https://glimind.com/server/mcp-registry%2Fcom.plainrouter%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:3840e120dec66ade…, first seen 2026-10-17, included at leaf 2756 of 19,139. Version history · verify what your client received.

Tools (48)

Compare: most reliable knowledge servers · most reliable data servers · most reliable devops servers · most reliable other servers · most reliable retrieval 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 Plainrouter MCP server down right now?

As of 2026-10-17 23:37 UTC, the Plainrouter MCP server is up with a Glimind reliability score of 83/100 (grade B). Over the last 30 days it answered 99.9% of Glimind's liveness checks. It had 5 outages in 90 days, with a median recovery of 7 minutes.

How many tools does Plainrouter MCP server provide?

Plainrouter MCP server advertises 48 tools, including actions.rules.create, actions.rules.list, actions.rules.show, actions.rules.update, actions.tests.create.

How do I install Plainrouter MCP server?

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

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

Glimind scanned all 48 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 Plainrouter 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.