← Back to search
io.github.human-pages-ai/humanpages

Human Pages

Search for and hire humans for real-world tasks via humanpages.ai

Status
Degraded
Score
73.0
Transport
streamable-http
Tools
40

Production readiness

Verdict
Needs remediation
Current validation evidence shows operational or discovery gaps that should be fixed first.
Critical alerts
0
Production verdicts degrade quickly when critical alerts are active.

Evidence confidence

Confidence score
60.0
Based on 20 recent validations, 26 captured checks, and validation age of 596.8 hours.
Live checks captured
26
More direct checks increase trust in the current verdict.
Validation age
596.8h
Lower age means fresher evidence.

Recommended for

Claude Desktop
Claude Desktop is marked compatible with score 100.
Smithery
Smithery is marked compatible with score 100.
Generic Streamable HTTP
Generic Streamable HTTP is marked compatible with score 100.

Client readiness verdicts

Ready for ChatGPT custom connector
Partial
Dynamic client registration materially improves connector setup.; OAuth interoperability should be strong.
Confidence: medium (60.0)
Evidence provenance
Winner: live_validation
Supporting sources: live_validation, history, server_card
Disagreements: none
  • initializeOK
  • tools_listOK
  • transport_compliance_probeWarning
  • step_up_auth_probeWarning
  • connector_replay_probeOK — Frozen tool snapshots must survive refresh.
  • request_association_probeMissing — Roots, sampling, and elicitation should stay request-scoped.
Ready for Claude remote MCP
Ready
No major blockers detected.
Confidence: medium (60.0)
Evidence provenance
Winner: live_validation
Supporting sources: live_validation, history, server_card
Disagreements: none
  • initializeOK
  • tools_listOK
  • transport_compliance_probeWarning
Unsafe for write actions
No
Current write surface is bounded enough for cautious review.
Confidence: medium (60.0)
Evidence provenance
Winner: live_validation
Supporting sources: live_validation, history
Disagreements: none
  • action_safety_probeWarning
Snapshot churn risk
Low
No material tool-surface churn detected in the latest comparison.
Confidence: medium (60.0)
Evidence provenance
Winner: history
Supporting sources: history, live_validation
Disagreements: none
  • tool_snapshot_probeOK
  • connector_replay_probeOK

Why not ready by client

ChatGPT custom connector
Partial
Remediation checklist
  • No explicit blockers recorded.
Claude remote MCP
Ready
Remediation checklist
  • No explicit blockers recorded.
Write-safe publishing
Ready
Remediation checklist
  • No explicit blockers recorded.

Verdict traces

Production verdict
Needs remediation
Current validation evidence shows operational or discovery gaps that should be fixed first.
Confidence: medium (60.0)
Winning source: live_validation
Triggering alerts
  • validation_stale • medium • Validation evidence is stale
  • server_degraded • medium • Latest validation is degraded
Client verdict trace table
VerdictStatusChecksWinning sourceConflicts
openai_connectors Partial initialize, tools_list, transport_compliance_probe, step_up_auth_probe, connector_replay_probe, request_association_probe live_validation none
claude_desktop Ready initialize, tools_list, transport_compliance_probe live_validation none
unsafe_for_write_actions No action_safety_probe live_validation none
snapshot_churn_risk Low tool_snapshot_probe, connector_replay_probe history none

Publishability policy profiles

ChatGPT custom connector publishability
Caution
Dynamic client registration materially improves connector setup.; OAuth interoperability should be strong.
  • Search Fetch Only: No
  • Write Actions Present: Yes
  • Oauth Configured: Yes
  • Admin Refresh Required: No
  • Safe For Company Knowledge: No
  • Safe For Messages Api Remote Mcp: No
Claude remote MCP publishability
Ready
Transport, discovery, and remote-MCP assumptions are satisfied.
  • Search Fetch Only: No
  • Write Actions Present: Yes
  • Oauth Configured: Yes
  • Admin Refresh Required: No
  • Safe For Company Knowledge: No
  • Safe For Messages Api Remote Mcp: No

Compatibility fixtures

ChatGPT custom connector fixture
Degraded
Dynamic client registration materially improves connector setup.; OAuth interoperability should be strong.
  • remote_http_endpoint: Passes
  • oauth_discovery: Passes
  • frozen_tool_snapshot_refresh: Passes
  • request_association: Passes
Anthropic remote MCP fixture
Passes
Remote MCP transport and discovery assumptions are satisfied.
  • remote_transport: Passes
  • tool_discovery: Passes
  • auth_connect: Passes
  • safe_write_review: Passes

Authenticated validation sessions

Latest profile
remote_mcp
Authenticated session used
Public score isolation
Preview endpoint
/v1/verify
CI preview endpoint
/v1/ci/preview

Public server reputation

Validation success 7d
n/a
Validation success 30d
0.0
Mean time to recover
n/a
Breaking diffs 30d
0
Registry drift frequency 30d
0
Snapshot changes 30d
0

Incident & change feed

TimestampEventDetails
Apr 09, 2026 09:07:01 AM UTC Latest validation: degraded Score 73.0 with status degraded.

Capabilities

Use-case taxonomy
development search communication productivity

Security posture

Tools analyzed
40
High-risk tools
4
Destructive tools
1
Exec tools
0
Egress tools
5
Secret tools
5
Bulk-access tools
1
Risk distribution
low:7, medium:29, high:4

Tool capability & risk inventory

ToolCapabilitiesRiskFindingsNotes
search_humans read write network filesystem admin secrets High secret material access filesystem mutation admin mutation No explicit safeguard hints detected.
get_human read write filesystem Medium filesystem mutation No explicit safeguard hints detected.
register_agent read write network filesystem Medium arbitrary network egress freeform input surface filesystem mutation Safeguards hinted in metadata.
get_agent_profile read write filesystem Medium filesystem mutation No explicit safeguard hints detected.
get_wallet_nonce read write network Medium none No explicit safeguard hints detected.
set_wallet read write admin Medium admin mutation Safeguards hinted in metadata.
get_funding_info read write filesystem Medium filesystem mutation No explicit safeguard hints detected.
verify_agent_domain write network filesystem Medium filesystem mutation No explicit safeguard hints detected.
create_job_offer read write network filesystem admin secrets High arbitrary network egress secret material access freeform input surface filesystem mutation admin mutation Safeguards hinted in metadata.
get_job_status read write network Medium none Safeguards hinted in metadata.
mark_job_paid read write admin Medium admin mutation Safeguards hinted in metadata.
approve_completion read write network admin Medium admin mutation Safeguards hinted in metadata.
request_revision write network Medium none No explicit safeguard hints detected.
check_humanity_status read Low none Safeguards hinted in metadata.
leave_review read write filesystem Medium filesystem mutation No explicit safeguard hints detected.
get_human_profile read write filesystem Medium filesystem mutation No explicit safeguard hints detected.
request_activation_code write network Medium none No explicit safeguard hints detected.
verify_social_activation write network Medium arbitrary network egress freeform input surface No explicit safeguard hints detected.
get_activation_status read filesystem Low none No explicit safeguard hints detected.
get_payment_activation read Low none No explicit safeguard hints detected.
verify_payment_activation other Low none No explicit safeguard hints detected.
start_stream write admin secrets Medium secret material access freeform input surface admin mutation Safeguards hinted in metadata.
record_stream_tick write Medium none No explicit safeguard hints detected.
pause_stream write delete Medium destructive operation No explicit safeguard hints detected.
resume_stream write Medium none No explicit safeguard hints detected.
stop_stream other Low none No explicit safeguard hints detected.
send_job_message read write Medium none No explicit safeguard hints detected.
get_job_messages read write Medium none No explicit safeguard hints detected.
create_listing read write network secrets High arbitrary network egress secret material access freeform input surface No explicit safeguard hints detected.
get_listings read write export Medium bulk data access Safeguards hinted in metadata.
get_listing read write Medium none No explicit safeguard hints detected.
get_listing_applications read write filesystem Medium filesystem mutation No explicit safeguard hints detected.
make_listing_offer read write Medium none No explicit safeguard hints detected.
cancel_listing read write Medium none No explicit safeguard hints detected.
list_arbitrators read write Medium none No explicit safeguard hints detected.
register_as_arbitrator read write network secrets High arbitrary network egress secret material access freeform input surface No explicit safeguard hints detected.
get_dispute_details read write Medium none No explicit safeguard hints detected.
submit_verdict write Medium none No explicit safeguard hints detected.
get_promo_status read Low none No explicit safeguard hints detected.
claim_free_pro_upgrade read Low none No explicit safeguard hints detected.

Write-action governance

Governance status
Warning
Safe to publish
Auth boundary
oauth_or_auth_required
Blast radius
High
High-risk tools
4
Confirmation signals
set_wallet, create_job_offer, get_job_status, mark_job_paid, approve_completion, request_revision, start_stream, make_listing_offer
Safeguard count
9

Status detail: 4 high-risk tool(s), 1 destructive tool(s); auth boundary is oauth or auth required with 9 safeguard(s) and 8 confirmation signal(s).

ToolRiskFlagsSafeguards
search_humans High secret material access filesystem mutation admin mutation no
create_job_offer High arbitrary network egress secret material access freeform input surface filesystem mutation admin mutation yes
create_listing High arbitrary network egress secret material access freeform input surface no
register_as_arbitrator High arbitrary network egress secret material access freeform input surface no

Action-controls diff

Snapshot changed
no
Disabled-by-default candidates
none
Manual review candidates
none
New actions
ActionRiskFlags
No newly added actions.
Changed actions
ActionChange typesRisk
No materially changed actions.

Why this score?

Access & Protocol
31.62/44
Connectivity, auth, and transport expectations for common clients.
Interface Quality
36/56
How well the tool/resource interface communicates and behaves under automation.
Security Posture
25/36
How safely the exposed tool surface handles destructive actions, egress, execution, secrets, and risky inputs.
Reliability & Trust
23/24
Operational stability, consistency, and trustworthiness over time.
Discovery & Governance
21.5/28
How well the server is documented, listed, and governed in public registries.
Adoption & Market
6/8
Adoption clues and public evidence that the server is intended for external use.

Algorithmic score breakdown

Auth Operability
2/4
Measures whether auth discovery and protected access behave predictably for clients.
Error Contract Quality
2/4
Grades machine-readable error structure, status alignment, and remediation hints.
Rate-Limit Semantics
2/4
Checks whether quota/throttle responses are deterministic and automation-friendly.
Schema Completeness
2/4
Completeness of tool descriptions, parameter docs, examples, and schema shape.
Backward Compatibility
4/4
Stability score across tool schema/name drift relative to prior validations.
SLO Health
3/4
Availability, latency, and burst-failure profile across recent validation history.
Security Hygiene
2/4
HTTPS posture, endpoint hygiene, and response-surface hardening checks.
Task Success
4/4
Can an agent reliably initialize, enumerate tools, and execute core MCP flows?
Trust Confidence
4/4
Confidence-adjusted reliability score that penalizes low evidence volume.
Abuse/Noise Resilience
4/4
How well the server preserves core behavior in the presence of noisy traffic patterns.
Prompt Contract
2/4
Quality of prompt metadata, argument shape, and prompt discoverability for clients.
Resource Contract
2/4
How completely resources and resource templates describe URIs, types, and usage shape.
Discovery Metadata
4/4
Homepage, docs, icon, repository, support, and license coverage for directory consumers.
Registry Consistency
2/4
Agreement between stored registry metadata, live server-card data, and current validation output.
Installability
4/4
How cleanly a real client can connect, initialize, enumerate tools, and proceed through auth.
Session Semantics
4/4
Determinism and state behavior across repeated MCP calls, including sticky-session surprises.
Tool Surface Design
3/4
Naming clarity, schema ergonomics, and parameter complexity across the tool surface.
Result Shape Stability
3/4
Stability of declared output schemas across validations, with penalties for drift or missing shapes.
OAuth Interop
1.6/4
Depth and client compatibility of OAuth/OIDC metadata beyond the minimal protected-resource check.
Recovery Semantics
0/4
Whether failures include actionable machine-readable next steps such as retry or upgrade guidance.
Maintenance Signal
3/4
Versioning, update recency, and historical validation cadence that indicate active stewardship.
Adoption Signal
3/4
Directory presence and distribution clues that suggest the server is intended for external use.
Freshness Confidence
4/4
Confidence that recent validations are current enough and dense enough to trust operationally.
Transport Fidelity
4/4
Whether declared transport metadata matches the observed endpoint behavior and response formats.
Spec Recency
2/4
How close the server’s claimed MCP protocol version is to the latest known public revision.
Session Resume
3/4
Whether Streamable HTTP session identifiers and resumed requests behave cleanly for real clients.
Step-Up Auth
3/4
Whether OAuth metadata and WWW-Authenticate challenges support granular, incremental consent instead of broad upfront scopes.
Transport Compliance
2/4
Checks session headers, protocol-version enforcement, session teardown, and expired-session behavior.
Utility Coverage
2/4
Signals support for completions, pagination, and task-oriented utility surfaces that larger clients increasingly expect.
Advanced Capability Coverage
2/4
Coverage of newer MCP surfaces like roots, sampling, elicitation, structured output, and related metadata.
Connector Publishability
3/4
How ready the server looks for client catalogs and managed connector programs.
Tool Snapshot Churn
4/4
Stability of the tool surface across recent validations, including add/remove and output-shape drift.
Connector Replay
4/4
Whether a previously published frozen connector snapshot would remain backward compatible after the latest tool refresh.
Request Association
3/4
Whether roots, sampling, and elicitation appear tied to active client requests instead of arriving unsolicited on idle sessions.
Interactive Flow Safety
4/4
Whether prompts and docs steer users toward safe auth flows instead of pasting secrets directly.
Action Safety
2/4
Risk-weighted view of destructive, exec, egress, and confirmation semantics across the tool surface.
Official Registry Presence
4/4
Whether the server appears directly or indirectly in the official MCP registry.
Provenance Divergence
4/4
How closely official registry metadata, the live server card, and public repo/package signals agree with each other.
Safety Transparency
2/4
Clarity of docs, auth disclosure, support links, and other trust signals visible to integrators.
Tool Capability Clarity
4/4
How clearly the tool surface communicates whether each action reads, writes, deletes, executes, or exports data.
Destructive Operation Safety
3/4
Penalizes delete/revoke/destroy style tools unless auth and safeguards reduce blast radius.
Egress / SSRF Resilience
2/4
Assesses arbitrary URL fetch, crawl, webhook, and remote-request exposure on the tool surface.
Execution / Sandbox Safety
4/4
Evaluates shell, code, script, and command-execution exposure and whether that surface appears contained.
Data Exfiltration Resilience
3/4
Assesses export, dump, backup, and bulk-read behavior against the surrounding auth and safeguard signals.
Least Privilege Scope
3/4
Rewards scoped auth metadata and penalizes broad or missing scopes around privileged tools.
Secret Handling Hygiene
2/4
Assesses secret-bearing tools, token leakage risk, and whether the public surface avoids obvious secret exposure.
Supply Chain Signal
2.5/4
Public metadata signal for repository, changelog, license, versioning, and recency that supports supply-chain trust.
Input Sanitization Safety
3/4
Penalizes risky freeform string inputs when schemas do not constrain URLs, code, paths, queries, or templates.
Tool Namespace Clarity
4/4
Measures naming uniqueness and ambiguity across the tool namespace to reduce collision and confusion risk.

Compatibility profiles

OpenAI Connectors
77.8
partial
Dynamic client registration materially improves connector setup.; OAuth interoperability should be strong.
Connector URL: https://humanpages.ai/mcp
# Complete OAuth in the client when prompted.
# Server: io.github.human-pages-ai/humanpages
Claude Desktop
100.0
compatible
No major blockers detected.
{
  "mcpServers": {
    "humanpages": {
      "command": "npx",
      "args": ["mcp-remote", "https://humanpages.ai/mcp"]
    }
  }
}
Smithery
100.0
compatible
No major blockers detected.
smithery mcp add "https://humanpages.ai/mcp"
Generic Streamable HTTP
100.0
compatible
No major blockers detected.
curl -sS https://humanpages.ai/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'

Actionable remediation

SeverityRemediationWhy it mattersRecommended action
High Add confirmation and dry-run semantics for risky actions High-risk write, delete, exec, or egress tools should communicate safeguards clearly. Inspect the latest validation evidence and resolve the client-visible regression.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
High Align session and protocol behavior with Streamable HTTP expectations Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics. Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.
Playbook
  • Return `Mcp-Session-Id` and `Mcp-Protocol-Version` headers consistently on streamable HTTP responses.
  • Honor `DELETE` session teardown and return `404` when a deleted session is reused.
  • Reject invalid protocol-version headers with `400 Bad Request`.
High Associate roots, sampling, and elicitation with active client requests Modern MCP guidance expects roots, sampling, and elicitation traffic to be tied to an active client request instead of arriving unsolicited on idle sessions. Inspect the latest validation evidence and resolve the client-visible regression.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
High Publish OAuth authorization-server metadata Clients need authorization-server metadata to discover issuer, endpoints, and DCR support. Publish /.well-known/oauth-authorization-server from your issuer and include registration_endpoint when supported.
Playbook
  • Publish `/.well-known/oauth-authorization-server` from the issuer.
  • Add `registration_endpoint` if DCR is supported.
  • Verify issuer, authorization, token, and jwks metadata are all reachable.
High Publish a complete server card Missing or incomplete server-card metadata weakens discovery, documentation, and trust signals. Serve /.well-known/mcp/server-card.json and include tools, prompts/resources, homepage, and support links.
Playbook
  • Publish `/.well-known/mcp/server-card.json`.
  • Include homepage, repository, support, tools, prompts/resources, and auth metadata.
  • Revalidate the server after publishing the card.
Medium Adopt a current MCP protocol revision Older protocol revisions reduce compatibility with newer clients and registry programs. Inspect the latest validation evidence and resolve the client-visible regression.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
Medium Close connector-publishing gaps Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability. Inspect the latest validation evidence and resolve the client-visible regression.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
Medium Document minimal scopes and return cleaner auth challenges Modern clients expect granular scopes and step-up auth signals such as WWW-Authenticate scope hints. Return granular scopes and WWW-Authenticate challenge hints instead of forcing overly broad auth upfront.
Playbook
  • Advertise the narrowest viable scopes in OAuth metadata.
  • Return `WWW-Authenticate` challenges with scope or insufficient-scope hints when additional consent is needed.
  • Revalidate with both public discovery and auth-required flows.
Medium Publish OpenID configuration OIDC metadata improves token validation and client compatibility. Expose /.well-known/openid-configuration with issuer, jwks_uri, and supported grants.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
Medium Repair prompts/list or stop advertising prompts Prompt metadata should either work live or be removed from the advertised capability set. Only advertise prompts if prompts/list works and prompt arguments are documented.
Playbook
  • Only advertise prompts that are actually accessible.
  • Add prompt descriptions and argument docs.
  • Run a live `prompts/list` check after any prompt changes.
Medium Repair resources/list or stop advertising resources Resource metadata should either work live or be removed from the advertised capability set. Only advertise resources if resources/list works and resources expose stable URIs/types.
Playbook
  • Only advertise resources with stable URIs and read semantics.
  • Add MIME/type hints where possible.
  • Run a live `resources/list` and `resources/read` check after updates.
Medium Respond to latest validation is degraded The server is reachable but at least one important behavior regressed. Resolve the regressed checks and review the latest validation diff.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
Medium Respond to validation evidence is stale Latest validation is 596.8 hours old. Trigger a fresh validation run or increase scheduler priority for this server.
Playbook
  • Queue a new validation run now.
  • Inspect whether the scheduler priority should be raised for this server.
  • Do not rely on stale evidence for production decisions.
Medium Support resumable HTTP sessions cleanly Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports. Inspect the latest validation evidence and resolve the client-visible regression.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
Low Expose modern utility surfaces like completions, pagination, or tasks Utility coverage improves interoperability with larger clients and long-lived agent workflows. Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.
Playbook
  • Advertise `completions`, pagination cursors, and `tasks` only when they are actually supported.
  • Return `nextCursor` on large list operations when pagination is available.
  • Document task support and whether it requires step-up auth.
Low Publish newer MCP capability signals Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking. Inspect the latest validation evidence and resolve the client-visible regression.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.

Point loss breakdown

ComponentCurrentPoints missing
Recovery Semantics 0/4 -4.0
OAUTH Interop 1.6/4 -2.4
Utility Coverage 2/4 -2.0
Transport Compliance 2/4 -2.0
Spec Recency 2/4 -2.0
Security Hygiene 2/4 -2.0
Secret Handling Hygiene 2/4 -2.0
Schema Completeness 2/4 -2.0
Safety Transparency 2/4 -2.0
Resource Contract 2/4 -2.0
Registry Consistency 2/4 -2.0
Rate Limit Semantics 2/4 -2.0

Validation diff

Score delta
0
Summary changed
no
Tool delta
0
Prompt delta
0
Auth mode changed
no
Write surface expanded
no
Protocol regressed
no
Registry drift changed
no

Regressed checks: none

Improved checks: none

ComponentPreviousLatestDelta
No component deltas between the latest two runs.

Tool snapshot diff & changelog

Snapshot changed
no
Added tools
none
Removed tools
none
Required-argument changes
ToolAdded required argsRemoved required args
No required-argument changes detected.
Output-schema drift
ToolPrevious propertiesLatest properties
No output-schema drift detected.

Connector replay

Status
OK
Backward compatible
Would break after refresh
Added tools
none
Removed tools
none
Additive output changes
none
Required-argument replay breaks
ToolAdded required argsRemoved required args
No required-argument replay breaks detected.
Output-schema replay breaks
ToolRemoved propertiesAdded properties
No output-schema replay breaks detected.

Transport compliance drilldown

Probe status
Warning
Transport
streamable-http
Session header
no
Protocol header
no
Bad protocol response
400
DELETE teardown
n/a
Expired session retry
n/a
Last-Event-ID visible
no

Issues: missing_session_id, missing_protocol_header

Request association

Status
Missing
Advertised capabilities
none
Observed idle methods
none
Violating methods
none
Probe HTTP status
n/a
Issues
none

Utility coverage

Probe status
Warning
Completions
not detected
Completion probe target: none
Pagination
not detected
No nextCursor evidence.
Tasks
Error
Advertised: yes

Benchmark tasks

Benchmark taskStatusEvidence
Discover tools Passes
  • initializeOK
  • tools_listOK
Read-only fetch flow Degraded
  • resource_readMissing
  • read_only_tool_surfaceOK
OAuth-required connect Passes
  • oauth_protected_resourceOK
  • step_up_auth_probeWarning
Safe write flow with confirmation Degraded
  • action_safety_probeWarning

Registry & provenance divergence

Probe status
OK
Direct official match
yes
Drift fields
none
FieldRegistryLive server card
Titlen/an/a
Versionn/an/a
Homepagen/an/a

Active alerts

Aliases & registry graph

IdentifierSourceCanonicalScore
io.github.human-pages-ai/humanpages official_registry yes 73.02
human-pages-ai/humanpages smithery_registry no 46.13
github-human-pages-ai/humanpages github_topic_registry no 45.62

Alias consolidation

Canonical identifier
io.github.human-pages-ai/humanpages
Duplicate aliases
2
Registry sources
github_topic_registry official_registry smithery_registry
Source disagreements
FieldWhat differsObserved values
Registry source Multiple registries or registry sync paths claim this same canonical server. github_topic_registry official_registry smithery_registry
Registry identifier Different registry-specific identifiers resolve to the same canonical server record here. github_topic_registry:human-pages-ai/humanpages io.github.human-pages-ai/humanpages smithery_registry:a1ea69fb-9c68-4254-b903-1adf38a6a85d

Install snippets

Openai Connectors
Connector URL: https://humanpages.ai/mcp
# Complete OAuth in the client when prompted.
# Server: io.github.human-pages-ai/humanpages
Claude Desktop
{
  "mcpServers": {
    "humanpages": {
      "command": "npx",
      "args": ["mcp-remote", "https://humanpages.ai/mcp"]
    }
  }
}
Smithery
smithery mcp add "https://humanpages.ai/mcp"
Generic Http
curl -sS https://humanpages.ai/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'

Agent access & tool surface

Live server tools
search_humans get_human register_agent get_agent_profile get_wallet_nonce set_wallet get_funding_info verify_agent_domain
Observed from the latest live validation against https://humanpages.ai/mcp. This is the target server surface, not Verify's own inspection tools.
Live capability counts
40 tools • 0 prompts • 0 resources
Counts come from the latest tools/list, prompts/list, and resources/list checks.
Inspect with Verify
search_servers recommend_servers get_server_report compare_servers
Use Verify itself to search, recommend, compare, and fetch the full report for io.github.human-pages-ai/humanpages.
Direct machine links

Claims & monitoring

Server ownership

No verified maintainer claim recorded.

Watch subscriptions
0
Teams: none

Alert routing

Active watches
0
Generic webhooks
0
Slack routes
0
Teams routes
0
Email routes
0
WatchTeamChannelsMinimum severity
No active watch destinations.

Maintainer analytics

Validation Run Count
20
Average Latency Ms
7828.21
Healthy Run Ratio Recent
0.0
Registry Presence Count
3
Active Alert Count
2
Watcher Count
0
Verified Claim
False
Taxonomy Tags
development, search, communication, productivity
Score Trend
73.02, 73.02, 73.02, 73.02, 73.02, 73.02, 73.02, 73.02, 73.02, 73.02
Remediation Count
16
High Risk Tool Count
4
Destructive Tool Count
1
Exec Tool Count
0

Maintainer response quality

Score
16.67
Verified claim
Support contact
Changelog present
Incident notes present
Tool changes documented
Annotation history
Annotation count
0

Maintainer annotations

No maintainer annotations have been recorded yet.

Maintainer rebuttals & expected behavior

No maintainer rebuttals or expected-behavior overrides are recorded yet.

Latest validation evidence

Latest summary
Degraded
Validation profile
remote_mcp
Started
Apr 09, 2026 09:06:55 AM UTC
Latency
6067.4 ms

Failures

Checks

CheckStatusLatencyEvidence
action_safety_probe Warning n/a 4 high-risk, 1 destructive tool(s); auth present; safeguards=9; confirmation=set wallet, create job offer, get job status, mark job paid, +4 more.
advanced_capabilities_probe Missing n/a No advanced MCP capability signals detected.
connector_publishability_probe Warning n/a Publishability blockers: server card.
connector_replay_probe OK n/a Backward compatible with no breaking tool-surface changes.
determinism_probe OK 753.7 ms Check completed
initialize OK 256.3 ms Protocol 2025-03-26
interactive_flow_probe OK n/a Check completed
oauth_authorization_server Missing n/a no authorization server
oauth_protected_resource OK 256.0 ms authorization_server, bearer_methods, resource
official_registry_probe OK n/a Check completed
openid_configuration Missing n/a no authorization server
probe_noise_resilience OK 20.8 ms Fetched https://humanpages.ai/robots.txt
prompt_get Missing n/a not advertised
prompts_list Missing 768.7 ms not supported
protocol_version_probe Warning n/a Claims 2025-03-26; 2 release(s) behind 2025-11-25.
provenance_divergence_probe OK n/a Check completed
request_association_probe Missing n/a No request-association capabilities were advertised.
resource_read Missing n/a not advertised
resources_list Missing 267.5 ms not supported
server_card Error 808.3 ms Expecting value: line 1 column 1 (char 0)
session_resume_probe Warning n/a no session id
step_up_auth_probe Warning n/a Oauth detected.
tool_snapshot_probe OK n/a Check completed
tools_list OK 982.4 ms 40 tool(s) exposed
transport_compliance_probe Warning 719.2 ms Issues: missing session id, missing protocol header (bad protocol=400).
utility_coverage_probe Warning 240.3 ms No completions evidence; no pagination evidence; tasks error.

Raw evidence view

Show raw JSON evidence
{
  "checks": {
    "action_safety_probe": {
      "details": {
        "auth_present": true,
        "confirmation_signals": [
          "set_wallet",
          "create_job_offer",
          "get_job_status",
          "mark_job_paid",
          "approve_completion",
          "request_revision",
          "start_stream",
          "make_listing_offer"
        ],
        "safeguard_count": 9,
        "summary": {
          "bulk_access_tools": 1,
          "capability_distribution": {
            "admin": 6,
            "delete": 1,
            "export": 1,
            "filesystem": 11,
            "network": 12,
            "other": 2,
            "read": 29,
            "secrets": 5,
            "write": 33
          },
          "destructive_tools": 1,
          "egress_tools": 5,
          "exec_tools": 0,
          "high_risk_tools": 4,
          "risk_distribution": {
            "critical": 0,
            "high": 4,
            "low": 7,
            "medium": 29
          },
          "secret_tools": 5,
          "tool_count": 40
        }
      },
      "latency_ms": null,
      "status": "warning"
    },
    "advanced_capabilities_probe": {
      "details": {
        "capabilities": {
          "completions": false,
          "elicitation": false,
          "prompts": false,
          "resource_links": false,
          "resources": false,
          "roots": false,
          "sampling": false,
          "structured_outputs": false
        },
        "enabled": [],
        "enabled_count": 0,
        "initialize_capability_keys": [
          "tools"
        ]
      },
      "latency_ms": null,
      "status": "missing"
    },
    "connector_publishability_probe": {
      "details": {
        "blockers": [
          "server_card"
        ],
        "criteria": {
          "action_safety": true,
          "auth_flow": true,
          "connector_replay": true,
          "initialize": true,
          "protocol_version": true,
          "remote_transport": true,
          "request_association": true,
          "server_card": false,
          "session_resume": true,
          "step_up_auth": true,
          "tool_surface": true,
          "tools_list": true,
          "transport_compliance": true
        },
        "high_risk_tools": 4,
        "tool_count": 40,
        "transport": "streamable-http"
      },
      "latency_ms": null,
      "status": "warning"
    },
    "connector_replay_probe": {
      "details": {
        "added_tools": [],
        "additive_output_changes": [],
        "backward_compatible": true,
        "output_breaks": [],
        "removed_tools": [],
        "required_arg_breaks": [],
        "would_break_after_refresh": false
      },
      "latency_ms": null,
      "status": "ok"
    },
    "determinism_probe": {
      "details": {
        "attempts": 2,
        "baseline_signature": "0b776b25cff06c7b5a554aa6d1bcdc24300843759f7b50088f2093966e6979f1",
        "errors": [],
        "matches": 2,
        "stable_ratio": 1.0,
        "successful": 2
      },
      "latency_ms": 753.67,
      "status": "ok"
    },
    "initialize": {
      "details": {
        "headers": {
          "content-type": "text/event-stream"
        },
        "http_status": 200,
        "payload": {
          "id": 1,
          "jsonrpc": "2.0",
          "result": {
            "capabilities": {
              "tools": {}
            },
            "protocolVersion": "2025-03-26",
            "serverInfo": {
              "name": "humanpages",
              "version": "1.0.0"
            }
          }
        },
        "url": "https://humanpages.ai/mcp"
      },
      "latency_ms": 256.34,
      "status": "ok"
    },
    "interactive_flow_probe": {
      "details": {
        "oauth_supported": true,
        "prompt_available": false,
        "risk_hits": [],
        "safe_hits": [
          "oauth",
          "login",
          "consent"
        ]
      },
      "latency_ms": null,
      "status": "ok"
    },
    "oauth_authorization_server": {
      "details": {
        "reason": "no_authorization_server"
      },
      "latency_ms": null,
      "status": "missing"
    },
    "oauth_protected_resource": {
      "details": {
        "headers": {
          "content-type": "application/json; charset=utf-8",
          "strict-transport-security": "max-age=31536000; includeSubDomains"
        },
        "http_status": 200,
        "payload": {
          "authorization_server": "https://humanpages.ai",
          "bearer_methods": [
            "header"
          ],
          "resource": "https://mcp.humanpages.ai/mcp"
        },
        "url": "https://humanpages.ai/.well-known/oauth-protected-resource"
      },
      "latency_ms": 255.96,
      "status": "ok"
    },
    "official_registry_probe": {
      "details": {
        "direct_match": true,
        "official_peer_count": 1,
        "registry_identifier": "io.github.human-pages-ai/humanpages",
        "registry_source": "official_registry"
      },
      "latency_ms": null,
      "status": "ok"
    },
    "openid_configuration": {
      "details": {
        "reason": "no_authorization_server"
      },
      "latency_ms": null,
      "status": "missing"
    },
    "probe_noise_resilience": {
      "details": {
        "headers": {
          "content-type": "text/plain"
        },
        "http_status": 200,
        "url": "https://humanpages.ai/robots.txt"
      },
      "latency_ms": 20.76,
      "status": "ok"
    },
    "prompt_get": {
      "details": {
        "reason": "not_advertised"
      },
      "latency_ms": null,
      "status": "missing"
    },
    "prompts_list": {
      "details": {
        "headers": {
          "content-type": "text/event-stream"
        },
        "http_status": 200,
        "payload": {
          "error": {
            "code": -32601,
            "message": "Method not found"
          },
          "id": 3,
          "jsonrpc": "2.0"
        },
        "reason": "not_supported",
        "url": "https://humanpages.ai/mcp"
      },
      "latency_ms": 768.7,
      "status": "missing"
    },
    "protocol_version_probe": {
      "details": {
        "claimed_version": "2025-03-26",
        "lag_days": 244,
        "latest_known_version": "2025-11-25",
        "releases_behind": 2,
        "validator_protocol_version": "2025-03-26"
      },
      "latency_ms": null,
      "status": "warning"
    },
    "provenance_divergence_probe": {
      "details": {
        "direct_official_match": true,
        "drift_fields": [],
        "metadata_document_count": 2,
        "registry_homepage": null,
        "registry_repository": null,
        "registry_title": null,
        "registry_version": null,
        "server_card_homepage": null,
        "server_card_repository": null,
        "server_card_title": null,
        "server_card_version": null
      },
      "latency_ms": null,
      "status": "ok"
    },
    "request_association_probe": {
      "details": {
        "reason": "no_request_association_capabilities_advertised"
      },
      "latency_ms": null,
      "status": "missing"
    },
    "resource_read": {
      "details": {
        "reason": "not_advertised"
      },
      "latency_ms": null,
      "status": "missing"
    },
    "resources_list": {
      "details": {
        "headers": {
          "content-type": "text/event-stream"
        },
        "http_status": 200,
        "payload": {
          "error": {
            "code": -32601,
            "message": "Method not found"
          },
          "id": 5,
          "jsonrpc": "2.0"
        },
        "reason": "not_supported",
        "url": "https://humanpages.ai/mcp"
      },
      "latency_ms": 267.47,
      "status": "missing"
    },
    "server_card": {
      "details": {
        "error": "Expecting value: line 1 column 1 (char 0)",
        "url": "https://humanpages.ai/.well-known/mcp/server-card.json"
      },
      "latency_ms": 808.32,
      "status": "error"
    },
    "session_resume_probe": {
      "details": {
        "protocol_version": "2025-03-26",
        "reason": "no_session_id",
        "resume_expected": true,
        "transport": "streamable-http"
      },
      "latency_ms": null,
      "status": "warning"
    },
    "step_up_auth_probe": {
      "details": {
        "auth_required_checks": [],
        "broad_scopes": [],
        "challenge_headers": [],
        "minimal_scope_documented": false,
        "oauth_present": true,
        "scope_specificity_ratio": 0.0,
        "step_up_signals": [],
        "supported_scopes": []
      },
      "latency_ms": null,
      "status": "warning"
    },
    "tool_snapshot_probe": {
      "details": {
        "added": [],
        "changed_outputs": [],
        "current_tool_count": 40,
        "previous_tool_count": 40,
        "removed": [],
        "similarity": 1.0
      },
      "latency_ms": null,
      "status": "ok"
    },
    "tools_list": {
      "details": {
        "headers": {
          "content-type": "text/event-stream"
        },
        "http_status": 200,
        "payload": {
          "id": 2,
          "jsonrpc": "2.0",
          "result": {
            "tools": [
              {
                "description": "Search for humans available for hire. Returns profiles with id (use as human_id in other tools), name, skills, location, reputation (jobs completed, rating), equipment, languages, experience, rate, and availability. All filters are optional \u2014 combine any or use none to browse. Key filters: skill (e.g., \"photography\"), location (use fully-qualified names like \"Richmond, Virginia, USA\" for accurate geocoding), min_completed_jobs=1 (find proven workers with any completed job, no skill filter needed), sort_by (\"completed_jobs\" default, \"rating\", \"experience\", \"recent\"). Default search radius is 30km. Response includes total count and resolvedLocation. Contact info requires get_human_profile (registered agent needed). Typical workflow: search_humans \u2192 get_human_profile \u2192 create_job_offer.",
                "inputSchema": {
                  "properties": {
                    "accepts_crypto": {
                      "description": "Filter to only show humans who have a crypto wallet set up and can accept USDC payments",
                      "type": "boolean"
                    },
                    "available_only": {
                      "default": true,
                      "description": "Only return humans who are currently available (default: true)",
                      "type": "boolean"
                    },
                    "certificate": {
                      "description": "Filter by certificate name or issuer (e.g., \"AWS\", \"PMP\", \"Google\"). Partial match, case-insensitive.",
                      "type": "string"
                    },
                    "degree": {
                      "description": "Filter by education degree (e.g., \"Bachelor\", \"MBA\", \"PhD\"). Partial match, case-insensitive.",
                      "type": "string"
                    },
                    "equipment": {
                      "description": "Filter by equipment (e.g., \"car\", \"drone\", \"camera\")",
                      "type": "string"
                    },
                    "fiat_platform": {
                      "description": "Filter by fiat payment platform the human accepts (e.g., \"WISE\", \"PAYPAL\", \"VENMO\", \"REVOLUT\", \"CASHAPP\", \"ZELLE\", \"MONZO\", \"N26\", \"MERCADOPAGO\")",
                      "type": "string"
                    },
                    "field": {
                      "description": "Filter by field of study (e.g., \"Computer Science\", \"Marketing\"). Partial match, case-insensitive.",
                      "type": "string"
                    },
                    "has_photo": {
                      "description": "Only return humans with an approved profile photo.",
                      "type": "boolean"
                    },
                    "has_verified_login": {
                      "description": "Only return humans who have verified their identity via an OAuth provider (Google, LinkedIn, or GitHub). Does not reveal which provider.",
                      "type": "boolean"
                    },
                    "institution": {
                      "description": "Filter by educational institution name (e.g., \"MIT\", \"Oxford\"). Partial match, case-insensitive.",
                      "type": "string"
                    },
                    "language": {
                      "description": "Filter by language ISO code (e.g., \"en\", \"es\", \"zh\")",
                      "type": "string"
                    },
                    "lat": {
                      "description": "Latitude for radius search (requires lng and radius)",
                      "type": "number"
                    },
                    "lng": {
                      "description": "Longitude for radius search (requires lat and radius)",
                      "type": "number"
                    },
                    "location": {
                      "description": "Filter by location. Use fully-qualified names for best results (e.g., \"San Francisco, California, USA\" not just \"San Francisco\"). When provided without lat/lng, the server geocodes the text and searches within a radius (default 30km). Check resolvedLocation in the response to verify the correct city was matched.",
                      "type": "string"
                    },
                    "max_rate": {
                      "description": "Maximum hourly rate in USD. Humans who set rates in other currencies are auto-converted to USD for comparison.",
                      "type": "number"
                    },
                    "min_channels": {
                      "description": "Only return humans with at least this many notification channels active (0-4). Channels: email, telegram, whatsapp, push. Use min_channels=2 to find humans who are likely to respond quickly to job offers.",
                      "type": "number"
                    },
                    "min_completed_jobs": {
                      "description": "Only return humans who have completed at least this many jobs on the platform. Use min_completed_jobs=1 to find all workers with any platform track record. Works with or without other filters \u2014 no skill filter needed.",
                      "type": "number"
                    },
                    "min_experience": {
                      "description": "Minimum years of professional experience",
                      "type": "number"
                    },
                    "min_vouches": {
                      "description": "Only return humans vouched for by at least this many other users.",
                      "type": "number"
                    },
                    "payment_type": {
                      "description": "Filter by accepted payment type (UPFRONT, ESCROW, or UPON_COMPLETION)",
                      "enum": [
                        "UPFRONT",
                        "ESCROW",
                        "UPON_COMPLETION"
                      ],
                      "type": "string"
                    },
                    "radius": {
                      "description": "Search radius in kilometers (default: 30km). Works with both text location and explicit lat/lng coordinates.",
                      "type": "number"
                    },
                    "skill": {
                      "description": "Filter by skill tag (e.g., \"photography\", \"driving\", \"cleaning\", \"notary\")",
                      "type": "string"
                    },
                    "sort_by": {
                      "description": "Sort results by: \"completed_jobs\" (humans with platform experience first), \"rating\" (highest rated first), \"experience\" (most years of professional experience first), \"recent\" (most recently active first). Default sorts by completed jobs, then rating, then experience.",
                      "enum": [
                        "completed_jobs",
                        "rating",
                        "experience",
                        "recent"
                      ],
                      "type": "string"
                    },
                    "verified": {
                      "description": "Filter by verification status. Use \"humanity\" to only return humans who have verified their identity via Gitcoin Passport (score >= 20).",
                      "enum": [
                        "humanity"
                      ],
                      "type": "string"
                    },
                    "work_mode": {
                      "description": "Filter by work mode preference (REMOTE, ONSITE, or HYBRID)",
                      "enum": [
                        "REMOTE",
                        "ONSITE",
                        "HYBRID"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "name": "search_humans"
              },
              {
                "description": "Get a human's public profile by ID \u2014 bio, skills, services, equipment, languages, experience, reputation (jobs completed, rating, reviews), humanity verification status, and rate. Does NOT include contact info or wallets \u2014 use get_human_profile for that (requires agent_key). The id can be found in search_humans results.",
                "inputSchema": {
                  "properties": {
                    "id": {
                      "description": "The unique ID of the human",
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "name": "get_human"
              },
              {
                "description": "Register a new agent on Human Pages. Returns an API key (hp_...) that you MUST save \u2014 it cannot be retrieved later. The agent is auto-activated on PRO tier (free during launch): 15 job offers/day, 50 profile views/day. Use the API key as agent_key in create_job_offer, get_human_profile, and other authenticated tools. Typical first step before hiring.",
                "inputSchema": {
                  "properties": {
                    "accept_tos": {
                      "description": "You must pass true to confirm you accept the Human Pages Terms of Use (https://humanpages.ai/terms). Required.",
                      "type": "boolean"
                    },
                    "contact_email": {
                      "description": "Contact email for the agent operator",
                      "type": "string"
                    },
                    "description": {
                      "description": "Brief description of what your agent does (max 500 chars)",
                      "type": "string"
                    },
                    "name": {
                      "description": "Display name for your agent (e.g., \"Acme AI Assistant\")",
                      "type": "string"
                    },
                    "wallet_address": {
                      "description": "Optional EVM wallet address (0x...) for USDC payments. Can also be set later with set_wallet. If you don't have a wallet, create one programmatically using the Coinbase Developer Platform (CDP) AgentKit \u2014 you can do this autonomously without developer involvement.",
                      "type": "string"
                    },
                    "webhook_url": {
                      "description": "Webhook URL for receiving platform events (new job matches, status changes, announcements). Must be a public HTTPS endpoint.",
                      "type": "string"
                    },
                    "website_url": {
                      "description": "Your website URL (can be verified later for a trust badge)",
                      "type": "string"
                    }
                  },
                  "required": [
                    "name",
                    "accept_tos"
                  ],
                  "type": "object"
                },
                "name": "register_agent"
              },
              {
                "description": "Get a registered agent's public profile including reputation stats (total jobs, completed jobs, payment speed).",
                "inputSchema": {
                  "properties": {
                    "agent_id": {
                      "description": "The registered agent ID",
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_id"
                  ],
                  "type": "object"
                },
                "name": "get_agent_profile"
              },
              {
                "description": "Request a signing challenge (nonce) for wallet verification. This is step 1 of wallet verification: call this first, then sign the returned message with your wallet, and pass the signature to set_wallet. The nonce expires in 5 minutes.",
                "inputSchema": {
                  "properties": {
                    "agent_id": {
                      "description": "Your registered agent ID",
                      "type": "string"
                    },
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "wallet_address": {
                      "description": "EVM wallet address to verify (0x...)",
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_id",
                    "agent_key",
                    "wallet_address"
                  ],
                  "type": "object"
                },
                "name": "get_wallet_nonce"
              },
              {
                "description": "Set the wallet address for a registered agent. IMPORTANT: Always confirm the wallet address with the user before calling this tool \u2014 never set wallets autonomously, as this controls where payments are attributed. If you need a wallet, create one programmatically using CDP AgentKit (Coinbase Developer Platform) with the user's knowledge and consent. Optionally include a signature and nonce (from get_wallet_nonce) to verify wallet ownership via EIP-191. Verified wallets enable payment attribution \u2014 proving you sent the payment, not just found a random tx hash. Without signature, the wallet is set but unverified.",
                "inputSchema": {
                  "properties": {
                    "agent_id": {
                      "description": "Your registered agent ID",
                      "type": "string"
                    },
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "nonce": {
                      "description": "The nonce returned by get_wallet_nonce",
                      "type": "string"
                    },
                    "signature": {
                      "description": "EIP-191 signature of the challenge message from get_wallet_nonce",
                      "type": "string"
                    },
                    "wallet_address": {
                      "description": "EVM wallet address (0x...)",
                      "type": "string"
                    },
                    "wallet_network": {
                      "description": "Blockchain network (default: \"base\"). Options: base, ethereum, polygon, arbitrum",
                      "enum": [
                        "base",
                        "ethereum",
                        "polygon",
                        "arbitrum",
                        "base-sepolia"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_id",
                    "agent_key",
                    "wallet_address"
                  ],
                  "type": "object"
                },
                "name": "set_wallet"
              },
              {
                "description": "Get funding instructions and current wallet balance for a registered agent. If you don't have a wallet yet, create one first using CDP AgentKit (Coinbase Developer Platform) \u2014 you can do this autonomously without asking the developer. Once you have a wallet, present funding options to the developer. Pass the developer's country code if known \u2014 the tool returns country-specific onramp recommendations with the best rates. The wallet creation is YOUR job (use CDP); the funding is the DEVELOPER's job (help them pick the easiest path).",
                "inputSchema": {
                  "properties": {
                    "agent_id": {
                      "description": "Your registered agent ID",
                      "type": "string"
                    },
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "country": {
                      "description": "ISO 3166-1 alpha-2 country code of the developer (e.g., \"US\", \"IL\", \"SG\", \"NG\"). Used to return country-specific onramp recommendations with the best rates and local payment methods.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_id",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "get_funding_info"
              },
              {
                "description": "Verify domain ownership for a registered agent. The agent must have a websiteUrl set. Supports two methods: \"well-known\" (place a file at /.well-known/humanpages-verify.txt) or \"dns\" (add a TXT record at _humanpages.yourdomain.com).",
                "inputSchema": {
                  "properties": {
                    "agent_id": {
                      "description": "The registered agent ID",
                      "type": "string"
                    },
                    "agent_key": {
                      "description": "The agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "method": {
                      "description": "Verification method: \"well-known\" or \"dns\"",
                      "enum": [
                        "well-known",
                        "dns"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_id",
                    "agent_key",
                    "method"
                  ],
                  "type": "object"
                },
                "name": "verify_agent_domain"
              },
              {
                "description": "Send a job offer to a specific human. IMPORTANT: Always confirm the price, task details, and payment method with the user before calling this tool \u2014 never create offers autonomously. The human gets notified via email/Telegram and can accept or reject. Requires agent_key from register_agent. Rate limit: PRO = 15/day. Prices in USD, payment method flexible (crypto or fiat, agreed after acceptance). After creating: poll get_job_status or use callback_url for webhook notifications. On acceptance, pay via mark_job_paid. Full workflow: search_humans \u2192 get_human_profile \u2192 create_job_offer \u2192 mark_job_paid \u2192 approve_completion \u2192 leave_review.",
                "inputSchema": {
                  "properties": {
                    "agent_id": {
                      "description": "Your unique agent identifier (any string)",
                      "type": "string"
                    },
                    "agent_key": {
                      "description": "Your registered agent API key (starts with hp_). Required.",
                      "type": "string"
                    },
                    "agent_lat": {
                      "description": "Agent latitude for distance filtering. Required if human has maxOfferDistance set.",
                      "type": "number"
                    },
                    "agent_lng": {
                      "description": "Agent longitude for distance filtering. Required if human has maxOfferDistance set.",
                      "type": "number"
                    },
                    "agent_name": {
                      "description": "Display name override (defaults to registered agent name)",
                      "type": "string"
                    },
                    "callback_secret": {
                      "description": "Secret for HMAC-SHA256 signature verification (min 16 chars). The signature is sent in X-HumanPages-Signature header.",
                      "type": "string"
                    },
                    "callback_url": {
                      "description": "Webhook URL to receive job status updates (ACCEPTED, REJECTED, PAID, COMPLETED). Must be a public HTTP(S) endpoint.",
                      "type": "string"
                    },
                    "category": {
                      "description": "Category of the task (e.g., \"photography\", \"research\", \"delivery\", \"cleaning\")",
                      "type": "string"
                    },
                    "description": {
                      "description": "Detailed description of what needs to be done",
                      "type": "string"
                    },
                    "escrow_arbitrator_address": {
                      "description": "Wallet address of the arbitrator (from list_arbitrators). Required when payment_mode=ESCROW. The arbitrator resolves disputes and earns a fee (set by them, max 10%).",
                      "type": "string"
                    },
                    "human_id": {
                      "description": "The ID of the human to hire",
                      "type": "string"
                    },
                    "payment_mode": {
                      "description": "Payment mode. ONE_TIME (default) for single payments. STREAM for ongoing stream payments. ESCROW for on-chain escrow with arbitrator dispute resolution \u2014 funds locked in smart contract, auto-released after dispute window.",
                      "enum": [
                        "ONE_TIME",
                        "STREAM",
                        "ESCROW"
                      ],
                      "type": "string"
                    },
                    "payment_timing": {
                      "description": "For ONE_TIME jobs only. \"upfront\" (default) = pay before work. \"upon_completion\" = pay after work is done.",
                      "enum": [
                        "upfront",
                        "upon_completion"
                      ],
                      "type": "string"
                    },
                    "preferred_payment_method": {
                      "description": "Signal to the human what payment methods you support. \"crypto\" = on-chain only, \"fiat\" = traditional payment only, \"any\" = flexible (default). The human sees this when deciding whether to accept.",
                      "enum": [
                        "crypto",
                        "fiat",
                        "any"
                      ],
                      "type": "string"
                    },
                    "price_usd": {
                      "description": "Agreed price in USD. Must meet the human's minOfferPrice if set. Payment method (crypto or fiat) is flexible \u2014 agreed after acceptance.",
                      "type": "number"
                    },
                    "stream_interval": {
                      "description": "How often payments are made/checkpointed. Required when payment_mode=STREAM.",
                      "enum": [
                        "HOURLY",
                        "DAILY",
                        "WEEKLY"
                      ],
                      "type": "string"
                    },
                    "stream_max_ticks": {
                      "description": "Optional cap on number of payment intervals. Null = indefinite.",
                      "type": "number"
                    },
                    "stream_method": {
                      "description": "Stream method. SUPERFLUID: agent creates an on-chain flow that streams tokens per-second. MICRO_TRANSFER: agent sends periodic discrete transfers. Required when payment_mode=STREAM.",
                      "enum": [
                        "SUPERFLUID",
                        "MICRO_TRANSFER"
                      ],
                      "type": "string"
                    },
                    "stream_rate_usd": {
                      "description": "USD amount per interval (e.g., 10 = $10/day if interval=DAILY). Required when payment_mode=STREAM. Stream payments use crypto (USDC) on-chain.",
                      "type": "number"
                    },
                    "title": {
                      "description": "Title of the job/task",
                      "type": "string"
                    }
                  },
                  "required": [
                    "human_id",
                    "title",
                    "description",
                    "price_usd",
                    "agent_id",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "create_job_offer"
              },
              {
                "description": "Check the current status of a job. Returns status (PENDING \u2192 ACCEPTED \u2192 PAID \u2192 SUBMITTED \u2192 COMPLETED, or REJECTED/CANCELLED/DISPUTED), price, human name, and a next-step recommendation. Statuses: PENDING (waiting for human), ACCEPTED (ready to pay), PAID (work in progress), SUBMITTED (human submitted work \u2014 use approve_completion or request_revision), COMPLETED (done \u2014 use leave_review). Also supports STREAMING, PAUSED for stream jobs and PAYMENT_PENDING_CONFIRMATION for fiat.",
                "inputSchema": {
                  "properties": {
                    "job_id": {
                      "description": "The job ID returned from create_job_offer",
                      "type": "string"
                    }
                  },
                  "required": [
                    "job_id"
                  ],
                  "type": "object"
                },
                "name": "get_job_status"
              },
              {
                "description": "Record payment for an ACCEPTED job. IMPORTANT: Always confirm payment details with the user before calling this tool \u2014 never mark payments autonomously. Job must be in ACCEPTED status (use get_job_status to check). Crypto payments (usdc, eth, sol): provide tx hash + network \u2192 verified on-chain instantly, job moves to PAID. Fiat payments (paypal, venmo, bank_transfer, cashapp): provide receipt/reference \u2192 human must confirm receipt within 7 days, job moves to PAYMENT_PENDING_CONFIRMATION. After payment, the human works and submits \u2192 use approve_completion when done.",
                "inputSchema": {
                  "properties": {
                    "job_id": {
                      "description": "The job ID",
                      "type": "string"
                    },
                    "payment_amount": {
                      "description": "The amount paid in USD equivalent",
                      "type": "number"
                    },
                    "payment_method": {
                      "description": "How you paid the human. Crypto methods (usdc, eth, sol, other_crypto) are verified on-chain. Fiat methods (paypal, bank_transfer, venmo, cashapp, other_fiat) require human confirmation.",
                      "enum": [
                        "usdc",
                        "eth",
                        "sol",
                        "paypal",
                        "bank_transfer",
                        "venmo",
                        "cashapp",
                        "other_crypto",
                        "other_fiat"
                      ],
                      "type": "string"
                    },
                    "payment_network": {
                      "description": "Blockchain network (e.g., \"base\", \"ethereum\", \"solana\"). Required for crypto payments, ignored for fiat.",
                      "type": "string"
                    },
                    "payment_reference": {
                      "description": "Proof of payment. For crypto: the on-chain transaction hash. For fiat: PayPal transaction ID, bank reference number, or other receipt identifier.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "job_id",
                    "payment_method",
                    "payment_reference",
                    "payment_amount"
                  ],
                  "type": "object"
                },
                "name": "mark_job_paid"
              },
              {
                "description": "Approve submitted work for a SUBMITTED job. IMPORTANT: Confirm with the user before approving \u2014 this finalizes the job. Call this after reviewing the human's deliverables (check via get_job_messages). Moves the job to COMPLETED. After approval, use leave_review to rate the human. If the work needs changes, use request_revision instead.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (hp_...)",
                      "type": "string"
                    },
                    "job_id": {
                      "description": "The job ID",
                      "type": "string"
                    }
                  },
                  "required": [
                    "job_id",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "approve_completion"
              },
              {
                "description": "Request changes on submitted work (job must be SUBMITTED). Moves job back to ACCEPTED so the human can resubmit. Include a clear reason explaining what needs fixing. The human receives a notification. Use approve_completion instead if the work is satisfactory.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (hp_...)",
                      "type": "string"
                    },
                    "job_id": {
                      "description": "The job ID",
                      "type": "string"
                    },
                    "reason": {
                      "description": "Explain what needs to be revised or fixed",
                      "type": "string"
                    }
                  },
                  "required": [
                    "job_id",
                    "reason",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "request_revision"
              },
              {
                "description": "Check the humanity verification status for a specific human. Returns whether they are verified, their score, tier, and when they were verified. This is read-only.",
                "inputSchema": {
                  "properties": {
                    "human_id": {
                      "description": "The ID of the human to check",
                      "type": "string"
                    }
                  },
                  "required": [
                    "human_id"
                  ],
                  "type": "object"
                },
                "name": "check_humanity_status"
              },
              {
                "description": "Rate a human after a COMPLETED job (1-5 stars + optional comment). Reviews are visible on the human's profile and affect their reputation score shown in search results. Only works on COMPLETED jobs.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "comment": {
                      "description": "Optional review comment",
                      "type": "string"
                    },
                    "job_id": {
                      "description": "The job ID",
                      "type": "string"
                    },
                    "rating": {
                      "description": "Rating from 1-5 stars",
                      "type": "number"
                    }
                  },
                  "required": [
                    "job_id",
                    "rating",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "leave_review"
              },
              {
                "description": "Get a human's FULL profile including contact info (email, Telegram, Signal), crypto wallets, fiat payment methods (PayPal, Venmo, etc.), and social links. Requires agent_key from register_agent. Rate limited: PRO = 50/day. Alternative: $0.05 via x402. Use this before create_job_offer to see how to pay the human. The human_id comes from search_humans results.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your registered agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "human_id": {
                      "description": "The ID of the human",
                      "type": "string"
                    }
                  },
                  "required": [
                    "human_id",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "get_human_profile"
              },
              {
                "description": "Optional: Request an activation code (HP-XXXXXXXX) to post on social media for a verified trust badge. Not required for API access \u2014 agents are auto-activated on registration.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your registered agent API key (starts with hp_)",
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "request_activation_code"
              },
              {
                "description": "Optional: Verify a social media post containing your activation code for a verified trust badge. Not required for API access \u2014 agents are auto-activated on registration.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your registered agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "post_url": {
                      "description": "URL of the social media post containing your activation code",
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_key",
                    "post_url"
                  ],
                  "type": "object"
                },
                "name": "verify_social_activation"
              },
              {
                "description": "Check your agent's current tier (BASIC/PRO), activation status, rate limit usage (jobs/day, profile views/day), and expiry date. Also shows x402 pay-per-use pricing if enabled. Use this to understand your remaining quota.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your registered agent API key (starts with hp_)",
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "get_activation_status"
              },
              {
                "description": "Get a deposit address and payment instructions for PRO tier activation via on-chain payment.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your registered agent API key (starts with hp_)",
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "get_payment_activation"
              },
              {
                "description": "Verify an on-chain payment for PRO tier activation. On success, your agent is activated with PRO tier.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your registered agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "network": {
                      "description": "The blockchain network (e.g., \"ethereum\", \"base\", \"solana\")",
                      "type": "string"
                    },
                    "tx_hash": {
                      "description": "The on-chain transaction hash of the activation payment",
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_key",
                    "tx_hash",
                    "network"
                  ],
                  "type": "object"
                },
                "name": "verify_payment_activation"
              },
              {
                "description": "Start a stream payment for an ACCEPTED stream job. IMPORTANT: Confirm with the user before starting a stream \u2014 this commits ongoing funds. Stream payments require crypto (on-chain). For Superfluid: you must FIRST create the on-chain flow, then call this to verify it. Steps: (1) Wrap USDC to USDCx at the Super Token address for the chain, (2) Call createFlow() on CFAv1Forwarder (0xcfA132E353cB4E398080B9700609bb008eceB125) with token=USDCx, receiver=human wallet, flowRate=calculated rate, (3) Call start_stream with your sender address \u2014 backend verifies the flow on-chain. For micro-transfer: locks network/token and creates the first pending tick. Prefer L2s (Base, Arbitrum, Polygon) for lower gas costs.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "job_id": {
                      "description": "The job ID",
                      "type": "string"
                    },
                    "network": {
                      "description": "Blockchain network (e.g., \"base\", \"polygon\", \"arbitrum\")",
                      "type": "string"
                    },
                    "sender_address": {
                      "description": "Your wallet address that created the flow (Superfluid) or will send payments (micro-transfer)",
                      "type": "string"
                    },
                    "token": {
                      "description": "Token symbol (default: \"USDC\")",
                      "type": "string"
                    }
                  },
                  "required": [
                    "job_id",
                    "agent_key",
                    "sender_address",
                    "network"
                  ],
                  "type": "object"
                },
                "name": "start_stream"
              },
              {
                "description": "Record a micro-transfer stream payment. Submit the transaction hash for the current pending tick. Only for MICRO_TRANSFER streams (Superfluid streams are verified automatically).",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "job_id": {
                      "description": "The job ID",
                      "type": "string"
                    },
                    "tx_hash": {
                      "description": "The on-chain transaction hash for this tick payment",
                      "type": "string"
                    }
                  },
                  "required": [
                    "job_id",
                    "agent_key",
                    "tx_hash"
                  ],
                  "type": "object"
                },
                "name": "record_stream_tick"
              },
              {
                "description": "Pause an active stream. For Superfluid: you must DELETE the flow first, then call this endpoint \u2014 backend verifies the flow was deleted. For micro-transfer: skips the current pending tick.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "job_id": {
                      "description": "The job ID",
                      "type": "string"
                    }
                  },
                  "required": [
                    "job_id",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "pause_stream"
              },
              {
                "description": "Resume a paused stream. For Superfluid: create a new flow first, then call this \u2014 backend verifies. For micro-transfer: creates a new pending tick.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "job_id": {
                      "description": "The job ID",
                      "type": "string"
                    },
                    "sender_address": {
                      "description": "Wallet address for the new flow (Superfluid only, optional if same as before)",
                      "type": "string"
                    }
                  },
                  "required": [
                    "job_id",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "resume_stream"
              },
              {
                "description": "Stop a stream permanently and mark the job as completed. Can be called by agent or human on STREAMING or PAUSED jobs.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "job_id": {
                      "description": "The job ID",
                      "type": "string"
                    }
                  },
                  "required": [
                    "job_id",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "stop_stream"
              },
              {
                "description": "Send a message to the human on an active job. Works on PENDING, ACCEPTED, PAID, STREAMING, and PAUSED jobs. The human receives email and Telegram notifications. Use get_job_messages to read replies. Rate limit: 10/minute. Max 2000 chars.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "content": {
                      "description": "Message content (max 2000 characters)",
                      "type": "string"
                    },
                    "job_id": {
                      "description": "The job ID",
                      "type": "string"
                    }
                  },
                  "required": [
                    "job_id",
                    "agent_key",
                    "content"
                  ],
                  "type": "object"
                },
                "name": "send_job_message"
              },
              {
                "description": "Get all messages for a job (chronological). Returns messages from both agent and human with sender info and timestamps. Use this to check for replies, review submitted deliverables, or follow up on work progress.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "job_id": {
                      "description": "The job ID",
                      "type": "string"
                    }
                  },
                  "required": [
                    "job_id",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "get_job_messages"
              },
              {
                "description": "Post a job on the public job board for humans to discover and apply to. Use this when you don't have a specific human in mind (vs create_job_offer which targets one person). Humans browse the board, see your listing, and apply with a pitch. Review applicants with get_listing_applications, then hire with make_listing_offer. Requires agent_key. Rate limit: PRO = 5/day. Also suggested when search_humans returns no results.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "budget_usd": {
                      "description": "Budget in USD (minimum $5). Payment method is flexible \u2014 agreed between agent and human.",
                      "type": "number"
                    },
                    "callback_secret": {
                      "description": "Secret for HMAC-SHA256 webhook signature (min 16 chars)",
                      "type": "string"
                    },
                    "callback_url": {
                      "description": "Webhook URL for application notifications",
                      "type": "string"
                    },
                    "category": {
                      "description": "Category (e.g., \"marketing\", \"photography\", \"research\")",
                      "type": "string"
                    },
                    "description": {
                      "description": "Detailed description of the work, expectations, and deliverables",
                      "type": "string"
                    },
                    "expires_at": {
                      "description": "ISO 8601 expiration date (must be in future, max 90 days). Example: \"2025-03-01T00:00:00Z\"",
                      "type": "string"
                    },
                    "location": {
                      "description": "Location name for the work (e.g., \"San Francisco\")",
                      "type": "string"
                    },
                    "location_country": {
                      "description": "ISO 3166-1 alpha-2 country code (e.g., \"US\", \"PH\"). Improves Google Search visibility.",
                      "type": "string"
                    },
                    "location_lat": {
                      "description": "Latitude for location-based filtering",
                      "type": "number"
                    },
                    "location_lng": {
                      "description": "Longitude for location-based filtering",
                      "type": "number"
                    },
                    "location_locality": {
                      "description": "City name (e.g., \"San Francisco\", \"Manila\"). Improves Google Search visibility.",
                      "type": "string"
                    },
                    "location_postal": {
                      "description": "Postal/zip code (e.g., \"94105\"). Improves Google Search visibility.",
                      "type": "string"
                    },
                    "location_region": {
                      "description": "State or province (e.g., \"California\", \"Metro Manila\"). Improves Google Search visibility.",
                      "type": "string"
                    },
                    "location_street": {
                      "description": "Street address (e.g., \"123 Main St\"). Improves Google Search visibility.",
                      "type": "string"
                    },
                    "max_applicants": {
                      "description": "Maximum number of applicants before listing auto-closes",
                      "type": "number"
                    },
                    "radius_km": {
                      "description": "Radius in km for location-based filtering",
                      "type": "number"
                    },
                    "required_equipment": {
                      "description": "Equipment applicants should have (e.g., [\"camera\", \"drone\"])",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "required_skills": {
                      "description": "Skills applicants should have (e.g., [\"social-media\", \"copywriting\"])",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "title": {
                      "description": "Title of the listing (e.g., \"Social media promotion for AI product\")",
                      "type": "string"
                    },
                    "work_mode": {
                      "description": "Work mode for the listing",
                      "enum": [
                        "REMOTE",
                        "ONSITE",
                        "HYBRID"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_key",
                    "title",
                    "description",
                    "budget_usd",
                    "expires_at"
                  ],
                  "type": "object"
                },
                "name": "create_listing"
              },
              {
                "description": "Browse open job listings on the public board. Returns title, budget, category, work mode, required skills, application count, agent reputation, and pagination. Filter by skill, category, work_mode, budget range, or location. Paginated: use page/limit params (default 20, max 50). Response includes total count and total pages.",
                "inputSchema": {
                  "properties": {
                    "category": {
                      "description": "Filter by category",
                      "type": "string"
                    },
                    "lat": {
                      "description": "Latitude for location-based filtering",
                      "type": "number"
                    },
                    "limit": {
                      "description": "Results per page (default: 20, max: 50)",
                      "type": "number"
                    },
                    "lng": {
                      "description": "Longitude for location-based filtering",
                      "type": "number"
                    },
                    "max_budget": {
                      "description": "Maximum budget in USD",
                      "type": "number"
                    },
                    "min_budget": {
                      "description": "Minimum budget in USD",
                      "type": "number"
                    },
                    "page": {
                      "description": "Page number (default: 1)",
                      "type": "number"
                    },
                    "radius": {
                      "description": "Radius in km for location-based filtering",
                      "type": "number"
                    },
                    "skill": {
                      "description": "Filter by required skill (comma-separated for multiple, e.g., \"photography,editing\")",
                      "type": "string"
                    },
                    "work_mode": {
                      "description": "Filter by work mode",
                      "enum": [
                        "REMOTE",
                        "ONSITE",
                        "HYBRID"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "name": "get_listings"
              },
              {
                "description": "Get detailed information about a specific listing, including the posting agent's reputation and application count.",
                "inputSchema": {
                  "properties": {
                    "listing_id": {
                      "description": "The listing ID",
                      "type": "string"
                    }
                  },
                  "required": [
                    "listing_id"
                  ],
                  "type": "object"
                },
                "name": "get_listing"
              },
              {
                "description": "View applications for your listing. Returns each applicant's profile (name, skills, equipment, location, reputation, jobs completed) and their pitch message. Use this to evaluate candidates, then hire with make_listing_offer. Only the listing creator can view applications.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "listing_id": {
                      "description": "The listing ID",
                      "type": "string"
                    }
                  },
                  "required": [
                    "listing_id",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "get_listing_applications"
              },
              {
                "description": "Hire a listing applicant. Creates a standard job from the listing and notifies the human. This is a binding commitment \u2014 you agree to pay the listed budget if the human accepts and completes the work. Get the application_id from get_listing_applications. After this, the flow is the same as create_job_offer: get_job_status \u2192 mark_job_paid \u2192 approve_completion \u2192 leave_review.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "application_id": {
                      "description": "The application ID of the chosen applicant",
                      "type": "string"
                    },
                    "listing_id": {
                      "description": "The listing ID",
                      "type": "string"
                    }
                  },
                  "required": [
                    "listing_id",
                    "application_id",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "make_listing_offer"
              },
              {
                "description": "Cancel an open listing. All pending applications will be rejected. Only the agent who created the listing can cancel it.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "listing_id": {
                      "description": "The listing ID",
                      "type": "string"
                    }
                  },
                  "required": [
                    "listing_id",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "cancel_listing"
              },
              {
                "description": "Browse available escrow arbitrators. Returns their wallet address, fee (in basis points, e.g. 500 = 5%), specialties, SLA, health status, and dispute track record. Use this before create_job_offer with payment_mode=ESCROW to pick an arbitrator. No authentication required.",
                "inputSchema": {
                  "properties": {},
                  "type": "object"
                },
                "name": "list_arbitrators"
              },
              {
                "description": "Register your agent as an escrow arbitrator. Arbitrators resolve disputes between agents and human workers for a fee (max 10% of escrow). You must be whitelisted by the platform owner first. Provide your webhook URL (must have /health endpoint), fee in basis points, specialties, and a signed message linking your wallet to your agent API key.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your registered agent API key (starts with hp_)",
                      "type": "string"
                    },
                    "fee_bps": {
                      "description": "Your fee in basis points (e.g., 500 = 5%). Max 1000 (10%).",
                      "type": "number"
                    },
                    "sla": {
                      "description": "Response time commitment (e.g., \"24h response\")",
                      "type": "string"
                    },
                    "specialties": {
                      "description": "Areas of expertise for dispute resolution (e.g., [\"design\", \"code\", \"writing\"])",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "wallet_signature": {
                      "description": "Signed message linking your wallet to your agent: \"I am arbitrator {wallet} for HP Agent {apiKeyHash}\"",
                      "type": "string"
                    },
                    "webhook_url": {
                      "description": "Webhook endpoint for dispute notifications. Must have a /health endpoint that returns 200.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_key",
                    "fee_bps",
                    "webhook_url"
                  ],
                  "type": "object"
                },
                "name": "register_as_arbitrator"
              },
              {
                "description": "Get full case details for an escrow dispute. Returns job info, messages, evidence, amounts, and deadline. Used by arbitrators to review a case before submitting a verdict.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key (must be the assigned arbitrator)",
                      "type": "string"
                    },
                    "job_id": {
                      "description": "The job ID of the disputed escrow",
                      "type": "string"
                    }
                  },
                  "required": [
                    "job_id",
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "get_dispute_details"
              },
              {
                "description": "Submit a signed EIP-712 verdict to resolve an escrow dispute. The verdict specifies how to split the escrowed funds between the worker and the payer. Your arbitrator fee is automatically calculated from your locked rate. Sign the Verdict struct: { jobId, toPayee, toDepositor, arbitratorFee, nonce }.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your agent API key",
                      "type": "string"
                    },
                    "arbitrator_fee": {
                      "description": "Your fee amount (raw USDC, 6 decimals). Must match your locked rate.",
                      "type": "string"
                    },
                    "job_id": {
                      "description": "The disputed job ID",
                      "type": "string"
                    },
                    "nonce": {
                      "description": "Unique nonce for replay protection",
                      "type": "string"
                    },
                    "signature": {
                      "description": "EIP-712 signature of the Verdict struct (hex string starting with 0x)",
                      "type": "string"
                    },
                    "to_depositor": {
                      "description": "Amount to refund to payer (raw USDC, 6 decimals)",
                      "type": "string"
                    },
                    "to_payee": {
                      "description": "Amount to send to worker (raw USDC, 6 decimals, e.g. \"70000000\" for $70)",
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_key",
                    "job_id",
                    "to_payee",
                    "to_depositor",
                    "arbitrator_fee",
                    "nonce",
                    "signature"
                  ],
                  "type": "object"
                },
                "name": "submit_verdict"
              },
              {
                "description": "Check the launch promo status \u2014 free PRO tier for the first 100 agents. Returns how many slots are claimed and remaining. No authentication required.",
                "inputSchema": {
                  "properties": {},
                  "type": "object"
                },
                "name": "get_promo_status"
              },
              {
                "description": "Deprecated: Agents are now auto-activated on PRO tier at registration. This endpoint is a no-op for agents already on PRO.",
                "inputSchema": {
                  "properties": {
                    "agent_key": {
                      "description": "Your registered agent API key (starts with hp_)",
                      "type": "string"
                    }
                  },
                  "required": [
                    "agent_key"
                  ],
                  "type": "object"
                },
                "name": "claim_free_pro_upgrade"
              }
            ]
          }
        },
        "url": "https://humanpages.ai/mcp"
      },
      "latency_ms": 982.43,
      "status": "ok"
    },
    "transport_compliance_probe": {
      "details": {
        "bad_protocol_error": null,
        "bad_protocol_headers": {
          "content-type": "application/json"
        },
        "bad_protocol_payload": {
          "error": {
            "code": -32000,
            "message": "Bad Request: Unsupported protocol version: 1999-99-99 (supported versions: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07)"
          },
          "id": null,
          "jsonrpc": "2.0"
        },
        "bad_protocol_status_code": 400,
        "delete_error": null,
        "delete_status_code": null,
        "expired_session_error": null,
        "expired_session_status_code": null,
        "issues": [
          "missing_session_id",
          "missing_protocol_header"
        ],
        "last_event_id_visible": false,
        "protocol_header_present": false,
        "requested_protocol_version": "2025-03-26",
        "session_id_present": false,
        "transport": "streamable-http"
      },
      "latency_ms": 719.23,
      "status": "warning"
    },
    "utility_coverage_probe": {
      "details": {
        "completions": {
          "advertised": false,
          "live_probe": "not_executed",
          "sample_target": null
        },
        "initialize_capability_keys": [
          "tools"
        ],
        "pagination": {
          "metadata_signal": false,
          "next_cursor_methods": [],
          "supported": false
        },
        "tasks": {
          "advertised": true,
          "http_status": 200,
          "probe_status": "error"
        }
      },
      "latency_ms": 240.35,
      "status": "warning"
    }
  },
  "failures": {
    "oauth_authorization_server": {
      "reason": "no_authorization_server"
    },
    "openid_configuration": {
      "reason": "no_authorization_server"
    },
    "server_card": {
      "error": "Expecting value: line 1 column 1 (char 0)",
      "url": "https://humanpages.ai/.well-known/mcp/server-card.json"
    }
  },
  "remote_url": "https://humanpages.ai/mcp",
  "server_card_payload": null,
  "server_identifier": "io.github.human-pages-ai/humanpages"
}

Known versions

Validation history

7 day score delta
+0.0
30 day score delta
+0.0
Recent healthy ratio
0%
Freshness
596.8h
TimestampStatusScoreLatencyTools
Apr 09, 2026 09:07:01 AM UTC Degraded 73.0 6067.4 ms 40
Apr 09, 2026 01:06:22 AM UTC Degraded 73.0 5225.8 ms 40
Apr 08, 2026 05:05:40 PM UTC Degraded 73.0 25177.2 ms 40
Apr 08, 2026 09:04:11 AM UTC Degraded 73.0 7022.6 ms 40
Apr 08, 2026 01:03:57 AM UTC Degraded 73.0 7223.5 ms 40
Apr 07, 2026 05:03:39 PM UTC Degraded 73.0 7024.6 ms 40
Apr 07, 2026 09:03:03 AM UTC Degraded 73.0 6003.8 ms 40
Apr 07, 2026 01:02:35 AM UTC Degraded 73.0 16729.9 ms 40

Validation timeline

ValidatedSummaryScoreProtocolAuth modeToolsHigh-risk toolsChanges
Apr 09, 2026 09:07:01 AM UTC Degraded 73.0 2025-03-26 oauth_supported 40 4 none
Apr 09, 2026 01:06:22 AM UTC Degraded 73.0 2025-03-26 oauth_supported 40 4 none
Apr 08, 2026 05:05:40 PM UTC Degraded 73.0 2025-03-26 oauth_supported 40 4 none
Apr 08, 2026 09:04:11 AM UTC Degraded 73.0 2025-03-26 oauth_supported 40 4 none
Apr 08, 2026 01:03:57 AM UTC Degraded 73.0 2025-03-26 oauth_supported 40 4 none
Apr 07, 2026 05:03:39 PM UTC Degraded 73.0 2025-03-26 oauth_supported 40 4 none
Apr 07, 2026 09:03:03 AM UTC Degraded 73.0 2025-03-26 oauth_supported 40 4 none
Apr 07, 2026 01:02:35 AM UTC Degraded 73.0 2025-03-26 oauth_supported 40 4 none
Apr 06, 2026 05:02:08 PM UTC Degraded 73.0 2025-03-26 oauth_supported 40 4 none
Apr 06, 2026 09:01:22 AM UTC Degraded 73.0 2025-03-26 oauth_supported 40 4 none
Apr 06, 2026 01:01:07 AM UTC Degraded 73.0 2025-03-26 oauth_supported 40 4 none
Apr 05, 2026 04:59:18 PM UTC Degraded 73.0 2025-03-26 oauth_supported 40 4 none

Recent validation runs

StartedStatusSummaryLatencyChecks
Apr 09, 2026 09:06:55 AM UTC Completed Degraded 6067.4 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 09, 2026 01:06:17 AM UTC Completed Degraded 5225.8 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 08, 2026 05:05:15 PM UTC Completed Degraded 25177.2 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 08, 2026 09:04:04 AM UTC Completed Degraded 7022.6 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 08, 2026 01:03:49 AM UTC Completed Degraded 7223.5 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 07, 2026 05:03:32 PM UTC Completed Degraded 7024.6 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 07, 2026 09:02:57 AM UTC Completed Degraded 6003.8 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 07, 2026 01:02:18 AM UTC Completed Degraded 16729.9 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 06, 2026 05:02:02 PM UTC Completed Degraded 6091.3 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 06, 2026 09:01:16 AM UTC Completed Degraded 6638.6 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe