Skip to main content
Glama
Verfi-io

verfi-mcp-server

Official
by Verfi-io

@verfi/mcp-server

MCP server for Verfi — TCPA consent verification tools for AI agents.

Tools

Tool

Description

verfi_verify_consent

Check if a lead has valid consent. The primary tool for compliance verification.

verfi_get_proof

Get full machine-readable consent proof for a session.

verfi_search_session

Look up a session by Verfi ID with optional PII hash verification.

verfi_get_claim_status

Read claim mode, availability and recording validity (not a reservation).

verfi_claim_session

Claim with buyer gates and a persisted idempotency key.

verfi_unclaim_session

Release a claimed session.

verfi_list_sessions

List your claimed sessions (paginated).

verfi_update_expiration

Update a claimed session's expiration date.

verfi_add_sdk

Get SDK integration snippet and setup instructions.

Related MCP server: Smallest MCP Server

Setup

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "verfi": {
      "command": "npx",
      "args": ["-y", "@verfi/mcp-server"],
      "env": {
        "VERFI_API_KEY": "sk_your_secret_key_here"
      }
    }
  }
}

Cursor / Windsurf

Add to your MCP config:

{
  "verfi": {
    "command": "npx",
    "args": ["-y", "@verfi/mcp-server"],
    "env": {
      "VERFI_API_KEY": "sk_your_secret_key_here"
    }
  }
}

Environment Variables

Variable

Required

Description

VERFI_API_KEY

Yes

Your Verfi secret API key (sk_...)

VERFI_API_URL

No

API base URL (defaults to https://api.verfi.io/tenant/v1)

Agent Plugin

This repo also ships a portable Agent Plugins v1.0.0 package in plugin/ that bundles this MCP server together with the Verfi consent-verification skill. Compatible clients (Cursor, Claude, OpenAI, etc.) can discover and load both from one directory. See plugin/README.md.

Quick Start

Developer: "Check if lead VF-a1b2c3d4 has valid TCPA consent"

Agent calls: verfi_verify_consent({ verfiID: "VF-a1b2c3d4" })

→ { consent_valid: true, tcpa_compliant: true, proof_url: "..." }

API Key Scopes

Your API key's scopes determine which tools are available:

  • sessions:search → verfi_search_session, verfi_get_claim_status

  • sessions:proof → verfi_get_proof, verfi_verify_consent

  • sessions:claim → verfi_claim_session

  • sessions:unclaim → verfi_unclaim_session

  • sessions:expiration → verfi_update_expiration

Generate API keys in the Verfi dashboard under Integration > API Keys.

License

MIT

Building a lead-router integration

Start at https://verfi.io/docs/agent-plugin or read the web-session integration contract. Direct REST does not require MCP installation.

Updated source adds verfi_get_claim_status (sessions:search) and claim options requireRecording, requireVerticals, requireVerifiedScore, minQualityScore, and idempotencyKey. These require the updated server, not just new skill files. Inspect tools/list; use REST or npm install && npm run build followed by node /absolute/path/dist/index.js until the updated npm package is released/installed. PII is a separate verfi_search_session lookup before claiming. Proof summaries do not perform a combined acceptance decision; when verfi_verify_consent checks hashes it also needs sessions:search.

Available Tools

9 tools
verfi_add_sdkA

Get the Verfi SDK integration snippet and setup instructions for capturing consent on a web form.

ParametersJSON Schema
NameRequiredDescriptionDefault
publicKeyNoYour Verfi public API key (pk_). If not provided, returns generic instructions.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. The verb 'Get' implies a read-only operation and the description says it returns a snippet and instructions, but it does not explicitly confirm safety profile, permissions, or rate-limit behavior.

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 a single efficient sentence with the main purpose front-loaded. Every part contributes useful information and there is no filler.

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?

For a simple getter with one optional, fully described parameter and no output schema, the description adequately says what is returned: an SDK integration snippet and setup instructions. Minor behavioral details are missing, but nothing critical prevents correct invocation.

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?

There is one optional parameter and schema description coverage is 100%, so the schema already explains publicKey and its fallback behavior. The description adds no parameter-specific details beyond what is in the schema, making the baseline score of 3 appropriate.

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

Purpose4/5

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

The description states a specific verb and resource: get the Verfi SDK integration snippet and setup instructions. It also scopes the purpose to consent capture on a web form, which distinguishes it from the session, proof, and claim siblings, though the name verfi_add_sdk is slightly less precise than the described action.

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

Usage Guidelines3/5

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

The phrase 'for capturing consent on a web form' implies the intended usage context, but it does not explicitly say when to use this tool versus alternatives or mention prerequisites. No exclusions or alternative tools are named.

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

verfi_claim_sessionA

Claim a web session using buyer gates. Requires sessions:claim. Validate required PII separately before calling. Only success=true and data.status=claimed indicates claim success. Reuse the same idempotencyKey and body for identical retries; wallet receipts may replay a historical success without re-evaluating gates.

ParametersJSON Schema
NameRequiredDescriptionDefault
verfiIDYesVerfi session ID to claim
expirationDateNoOptional ISO expiration, default 3 years, maximum 5.
idempotencyKeyNoRequired for wallet-enrolled tenants. Persist per operation; reuse identical session/body on retries. UUID recommended.
minQualityScoreNoMinimum behavioral human-confidence score, higher is more human-like.
requireRecordingNoRequire valid recording; failure is 409 no_recording.
requireVerticalsNoAny overlap with declared verticals passes. Select the vertical for this lead type.
requireVerifiedScoreNoMinimum cached metadata keyword score against declared starter verticals, not replay analysis.

TDQS

A3.9/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 does well: it discloses the required scope, the exact success condition (success=true and data.status=claimed), idempotency/retry semantics, and the non-obvious caveat that wallet receipts can replay a historical success without re-evaluating gates. It does not say what happens to an existing owner on re-claim or what failure shapes look like beyond the 409 noted in the schema.

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

Conciseness4/5

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

Four compact sentences, front-loaded with the action and the scope requirement, then success criteria, then retry semantics. Every sentence carries operational weight; density is high but justified for a mutation tool with no annotations.

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?

For a 7-parameter mutation tool with no annotations and no output schema, the description covers the critical gaps: required scope, success verification, idempotency, and replay risk. It does not describe the return payload shape in any depth, which is the main remaining omission given the absent output schema.

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%, so the schema already documents all 7 parameters. The description reinforces idempotencyKey reuse ('same idempotencyKey and body for identical retries') but adds almost nothing the schema's own parameter descriptions do not already state, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: 'Claim a web session using buyer gates.' An agent can distinguish it from the sibling verfi_unclaim_session or verfi_get_claim_status by the verb alone, though the description never explicitly contrasts with those siblings.

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 a clear precondition ('Requires sessions:claim') and a sequencing instruction ('Validate required PII separately before calling'), plus retry guidance. It stops short of naming alternatives such as verfi_get_claim_status for checking existing claims, so there is no explicit when-not guidance.

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

verfi_get_claim_statusA

Read web-session claimMode, claimable and recording validity before claiming. Requires sessions:search. Not a reservation or buyer-gate evaluation; multi mode does not check your existing claim.

ParametersJSON Schema
NameRequiredDescriptionDefault
verfiIDYesVerfi session ID or proof URL

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well: 'Read' signals a non-mutating operation, 'Requires sessions:search' discloses authorization, and the caveats explain what the tool does not evaluate. It stops short of detailing output shape or failure behavior, but it adds meaningful behavioral context beyond the schema.

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 short sentences with no wasted text, and the primary action is front-loaded. The caveats come after the core purpose without obscuring 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?

For a one-parameter read tool with no output schema and no annotations, the description is largely complete: it identifies what is read, the prerequisite, and key non-use cases. It could be slightly richer by describing the expected response fields or error conditions.

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 coverage is 100% and the single verfiID parameter is already documented as a session ID or proof URL. The description does not add further syntax or format guidance, 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 gives a specific verb and resource: it reads a web-session's claimMode, claimable, and recording validity. It also distinguishes the tool from claiming and from reservation/buyer-gate evaluations, so an agent can tell it apart from siblings such as verfi_claim_session.

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 clearly says to use this before claiming and explicitly excludes reservation and buyer-gate evaluation use cases. It also states the sessions:search prerequisite, though it does not name verfi_claim_session as the follow-up alternative.

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

verfi_get_proofA

Get machine-readable consent proof for a session. Returns structured data including consent status, interaction metrics, form data, device info, and tamper verification. All PII is SHA-256 hashed.

ParametersJSON Schema
NameRequiredDescriptionDefault
verfiIDYesVerfi session ID (e.g. VF-a1b2c3d4)

TDQS

A3.6/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 does reasonably well: it discloses the return content (consent status, interaction metrics, form data, device info, tamper verification) and a meaningful behavioral trait — all PII is SHA-256 hashed. It does not explicitly state read-only semantics, permissions, or behavior for missing/invalid session IDs.

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?

Three tight sentences, front-loaded with the action and result, followed by the return payload and the PII-handling note. No filler.

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?

No output schema exists, so the description correctly describes the returned fields, and the PII-hashing note covers a key data-handling concern. The remaining gap is routing guidance relative to the many sibling tools, which the description omits.

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?

There is a single required parameter, verfiID, and the schema documents it at 100% coverage with a format example (VF-a1b2c3d4). The description adds nothing about the parameter, but the schema already carries it, so the baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource: 'Get machine-readable consent proof for a session', and enumerates what the proof contains. It is clear what the tool produces, though it doesn't explicitly distinguish itself from siblings like verfi_verify_consent or verfi_get_claim_status.

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

Usage Guidelines2/5

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

There is no guidance on when to call this versus verfi_verify_consent, verfi_get_claim_status, or verfi_search_session. The name implies fetching a proof for an existing session, but no conditions, prerequisites (e.g., session must be completed), or alternatives are stated.

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

verfi_list_sessionsB

List sessions claimed by your organization. Returns paginated results with session status and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
limitNoResults per page (1-100, default 20)
statusNoFilter by this tenant's claim status

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full behavioral burden. It does disclose that results are paginated and include session status and metadata, and "List" implies a read-only operation, but it says nothing about ordering, auth/tenant scoping mechanics, rate limits, or whether unclaimed sessions are truly returned despite the opening sentence.

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

Conciseness4/5

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

Two short sentences with the core operation front-loaded and no filler preamble. "With session status and metadata" is slightly vague and borders on generic, but it is the only part that could be trimmed.

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?

For a simple read-only list with three optional parameters, full schema coverage, and no output schema, the description covers the essentials: what is listed, the tenant scope, and that results are paginated with status/metadata. What remains missing is return ordering and the search-vs-list distinction, both of which an agent would likely want.

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% — page, limit ranges, and the claimed/unclaimed enum are all documented in the schema itself. The description only echoes the existence of pagination and adds no syntax, defaults, or filtering semantics beyond what the schema already states, so baseline 3 applies.

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

Purpose4/5

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

The description gives a clear verb and resource ("List sessions") plus an organizational scope ("claimed by your organization"), so the operation itself is unambiguous. It does not differentiate from the sibling verfi_search_session, leaving an agent to guess why two session-listing tools exist. There is also mild internal tension: it says sessions are "claimed by your organization" while the status enum explicitly offers "unclaimed".

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

Usage Guidelines2/5

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

No when-to-use guidance is provided, and none of the eight siblings (notably verfi_search_session) are referenced as alternatives. The scope phrase hints at a tenant-wide listing, but nothing tells an agent when to pick this over searching or when to combine it with verfi_get_claim_status. Usage must be fully inferred.

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

verfi_search_sessionA

Look up a consent session by Verfi ID. Optionally verify email/phone hashes match. Returns session status, metadata, and PII verification results.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoSHA-256 hash of email to verify against session
phoneNoSHA-256 hash of phone to verify against session
verfiIDYesVerfi session ID (e.g. VF-a1b2c3d4) or full proof URL

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses that this is a read-by-ID operation returning status, metadata, and PII verification results, which is useful, but says nothing about what happens on a hash mismatch, whether errors are returned or flagged, or any auth/PII-access requirements.

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?

Three tight sentences with the primary action front-loaded, optional behavior second, and return summary last. No filler.

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?

For a simple 3-parameter read tool with no output schema, the description explains what comes back (status, metadata, PII verification results), which is the main gap it needed to fill. Missing only edge-case behavior on hash mismatch and access requirements.

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 coverage is 100%, so the schema already documents all three parameters including the SHA-256 hash semantics and the verfiID format. The description only adds that the hash parameters are optional, which is already conveyed by the required list; baseline 3 applies.

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

Purpose4/5

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

The description names a specific verb and resource ('Look up a consent session by Verfi ID') and states the secondary capability of hash verification, which separates it from list-oriented siblings like verfi_list_sessions. It stops short of explicitly naming which sibling to use instead, so it is clear but not fully differentiated.

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

Usage Guidelines3/5

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

'Optionally verify email/phone hashes match' implies the verification use case, but the description never states when to prefer this over verfi_get_proof, verfi_verify_consent, or verfi_list_sessions, nor any prerequisites. Usage is inferable rather than prescribed.

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

verfi_unclaim_sessionA

Release a previously claimed session. Retention drops to 30 days. Only the claiming tenant can unclaim.

ParametersJSON Schema
NameRequiredDescriptionDefault
verfiIDYesVerfi session ID to unclaim

TDQS

A4/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 does disclose a real side effect (retention drops to 30 days) plus a permission constraint. It does not cover reversibility (whether the session can be re-claimed), idempotency, or failure behavior on an unclaimed ID.

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?

Three short sentences with the action, the side effect, and the constraint in order of importance. No wasted text.

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?

For a one-parameter mutation tool with no annotations and no output schema, the description covers purpose, side effect, and authorization. The remaining gap is error/reclaim behavior, which is minor but would help an agent recover from failure.

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 coverage is 100% and the single verfiID parameter is already documented as the session to unclaim, so the description adds nothing beyond it. Baseline 3 applies since the schema does the work.

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

Purpose4/5

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

States a specific verb ('Release') and resource ('previously claimed session'), which clearly pairs it against the sibling verfi_claim_session. It doesn't name that sibling explicitly, but the 'previously claimed' qualifier makes the distinction 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?

Gives an actionable precondition ('previously claimed session') and an authorization gate ('Only the claiming tenant can unclaim'), which tells the agent when the call is valid. It stops short of stating when not to use it or naming alternatives such as verfi_update_expiration for retention changes.

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

verfi_update_expirationA

Update the expiration date of a claimed session. Must be 30+ days from now, max 5 years from claim date. Rate limited: 3 updates/month per session.

ParametersJSON Schema
NameRequiredDescriptionDefault
verfiIDYesVerfi session ID
expirationDateYesNew expiration date (ISO 8601)

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does deliver real behavioral context: the 30-day minimum, 5-year maximum from claim date, and a 3-updates-per-month rate limit. However, it omits who may perform the update (ownership/authorization), whether the change is reversible, and what happens on rejection.

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?

Three short sentences, front-loaded with purpose, then constraints, then rate limit. Every clause carries actionable information with no filler.

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?

For a two-parameter mutation with no output schema and no annotations, the description covers purpose, bounds, and rate limiting — most of what an agent needs before calling. The remaining gap is authorization/ownership requirements and error behavior.

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

Parameters4/5

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

Schema coverage is 100%, so both parameters are documented there, yet the description adds genuinely new meaning: the valid range for expirationDate (30+ days out, max 5 years from claim date), which is a validation rule not present in the schema. This is the kind of semantic detail that prevents a bad call.

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

Purpose4/5

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

States a specific verb and resource ('Update the expiration date of a claimed session') and scopes it to claimed sessions, which distinguishes it from claim/unclaim siblings. It does not explicitly name which sibling to use instead for other mutation needs, but the operation itself is unambiguous.

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

Usage Guidelines3/5

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

The word 'claimed' implies the precondition that the session must already be claimed, but no explicit when-to-use/when-not guidance or alternative tool routing is given. An agent must infer that verfi_claim_session is a prerequisite.

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.

  1. 9 tool updatesv0.2.0
    • First observedverfi_add_sdk
    • First observedverfi_claim_session
    • First observedverfi_get_claim_status
    • First observedverfi_get_proof
    • First observedverfi_list_sessions
    • First observedverfi_search_session
    • First observedverfi_unclaim_session
    • First observedverfi_update_expiration
    • First observedverfi_verify_consent

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have distinct purposes: search/lookup, proof retrieval, consent verification, claim lifecycle, listing, expiration update, and SDK setup. There is some conceptual overlap among verfi_search_session, verfi_get_proof, and verfi_verify_consent because all involve retrieving or evaluating session/consent data, but descriptions clarify their different outputs and use cases.

Naming Consistency5/5

All tools use a consistent verfi_ prefix followed by a snake_case verb_noun pattern. Names are predictable and easy to scan, with only natural variations like get_claim_status and add_sdk.

Tool Count5/5

Nine tools is well-scoped for a consent/session management server. Each tool covers a distinct operation in the claim and verification workflow, with no obvious filler tools.

Completeness4/5

The surface covers session lookup, consent verification, proof retrieval, claim/unclaim, listing, expiration updates, and SDK setup, which is strong lifecycle coverage. Minor gaps may exist around explicit consent revocation or session creation, but those appear to be handled outside the MCP server via the SDK or platform.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers