Skip to main content
Glama

🛡️ MCP Sentinel

Autonomous Protocol Health, Schema-Drift & Security Sentinel for Remote Model Context Protocol (MCP) Servers.

MCP Status Glama License: MIT TypeScript

Traditional uptime monitors stop at HTTP 200 OK. MCP Sentinel is a Universal Protocol Sentinel that connects over Streamable HTTP and SSE, conducts real JSON-RPC 2.0 negotiation across all four official specifications (2026-07-28, 2025-11-25, 2025-06-18, and 2024-11-05), validates tool schemas against JSON Schema draft-07/2020-12, tracks breaking schema drift, scans for leaked API credentials, and renders dynamic vector status badges.


⚡ Key Features

  • Universal Protocol Negotiation (2026-07-28, 2025-11-25, 2025-06-18, 2024-11-05): Forward and backward compatible across all MCP eras. Supports modern stateless server/discover, icon/metadata exchange (2025-11-25), structured tool outputs (outputSchema from 2025-06-18), and legacy session handshakes (initialize $\rightarrow$ tools/list $\rightarrow$ resources/list).

  • Typed Output Verification (Smithery 100/100): Validates both parameter schemas and structured outputSchema contracts to ensure remote tools never crash client LLMs with unexpected payload shapes.

  • Real JSON-RPC 2.0 Handshake: Subscribes to SSE streams, handles hybrid event frames, and benchmarks tool discovery latency in real time.

  • Ajv Schema Validation: Detects malformed tool input schemas, syntax errors, and missing property declarations.

  • Breaking Schema Drift Detection: Computes canonical SHA-256 hashes across tool definitions. Detects removed tools, deleted parameters, mutated parameter types, and newly added required fields.

  • Secret & Credential Scanner: Audits tool descriptions and parameters for exposed OpenAI/Anthropic API keys, AWS credentials, and hardcoded database connection strings with automated redaction.

  • Dynamic GitHub README Badges: Embeddable, edge-cached SVG status and schema verification badges.

  • Multi-Channel Alerting: Instant notifications via Slack Block Kit and Discord Webhook embeds.


Related MCP server: aegis

🔌 Connect as a Remote MCP Server

MCP Sentinel is itself an official hosted Remote MCP Server supporting the full specification spectrum (2026-07-28, 2025-11-25, 2025-06-18, 2024-11-05). You can connect your favorite AI assistant (Cursor, Claude Desktop, Windsurf, MindPal) directly to MCP Sentinel to audit any remote MCP server on-demand:

  • Endpoint URL (Streamable HTTP): https://mcp-sentinel.pasihakamaki.workers.dev/mcp

  • SSE Transport URL: https://mcp-sentinel.pasihakamaki.workers.dev/sse

  • Official Registries: Smithery.ai (100/100 Quality Score & Typed Output) • Glama.ai (Verified)

Cursor (mcp.json)

{
  "mcpServers": {
    "mcp-sentinel": {
      "url": "https://mcp-sentinel.pasihakamaki.workers.dev/mcp"
    }
  }
}

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "mcp-sentinel": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp-sentinel.pasihakamaki.workers.dev/mcp"]
    }
  }
}

Available MCP Tools:

  • audit_mcp_server(endpointUrl, authHeader?): Runs an instant comprehensive synthetic audit on any remote MCP server, validating JSON-RPC 2.0 compliance, response format, schema validity (Ajv), and secret exposure.

  • verify_mcp_protocol(endpointUrl, authHeader?): Validates protocol compatibility and version negotiation across 2026-07-28, 2025-11-25, 2025-06-18, and 2024-11-05 specs, benchmarking round-trip handshake latency.

  • get_monitor_badge(monitorId): Returns public dynamic SVG status badge links and markdown embed snippets.


MCP Sentinel is a cloud-hosted B2B developer SaaS utility.

Tier

Price

Features

Free Community

$0 / month

1 remote server, 30-minute check intervals, dynamic GitHub badge, email alerts.

Developer Pro

$19 / month

Up to 5 remote servers, 1-minute synthetic checks, breaking schema drift alerts, Slack & Discord webhooks, 30-day logs.

Team

$49 / month

Up to 20 remote servers, continuous secret & token leak scanning, multi-region synthetic checks, PagerDuty integration.


🚀 Quick Start & Architecture

Built to run entirely on Cloudflare Workers and Cloudflare D1 serverless edge.

Install Dependencies & Run Tests

npm install
npm test
npm run typecheck

Run Public Audit via CLI

node dist/scripts/github-audit.js <REMOTE_MCP_SERVER_URL>

📜 Support & Policies

  • Customer Support: support@mcpsentinel.dev

  • Refund Policy: 14-day full refund guarantee on all subscription tiers.

  • Cancellation: Self-serve cancellation at any time via the Stripe Customer Billing Portal.

Available Tools

3 tools
audit_mcp_serverA
Read-only

Performs an automated synthetic health, protocol compliance, schema validation, and credential security audit on any remote Model Context Protocol (MCP) server. Use this tool when you need to comprehensively verify whether an external MCP server is reachable, measure round-trip latency, validate tool schemas against JSON Schema draft-07/2020-12 specifications, detect broken parameter definitions, and check for exposed API tokens or credentials. Returns a detailed markdown diagnostic report and structured status flags.

ParametersJSON Schema
NameRequiredDescriptionDefault
authHeaderNoOptional HTTP Authorization header value (e.g. "Bearer <token>" or custom token) if the remote MCP server requires authentication.
endpointUrlYesThe public HTTP or SSE endpoint URL of the target remote MCP server to audit (e.g. "https://api.example.com/mcp" or "https://example.com/sse"). Must include http:// or https:// protocol scheme.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesFormatted diagnostic audit report and performance findings.
isErrorYesTrue if the remote MCP server experienced downtime, failed the JSON-RPC handshake, or exposed leaked credentials.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the description only needs to add contextual behavior. It adds that the audit is 'synthetic', enumerates the checks performed, and discloses the return format (markdown diagnostic report and structured status flags). This is useful, non-redundant behavioral context with no annotation contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three dense sentences: purpose, trigger conditions, and output. It is front-loaded with the core action, avoids filler, and does not restate the input schema. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two fully documented parameters, an output schema, and readOnly annotations, the description covers the tool's scope, when to use it, and what it returns. An agent has enough information to select and invoke the tool correctly without missing critical context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters already have clear descriptions, formats, and examples. The tool description adds no parameter-specific semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Performs') and precise resource ('audit on any remote MCP server'), then enumerates the audit dimensions: health, protocol compliance, schema validation, and credential security. Although sibling tools are not named, the comprehensive-audit framing clearly distinguishes this tool from verify_mcp_protocol and get_monitor_badge.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes an explicit 'Use this tool when you need to...' clause listing concrete use cases such as checking reachability, latency, schema compliance, broken parameters, and exposed credentials. It lacks when-not-to-use guidance or explicit alternative routing, so it does not reach a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_monitor_badgeA
Read-only

Generates dynamic SVG status badge links and Markdown embed snippets for an MCP Sentinel uptime monitor. Use this tool when you want to display the real-time operational status, protocol version, and uptime badge of a monitored MCP server directly inside a GitHub repository README, developer documentation, or status page.

ParametersJSON Schema
NameRequiredDescriptionDefault
monitorIdYesThe unique identifier of the monitor (or "sample" / "demo" to preview a demonstration badge).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesGenerated SVG badge URLs and copy-paste markdown embed snippet.
isErrorYesWhether an error occurred while generating badge snippets.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds complementary behavioral context: the tool emits embeddable snippets and links reflecting real-time monitor status rather than mutating anything. No contradiction with annotations; the generate-and-return behavior is fully consistent with a read-only hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core function, followed by concrete usage context. No filler words; each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one parameter, no nested objects), has a full input schema, a read-only annotation, and an output schema. The description covers purpose, output artifact type, displayed content, and target destinations. Nothing essential for an agent to invoke it correctly is missing; the output schema handles return-value details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the monitorId parameter fully documented including examples ('demo', 'mon_prod_01', 'sample') and an explanation of preview values. The tool description adds no parameter-level details beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Generates'), a concrete artifact ('dynamic SVG status badge links and Markdown embed snippets'), and a clear domain ('MCP Sentinel uptime monitor'). The contents of the badge (real-time operational status, protocol version, uptime) are explicit. The sibling tools (audit_mcp_server, verify_mcp_protocol) perform clearly different actions, so no confusion is possible.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives an explicit trigger condition: 'Use this tool when you want to display...' with concrete destinations (GitHub README, developer documentation, status page). It does not name alternatives or state when not to use the tool, but the usage context is specific enough for an agent to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_mcp_protocolA
Read-only

Validates JSON-RPC 2.0 protocol compatibility and version negotiation with a remote MCP server without executing a full synthetic vulnerability scan. Use this tool when you specifically need to test whether a remote server supports modern Stateless Core ("2026-07-28"), structured outputs ("2025-06-18"), icons metadata ("2025-11-25"), or legacy handshakes ("2024-11-05"), benchmark handshake latency, or inspect declared server capabilities and tool counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
authHeaderNoOptional HTTP Authorization header value if the remote server requires authentication.
endpointUrlYesThe target remote MCP server endpoint URL to test (Streamable HTTP POST or SSE stream).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesSummary of the protocol handshake result.
isErrorYesTrue if the remote server failed to complete the MCP initialization handshake.
latencyMsNoRound-trip handshake latency in milliseconds.
protocolVersionNoThe exact protocol version negotiated with the server (e.g. "2026-07-28", "2025-11-25", "2025-06-18", or "2024-11-05").

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and openWorldHint=true, and the description adds meaningful behavioral context: version negotiation targets, handshake latency benchmarking, capability/tool count inspection, and no vulnerability scanning. This goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core action is front-loaded, and every clause adds useful context: supported protocol versions, latency benchmarking, capability inspection, and the exclusion of vulnerability scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, use cases, and exclusions, while the schema documents both parameters and an output schema exists. It could be slightly stronger by explicitly directing users to audit_mcp_server for full vulnerability scans, but nothing critical is missing for a read-only protocol check.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both endpointUrl and authHeader have clear descriptions and examples. The description itself does not add parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific verb and resource: 'Validates JSON-RPC 2.0 protocol compatibility and version negotiation with a remote MCP server'. It also distinguishes itself from the sibling audit_mcp_server by explicitly stating it is 'without executing a full synthetic vulnerability scan'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit use-this-when list: 'Use this tool when you specifically need to test whether a remote server supports...' and covers several concrete scenarios. It also states what the tool is not ('without executing a full synthetic vulnerability scan'), but it does not explicitly name the alternative tool, audit_mcp_server, so the guidance is clear but not fully complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.2
    • Changedaudit_mcp_server13 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / authHeader / description
        Previous value: -"Optional Authorization header value (e.g. \"Bearer sk_...\" or custom token) if the remote server requires authentication"New value: +"Optional HTTP Authorization header value (e.g. \"Bearer <token>\" or custom token) if the remote MCP server requires authentication."
      • addedInput schema / properties / authHeader / examples
        Added value: +[
        +  "Bearer sample_token_abc123"
        +]
      • changedInput schema / properties / endpointUrl / description
        Previous value: -"The remote MCP server HTTP or SSE URL to test (e.g. https://api.example.com/mcp or https://example.com/sse)"New value: +"The public HTTP or SSE endpoint URL of the target remote MCP server to audit (e.g. \"https://api.example.com/mcp\" or \"https://example.com/sse\"). Must include http:// or https:// protocol scheme."
      • addedInput schema / properties / endpointUrl / examples
        Added value: +[
        +  "https://mcp-sentinel.pasihakamaki.workers.dev/mcp",
        +  "https://mcp.deepwiki.com/sse"
        +]
      • addedInput schema / properties / endpointUrl / format
        Added value: +"uri"
      • addedInput schema / properties / endpointUrl / minLength
        Added value: +1
      • addedOutput schema / additionalProperties
        Added value: +false
      • addedOutput schema / properties / content / description
        Added value: +"Formatted diagnostic audit report and performance findings."
      • changedOutput schema / properties / content / items / properties / text / description
        Previous value: -"Diagnostic audit report"New value: +"Diagnostic audit report with latency, tools count, schema validity, and security status."
      • changedOutput schema / properties / content / items / properties / type / description
        Previous value: -"Content MIME type"New value: +"MIME type of output content (text/plain)."
      • changedOutput schema / properties / isError / description
        Previous value: -"Whether the audit detected downtime or failure"New value: +"True if the remote MCP server experienced downtime, failed the JSON-RPC handshake, or exposed leaked credentials."
      • changedOutput schema / required
        Previous value: -[
        -  "content"
        -]New value: +[
        +  "content",
        +  "isError"
        +]
    • Changedget_monitor_badge10 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / monitorId / description
        Previous value: -"The monitor ID or identifier"New value: +"The unique identifier of the monitor (or \"sample\" / \"demo\" to preview a demonstration badge)."
      • addedInput schema / properties / monitorId / examples
        Added value: +[
        +  "demo",
        +  "mon_prod_01",
        +  "sample"
        +]
      • addedInput schema / properties / monitorId / minLength
        Added value: +1
      • addedOutput schema / additionalProperties
        Added value: +false
      • addedOutput schema / properties / content / description
        Added value: +"Generated SVG badge URLs and copy-paste markdown embed snippet."
      • changedOutput schema / properties / content / items / properties / text / description
        Previous value: -"Badge URLs and markdown snippets"New value: +"Badge URL and Markdown snippet."
      • changedOutput schema / properties / content / items / properties / type / description
        Previous value: -"Content MIME type"New value: +"Content MIME type."
      • changedOutput schema / properties / isError / description
        Previous value: -"Whether an error occurred"New value: +"Whether an error occurred while generating badge snippets."
      • changedOutput schema / required
        Previous value: -[
        -  "content"
        -]New value: +[
        +  "content",
        +  "isError"
        +]
    • Addedverify_mcp_protocol
  2. 2 tool updatesv0.1.0
    • First observedaudit_mcp_server
    • First observedget_monitor_badge

TDQS

A4.1/5.0
Disambiguation4/5

get_monitor_badge is clearly distinct as a badge/snippet generator. audit_mcp_server and verify_mcp_protocol overlap somewhat because both check protocol compatibility and latency, but audit is explicitly broader while verify is narrowly scoped to protocol negotiation and handshake testing.

Naming Consistency4/5

All tool names follow a verb_noun pattern with snake_case separators. The verbs differ (get, audit, verify) and the nouns reference different resources, but the pattern is consistent and predictable.

Tool Count4/5

Three tools is a compact set that covers badge generation, full audits, and protocol-only verification without redundancy. It is slightly minimal but appropriate for a focused sentinel/status utility.

Completeness4/5

The core workflows of verifying an MCP server, auditing it comprehensively, and generating status badges are covered. Minor gaps exist, such as raw uptime data retrieval or monitor management, but they do not create a dead end for common use cases.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Automatically discovers and tests MCP services for security vulnerabilities including command injection, SQL injection, SSRF, path traversal, and sensitive data exposure with detailed reports and remediation guidance.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Cross-stack MCP server that scans frontend and backend code together, detects mismatches like phantom calls, dead endpoints, and field drift, and provides a full-stack health audit.
    16
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Integrity monitor for MCP server ecosystems, providing real-time health checks, drift detection, and cascade impact analysis for any AI agent.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pasihaka/mcp-sentinel'

If you have feedback or need assistance with the MCP directory API, please join our Discord server