Skip to main content
Glama
bind-protocol

@bind-protocol/mcp-server

Official
              ━━━╸  888888b. 8888888888b    8888888888b.
            ━━━━━╸  888  "88b  888  8888b   888888  "Y88b
          ━━━━━━━╸  888  .88P  888  88888b  888888    888
        ━━━━━━━━━╸  8888888K.  888  888Y88b 888888    888
      ━━━━━━━━━━━╸  888  "Y88b 888  888 Y88b888888    888
    ━━━━━━━━━━━━━╸  888    888 888  888  Y88888888    888
  ━━━━━━━━━━━━━━━╸  888   d88P 888  888   Y8888888  .d88P
━━━━━━━━━━━━━━━━━╸  8888888P"8888888888    Y8888888888P"

                               P R O T O C O L

@bind-protocol/mcp-server

Local MCP server for Bind Protocol — credential parsing, verification, and hashing tools for AI agents.

Overview

This MCP (Model Context Protocol) server enables AI agents to work with Bind Protocol Verifiable Credentials (VC-JWTs). It provides tools to decode, cryptographically verify, and hash credentials without requiring direct access to keys or the Bind Protocol API.

Related MCP server: aip-identity

Tools

Tool

Description

bind_parse_credential

Decode a VC-JWT into its header, payload, and signature without verifying the signature.

bind_verify_credential

Parse a VC-JWT, fetch the issuer's JWKS, verify the ES256 signature, and check expiration. Does not check revocation.

bind_hash_credential

Compute the SHA-256 hash of a VC-JWT (for use with bind_check_revocation).

Installation

npm install @bind-protocol/mcp-server

Or clone and build from source:

git clone <repo-url>
cd mcp-server
npm install
npm run build

Requirements

  • Node.js >= 18.0.0

Configuration

Add the server to your MCP client config. For Claude Desktop, edit claude_desktop_config.json:

{
  "mcpServers": {
    "bind-protocol": {
      "command": "npx",
      "args": ["@bind-protocol/mcp-server"]
    }
  }
}

Or point directly to the built binary:

{
  "mcpServers": {
    "bind-protocol": {
      "command": "bind-mcp-server"
    }
  }
}

Environment variables

Variable

Default

Description

BIND_API_URL

https://api.bindprotocol.xyz

Bind Protocol API endpoint used to fetch issuer JWKS.

LOG_LEVEL

info

Log verbosity (fatal, error, warn, info, debug, trace).

Development

npm run dev          # Build in watch mode
npm run build        # Production build
npm run typecheck    # Type-check without emitting
npm run test         # Run tests
npm run test:watch   # Run tests in watch mode

License

MIT

mcp-server

Available Tools

3 tools
bind_hash_credentialA

Compute the SHA-256 hash of a VC-JWT. The resulting hash can be passed to bind_check_revocation to check revocation status.

ParametersJSON Schema
NameRequiredDescriptionDefault
jwtYesThe VC-JWT string to hash

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden of disclosure. It reveals the algorithm (SHA-256) and downstream purpose, but does not specify the output format (e.g., hex, base64) or any edge-case behavior, which is a notable gap for a computation tool.

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 concise sentences with no redundancy. The key action and purpose are front-loaded, making it easy for an agent to quickly understand the tool's function.

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 explains what the tool does, why it is used, and how the result is consumed downstream. Since there is no output schema, it could be more explicit about the returned hash format, but it is largely complete for a simple utility.

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?

The schema already provides a clear description for the single parameter (jwt: 'The VC-JWT string to hash'), achieving 100% coverage. The description adds no extra parameter detail beyond what the schema conveys.

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 clearly states the tool computes a SHA-256 hash of a VC-JWT, a specific operation distinct from siblings (verify, parse). It also names the downstream use (bind_check_revocation), making its purpose unambiguous.

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 provides the usage context: generating a hash for revocation checking. It does not explicitly contrast with sibling tools or state exclusions, but the intended workflow is clear enough for an agent to decide when to invoke it.

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

bind_parse_credentialA

Decode a Bind Protocol VC-JWT into its header, payload, and signature without verifying the signature. Use this to inspect a credential before verification.

ParametersJSON Schema
NameRequiredDescriptionDefault
jwtYesThe VC-JWT string to parse

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It clearly states the crucial nuance that signature verification is not performed, and it describes the output components. It does not mention error handling or side effects, but for a parse/inspect tool this covers the main behavioral trait.

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 two sentences, front-loaded with the core action, and contains no fluff. Every word earns its place, clearly stating what the tool does and when to use it.

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?

Given the tool's simplicity (one parameter, no output schema), the description adequately covers the essential context: what it decodes, the fact it does not verify, and its intended purpose. It could specify the exact return structure, but naming 'header, payload, and signature' gives sufficient shape for an agent.

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?

The input schema already provides 100% coverage with a single parameter `jwt` described as 'The VC-JWT string to parse'. The tool description adds no additional parameter-specific meaning beyond the schema, 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 uses the specific verb 'Decode' with the resource 'Bind Protocol VC-JWT' and explicitly states the output components (header, payload, signature). It clearly distinguishes itself from siblings by noting it does 'without verifying the signature' and frames it for inspection before verification.

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?

It provides explicit guidance on when to use the tool ('Use this to inspect a credential before verification') and implies a limitation ('without verifying'). However, it does not name alternative tools directly; the sibling context helps but the description itself stops short of explicitly saying 'use bind_verify_credential for verification.'

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

bind_verify_credentialA

Verify a Bind Protocol VC-JWT: parse the JWT, fetch the issuer JWKS, verify the ES256 signature, and check expiration. Does NOT check revocation status — use bind_check_revocation separately for that. Returns the verified claims on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
jwtYesThe VC-JWT string to verify

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and discloses key behaviors: parsing JWT, fetching JWKS, verifying ES256 signature, and checking expiration. It also states what it does not do (revocation check). It lacks error handling details, but the core behavioral profile is transparent.

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 primary purpose and a clear process list. No waste; every word contributes to understanding.

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 the main workflow, return value ('Returns the verified claims on success'), and explicitly scopes out revocation. For a simple one-parameter tool with no output schema, this is adequately complete, though error behavior is not mentioned.

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?

The schema fully describes the 'jwt' parameter with 100% coverage. The description adds no additional parameter-level detail beyond what the schema already provides, so baseline 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 clearly states the tool 'Verify a Bind Protocol VC-JWT' and lists the verification steps. It distinguishes from siblings by focusing on verification (vs parsing/hashing) and explicitly notes it does not check revocation.

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

Usage Guidelines5/5

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

Explicitly says 'Does NOT check revocation status — use bind_check_revocation separately for that', naming an alternative and clarifying when not to use this tool. The verification context makes the intended use clear.

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.0
    • First observedbind_hash_credential
    • First observedbind_parse_credential
    • First observedbind_verify_credential

TDQS

A4.2/5.0
Disambiguation5/5

Each tool serves a distinct purpose: bind_verify_credential performs full signature verification, bind_hash_credential computes a hash for revocation lookup, and bind_parse_credential decodes without verification. There is no overlap or ambiguity between these actions.

Naming Consistency5/5

All tool names follow a consistent 'bind_verb_noun' pattern: bind_verify_credential, bind_hash_credential, bind_parse_credential. The prefix and verb ordering are uniform, making the set predictable and easy to navigate.

Tool Count5/5

The server has only 3 tools, each focused on a specific credential operation (verify, hash, parse). This is a well-scoped set for a credential utility, falling within the typical 3-15 tool range and avoiding redundancy.

Completeness3/5

The tools cover parsing, hashing, and verification, but verification explicitly does not check revocation and relies on a separate 'bind_check_revocation' tool that is not included. This creates a notable gap in the credential validation workflow, as the hash tool is only useful if the revocation check is available elsewhere.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/bind-protocol/mcp-server'

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