Is the Federico2001 Openglass MCP server down?

mcp-registry/io.github.federico2001/openglass-mcp · v0.2.0

healthy
Last checked 2026-10-18 10:13 UTC · handshake 297ms

As of 2026-10-18 10:13 UTC, the Federico2001 Openglass MCP server is up with a Glimind reliability score of 87/100 (grade B). Over the last 30 days it answered 99.9% of Glimind's liveness checks. It had 3 outages in 90 days, with a median recovery of 7 minutes.

uptime (30d checks)
99.9%
checks observed
2,955
outages (90d)
3
tools
14

Neutral witness for agent-to-agent sessions: signed, hash-chained, verifiable records.

Install Federico2001 Openglass MCP server

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http federico2001-openglass-mcp-server https://mcp.openglass.glass/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "federico2001-openglass-mcp-server": {
      "type": "http",
      "url": "https://mcp.openglass.glass/mcp"
    }
  }
}

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

Agent-readiness: D (58/100)

D (58/100): 0 error(s), 6 warning(s) across 14 tool(s); ~12,062 tokens of tool definitions.
Scores higher than 0% of 15,365 MCP servers Glimind has audited.
Its tool list costs an agent ~12,062 tokens per session — more than 85% of servers.
58 → 58 since 2026-10-17
no tool-poisoning patterns
Schemas83
Descriptions30
Safety hints0
Token cost86
Client compatibility70
Protocol100
Reliability85
Stability48

What to fix (8)

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

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 ~2,758 tokens every session. How to fix →

Tools: verify_agent · saves ~2,758 tokens/session

41 parameter(s) across 14 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: accept_invite, close_attestation, close_session, get_record, invite_counterparty and 9 more

14 of 14 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: accept_invite, close_attestation, close_session, get_record, invite_counterparty and 9 more

4 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: close_attestation, close_session, send_attestation_event, send_message

2 tool(s) have parameters with no type (no type/enum/anyOf/$ref).

Give every parameter a "type" (or "enum"/"anyOf"). Untyped parameters make models guess — strings for numbers, objects for arrays. How to fix →

Tools: send_attestation_event, send_message

Handshake + tools/list takes ~1,913 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 13 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: 11 corrected tool definitions

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

accept_invite 1 change
{
  "name": "accept_invite",
  "description": "The other half of start_session/invite_counterparty: accept an invite addressed to you (direct) or bearer a token for (open). `mode: \"prepare\"` (auth = a signed GET of the invite; pass `token` for open invites) returns the offer and its offerHash so you know exactly what to build and sign next. `mode: \"submit\"` (auth = a signed POST) then submits your signed Accept (SPEC §7.2, purpose \"accept\"), which activates the session. Before accepting, consider calling verify_agent with the initiator's age",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "mode",
      "inviteId",
      "auth"
    ],
    "properties": {
      "auth": {
        "type": "object",
        "required": [
          "kid",
          "timestamp",
          "nonce",
          "sig"
        ],
        "properties": {
          "kid": {
            "type": "string",
            "description": "Your signing key id (key_...) — or the literal \"new\" for register_agent."
          },
          "sig": {
            "type": "string",
            "description": "base64url Ed25519 signature per OpenGlass SPEC §4.1, computed locally over sha256(JCS({method, path, timestamp, nonce, bodySha256})). This server cannot compute this for you — it never holds or generates private keys."
          },
          "nonce": {
            "type": "string",
            "description": "Fresh random value (base64url recommended), unique per request."
          },
          "agentId": {
            "type": "string",
            "description": "Your own agent id (agt_...). Omit only for register_agent's self-signed call."
          },
          "timestamp": {
            "type": "string",
            "description": "RFC3339 UTC timestamp at signing time, e.g. new Date().toISOString()."
          }
        }
      },
      "mode": {
        "enum": [
          "prepare",
          "submit"
        ],
        "type": "string"
      },
      "token": {
        "type": "string",
        "description": "Required for open invites (bearer token from the invite URL)."
      },
      "accept": {
        "type": "object",
        "required": [
          "v",
          "type",
          "sessionId",
          "offerHash",
          "counterparty",
          "acceptedAt"
        ],
        "properties": {
          "v": {
            "type": "number",
            "const": 1
          },
          "type": {
            "type": "string",
            "const": "openglass.accept"
          },
          "offerHash": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "sessionId": {
            "type": "string",
            "pattern": "^ses_[0-9A-HJKMNP-TV-Z]{26}$"
          },
          "acceptedAt": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
          },
          "counterparty": {
            "type": "object",
            "required": [
              "agentId",
              "kid",
              "publicKey"
            ],
            "properties": {
              "kid": {
                "type": "string",
                "pattern": "^(key_[0-9A-HJKMNP-TV-Z]{26}|plat_[a-z0-9_-]{1,32})$"
              },
              "agentId": {
                "type": "string",
                "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
              },
              "publicKey": {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]{43}$"
              }
            },
            "additionalProperties": false
          }
        },
        "description": "Required for mode=submit.",
        "additionalProperties": false
      },
      "inviteId": {
        "type": "string"
      },
      "signature": {
        "type": "object",
        "required": [
          "alg",
          "kid",
          "sig"
        ],
        "properties": {
          "alg": {
            "enum": [
              "Ed25519",
              "ECDSA_P256_SHA256"
            ],
            "type": "string"
          },
          "kid": {
            "type": "string",
            "pattern": "^(key_[0-9A-HJKMNP-TV-Z]{26}|plat_[a-z0-9_-]{1,32})$"
          },
          "sig": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]+$"
          }
        },
        "description": "Required for mode=submit — the accept signature, not the request auth.",
        "additionalProperties": false
      }
    }
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false
  },
  "title": "Accept a session invite"
}
close_attestation 1 change
{
  "name": "close_attestation",
  "description": "Close your own active attestation (POST /v1/attestations/{id}/close), which starts record issuance exactly like close_session. `mode: \"prepare\"` (auth = a signed GET) returns the current head to close at. `mode: \"submit\"` (auth = a signed POST) submits your signed CloseStatement, built per SPEC §7.4/§12.",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "mode",
      "attestationId",
      "auth"
    ],
    "properties": {
      "auth": {
        "type": "object",
        "required": [
          "kid",
          "timestamp",
          "nonce",
          "sig"
        ],
        "properties": {
          "kid": {
            "type": "string",
            "description": "Your signing key id (key_...) — or the literal \"new\" for register_agent."
          },
          "sig": {
            "type": "string",
            "description": "base64url Ed25519 signature per OpenGlass SPEC §4.1, computed locally over sha256(JCS({method, path, timestamp, nonce, bodySha256})). This server cannot compute this for you — it never holds or generates private keys."
          },
          "nonce": {
            "type": "string",
            "description": "Fresh random value (base64url recommended), unique per request."
          },
          "agentId": {
            "type": "string",
            "description": "Your own agent id (agt_...). Omit only for register_agent's self-signed call."
          },
          "timestamp": {
            "type": "string",
            "description": "RFC3339 UTC timestamp at signing time, e.g. new Date().toISOString()."
          }
        }
      },
      "mode": {
        "enum": [
          "prepare",
          "submit"
        ],
        "type": "string"
      },
      "signature": {
        "type": "object",
        "required": [
          "alg",
          "kid",
          "sig"
        ],
        "properties": {
          "alg": {
            "enum": [
              "Ed25519",
              "ECDSA_P256_SHA256"
            ],
            "type": "string"
          },
          "kid": {
            "type": "string",
            "pattern": "^(key_[0-9A-HJKMNP-TV-Z]{26}|plat_[a-z0-9_-]{1,32})$"
          },
          "sig": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]+$"
          }
        },
        "description": "Required for mode=submit.",
        "additionalProperties": false
      },
      "statement": {
        "type": "object",
        "required": [
          "v",
          "type",
          "sessionId",
          "headSeq",
          "headHash",
          "closedAt"
        ],
        "properties": {
          "v": {
            "type": "number",
            "const": 1
          },
          "type": {
            "type": "string",
            "const": "openglass.close"
          },
          "headSeq": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "closedAt": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
          },
          "headHash": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[0-9a-f]{64}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "sessionId": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^ses_[0-9A-HJKMNP-TV-Z]{26}$"
              },
              {
                "type": "string",
                "pattern": "^att_[0-9A-HJKMNP-TV-Z]{26}$"
              }
            ]
          }
        },
        "description": "Required for mode=submit.",
        "additionalProperties": false
      },
      "attestationId": {
        "type": "string"
      }
    }
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "idempotentHint": true
  },
  "title": "Close an attestation"
}
close_session 1 change
{
  "name": "close_session",
  "description": "Close an active session (POST /v1/sessions/{id}/close), which starts record issuance — the platform builds the evidence bundle, signs a record, and both owners can retrieve it afterward. `mode: \"prepare\"` (auth = a signed GET) returns the current head to close at. `mode: \"submit\"` (auth = a signed POST) submits your signed CloseStatement, built per SPEC §7.4.",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "mode",
      "sessionId",
      "auth"
    ],
    "properties": {
      "auth": {
        "type": "object",
        "required": [
          "kid",
          "timestamp",
          "nonce",
          "sig"
        ],
        "properties": {
          "kid": {
            "type": "string",
            "description": "Your signing key id (key_...) — or the literal \"new\" for register_agent."
          },
          "sig": {
            "type": "string",
            "description": "base64url Ed25519 signature per OpenGlass SPEC §4.1, computed locally over sha256(JCS({method, path, timestamp, nonce, bodySha256})). This server cannot compute this for you — it never holds or generates private keys."
          },
          "nonce": {
            "type": "string",
            "description": "Fresh random value (base64url recommended), unique per request."
          },
          "agentId": {
            "type": "string",
            "description": "Your own agent id (agt_...). Omit only for register_agent's self-signed call."
          },
          "timestamp": {
            "type": "string",
            "description": "RFC3339 UTC timestamp at signing time, e.g. new Date().toISOString()."
          }
        }
      },
      "mode": {
        "enum": [
          "prepare",
          "submit"
        ],
        "type": "string"
      },
      "sessionId": {
        "type": "string"
      },
      "signature": {
        "type": "object",
        "required": [
          "alg",
          "kid",
          "sig"
        ],
        "properties": {
          "alg": {
            "enum": [
              "Ed25519",
              "ECDSA_P256_SHA256"
            ],
            "type": "string"
          },
          "kid": {
            "type": "string",
            "pattern": "^(key_[0-9A-HJKMNP-TV-Z]{26}|plat_[a-z0-9_-]{1,32})$"
          },
          "sig": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]+$"
          }
        },
        "description": "Required for mode=submit.",
        "additionalProperties": false
      },
      "statement": {
        "type": "object",
        "required": [
          "v",
          "type",
          "sessionId",
          "headSeq",
          "headHash",
          "closedAt"
        ],
        "properties": {
          "v": {
            "type": "number",
            "const": 1
          },
          "type": {
            "type": "string",
            "const": "openglass.close"
          },
          "headSeq": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "closedAt": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
          },
          "headHash": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[0-9a-f]{64}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "sessionId": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^ses_[0-9A-HJKMNP-TV-Z]{26}$"
              },
              {
                "type": "string",
                "pattern": "^att_[0-9A-HJKMNP-TV-Z]{26}$"
              }
            ]
          }
        },
        "description": "Required for mode=submit.",
        "additionalProperties": false
      }
    }
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "idempotentHint": true
  },
  "title": "Close a witnessed session"
}

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

Agents: watch_tool({"toolId": "mcp-registry/io.github.federico2001/openglass-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%2Fio.github.federico2001%2Fopenglass-mcp.svg)](https://glimind.com/server/mcp-registry%2Fio.github.federico2001%2Fopenglass-mcp?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fio.github.federico2001%2Fopenglass-mcp?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.federico2001%2Fopenglass-mcp.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.federico2001%2Fopenglass-mcp.svg
   :target: https://glimind.com/server/mcp-registry%2Fio.github.federico2001%2Fopenglass-mcp?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:7449ac80b50e2ae9…, first seen 2026-10-17, included at leaf 1811 of 21,399. Version history · verify what your client received.

Tools (14)

Compare: most reliable communication servers · most reliable security servers · most reliable knowledge servers · most reliable other 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 Federico2001 Openglass MCP server down right now?

As of 2026-10-18 10:13 UTC, the Federico2001 Openglass MCP server is up with a Glimind reliability score of 87/100 (grade B). Over the last 30 days it answered 99.9% of Glimind's liveness checks. It had 3 outages in 90 days, with a median recovery of 7 minutes.

How many tools does Federico2001 Openglass MCP server provide?

Federico2001 Openglass MCP server advertises 14 tools, including accept_invite, close_attestation, close_session, get_record, invite_counterparty.

How do I install Federico2001 Openglass MCP server?

Point your MCP client at this streamable-http endpoint: https://mcp.openglass.glass/mcp

Is the Federico2001 Openglass MCP server safe to connect to an AI agent?

Glimind scanned all 14 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 Federico2001 Openglass 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.