honeylabs-mcp
Honeypot threat intelligence for AI agents. Query 90 days of probe data from our sensor network: IP reputation, scanner classification, CVE probing trends, TLS/SSH/JA4 fingerprints. Free tier 500 credits/day, OAuth + bearer auth, streamable HTTP at https://mcp.honeylabs.net/mcp.
Allow With Approval
trustsnap_c7925968ded36262.- Transport Compliance
- Request Association
- Recovery Semantics
- Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.
- Serve /.well-known/mcp/server-card.json and include tools, prompts/resources, homepage, and support links.
- Advertise a current MCP protocol revision (2025-06-18 or later) in both the initialize response and the MCP-Protocol-Ve…
- No segmented attention signals observed in the current window.
Dispute this assessment
If any published claim about this server -- its score, a risk flag, a capability classification, or its taxonomy -- is factually wrong, tell us what evidence shows and we will review it. This does not require claiming or verifying ownership of the server first.
Verify responds to disputes within 5 business days and resolves them within 15.
Dispute history
No disputes filed for this server.
Risks
Security posture
Tool capability & risk inventory
| Tool | Capabilities | Risk | Findings | Notes | Evidence |
|---|---|---|---|---|---|
search_events_tool |
read | Low | none | Safeguards hinted in metadata. |
Schema & evidence{
"annotations": {},
"capabilities": [
"read"
],
"input_schema": {
"additionalProperties": false,
"properties": {
"app_protocol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"asn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"dest_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"has_client_cert": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null
},
"http_method": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"ip_version": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"ja3": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"ja4": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"limit": {
"default": 100,
"type": "integer"
},
"protocol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"request_header": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"since": {
"type": "string"
},
"source_ip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"until": {
"type": "string"
}
},
"required": [
"since",
"until"
],
"type": "object"
},
"risk_flags": []
}
Dispute this classification
|
top_attackers_tool |
undetermined | Low | none | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {},
"capabilities": [
"undetermined"
],
"input_schema": {
"additionalProperties": false,
"properties": {
"asn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"by": {
"default": "ip",
"type": "string"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"dest_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"limit": {
"default": 20,
"type": "integer"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"since",
"until"
],
"type": "object"
},
"risk_flags": []
}
Dispute this classification
|
ioc_lookup_tool |
read | Low | none | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {},
"capabilities": [
"read"
],
"input_schema": {
"additionalProperties": false,
"properties": {
"days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"ioc": {
"type": "string"
}
},
"required": [
"ioc"
],
"type": "object"
},
"risk_flags": []
}
Dispute this classification
|
cve_lookup_tool |
read | Low | none | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {},
"capabilities": [
"read"
],
"input_schema": {
"additionalProperties": false,
"properties": {
"cve_id": {
"type": "string"
},
"limit": {
"default": 25,
"type": "integer"
},
"window": {
"default": "7d",
"type": "string"
}
},
"required": [
"cve_id"
],
"type": "object"
},
"risk_flags": []
}
Dispute this classification
|
payload_search_tool |
read | Low | freeform input surface | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {},
"capabilities": [
"read"
],
"input_schema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 50,
"type": "integer"
},
"query": {
"type": "string"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"query",
"since",
"until"
],
"type": "object"
},
"risk_flags": [
"freeform_input_surface"
]
}
Dispute this classification
|
attack_timeline_tool |
filesystem | Low | freeform input surface | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {},
"capabilities": [
"filesystem"
],
"input_schema": {
"additionalProperties": false,
"properties": {
"bucket": {
"default": "day",
"type": "string"
},
"filter_country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"filter_dest_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"filter_protocol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"since",
"until"
],
"type": "object"
},
"risk_flags": [
"freeform_input_surface"
]
}
Dispute this classification
|
asn_enrich_tool |
undetermined | Low | none | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {},
"capabilities": [
"undetermined"
],
"input_schema": {
"additionalProperties": false,
"properties": {
"asn": {
"type": "string"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"asn",
"since",
"until"
],
"type": "object"
},
"risk_flags": []
}
Dispute this classification
|
fingerprint_search_tool |
read | Low | none | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {},
"capabilities": [
"read"
],
"input_schema": {
"additionalProperties": false,
"properties": {
"fingerprint": {
"type": "string"
},
"fp_type": {
"type": "string"
},
"limit": {
"default": 50,
"type": "integer"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"fingerprint",
"fp_type",
"since",
"until"
],
"type": "object"
},
"risk_flags": []
}
Dispute this classification
|
fingerprint_population_tool |
read | Low | none | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {},
"capabilities": [
"read"
],
"input_schema": {
"additionalProperties": false,
"properties": {
"fingerprint": {
"type": "string"
},
"fp_type": {
"type": "string"
}
},
"required": [
"fingerprint",
"fp_type"
],
"type": "object"
},
"risk_flags": []
}
Dispute this classification
|
Write-action governance
Status detail: No unsafe write-action governance gaps detected on the latest validation.
| Tool | Risk | Flags | Safeguards |
|---|---|---|---|
| No high-risk tools were detected on the latest run. | |||
Action-controls diff
New actions
| Action | Risk | Flags |
|---|---|---|
| No newly added actions. | ||
Changed actions
| Action | Change types | Risk |
|---|---|---|
| No materially changed actions. | ||
Critical alerts
Compatibility
Client compatibility verdicts
Client compatibility only means the server shape can work with a client. Production trust decision and write-action publishing are evaluated separately so a client-compatible server can still be blocked for production.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Errorstep_up_auth_probe• Warningconnector_replay_probe• OK — Frozen tool snapshots must survive refresh.request_association_probe• Missing — Roots, sampling, and elicitation should stay request-scoped.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Error
Evidence provenance
action_safety_probe• OK
Evidence provenance
tool_snapshot_probe• OKconnector_replay_probe• OK
Client compatibility gate details
Remediation checklist
- Resolve the transport compliance failure -- see the transport compliance probe evidence for what specifically broke.
- Satisfy OAuth, compatibility, and connector-refresh requirements before using the Messages API remote MCP path.
- Resolve transport compliance issues before wider client rollout.
Remediation checklist
- Resolve the transport compliance failure -- see the transport compliance probe evidence for what specifically broke.
- Satisfy OAuth, compatibility, and connector-refresh requirements before using the Messages API remote MCP path.
- Resolve transport compliance issues before wider client rollout.
Remediation checklist
- No explicit blockers recorded.
Verdict traces
- No active alert triggers.
Client verdict trace table
| Verdict | Status | Checks | Winning source | Conflicts |
|---|---|---|---|---|
openai_connectors |
Not client-compatible | initialize, tools_list, transport_compliance_probe, step_up_auth_probe, connector_replay_probe, request_association_probe | live_validation | none |
claude_desktop |
Not client-compatible | initialize, tools_list, transport_compliance_probe | live_validation | none |
unsafe_for_write_actions |
Publishing allowed | action_safety_probe | live_validation | none |
snapshot_churn_risk |
Low | tool_snapshot_probe, connector_replay_probe | history | none |
Publishability policy profiles
- Search Fetch Only: Yes
- Write Actions Present: No
- Oauth Configured: Yes
- Admin Refresh Required: No
- Safe For Company Knowledge: Yes
- Safe For Messages Api Remote Mcp: No
- Search Fetch Only: Yes
- Write Actions Present: No
- Oauth Configured: Yes
- Admin Refresh Required: No
- Safe For Company Knowledge: Yes
- Safe For Messages Api Remote Mcp: No
Compatibility fixtures
- remote_http_endpoint: Passes
- oauth_discovery: Passes
- frozen_tool_snapshot_refresh: Passes
- request_association: Not Assessed
- remote_transport: Passes
- tool_discovery: Passes
- auth_connect: Passes
- safe_write_review: Passes
Recommended for
Evidence
Current trust snapshot
trustsnap_c7925968ded36262Canonical machine links
Evidence confidence
Latest validation evidence
Failures
openid_configurationClient error '404 Not Found' for url 'https://mcp.honeylabs.net/.well-known/openid-configuration' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404server_cardClient error '404 Not Found' for url 'https://mcp.honeylabs.net/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404transport_compliance_probeIssues: missing session id, missing protocol header, bad protocol not rejected (bad protocol=200).
Checks
| Check | Status | Latency | Evidence |
|---|---|---|---|
action_safety_probe |
OK | n/a | No high-risk write, destructive, or exec tools detected. |
advanced_capabilities_probe |
Warning | n/a | Only 2 capability signal(s): prompts, resources. |
connector_publishability_probe |
Warning | n/a | Publishability blockers: transport compliance, server card. |
connector_replay_probe |
OK | n/a | Backward compatible with no breaking tool-surface changes. |
determinism_probe |
OK | 198.9 ms | Check completed |
initialize |
OK | 296.4 ms | Protocol 2025-06-18 |
interactive_flow_probe |
OK | n/a | Check completed |
oauth_authorization_server |
OK | 100.8 ms | authorization_endpoint, code_challenge_methods_supported, grant_types_supported, issuer |
oauth_protected_resource |
OK | 291.3 ms | 1 authorization server(s) |
official_registry_probe |
Missing | n/a | Check completed |
openid_configuration |
Error | 98.8 ms | Client error '404 Not Found' for url 'https://mcp.honeylabs.net/.well-known/openid-configuration' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404 |
probe_noise_resilience |
OK | 319.7 ms | Fetched https://mcp.honeylabs.net/robots.txt |
prompt_get |
Missing | n/a | not advertised |
prompts_list |
Auth Required | 101.6 ms | Client error '401 Unauthorized' for url 'https://mcp.honeylabs.net/mcp' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401 |
protocol_version_probe |
Warning | n/a | Claims 2025-06-18; 1 release(s) behind 2025-11-25. |
provenance_divergence_probe |
Not_Assessed | 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 |
Auth Required | 298.7 ms | Client error '401 Unauthorized' for url 'https://mcp.honeylabs.net/mcp' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401 |
schema_divergence_probe |
Missing | n/a | no server card tools |
server_card |
Error | 101.8 ms | Client error '404 Not Found' for url 'https://mcp.honeylabs.net/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404 |
session_resume_probe |
Warning | n/a | no session id |
step_up_auth_probe |
Warning | n/a | Oauth detected; step-up challenge hints present. |
tool_snapshot_probe |
OK | n/a | Check completed |
tools_list |
OK | 106.4 ms | 9 tool(s) exposed |
transport_compliance_probe |
Error | 101.0 ms | Issues: missing session id, missing protocol header, bad protocol not rejected (bad protocol=200). |
utility_coverage_probe |
OK | 98.7 ms | No completions evidence; no pagination evidence; tasks auth required. |
Known versions
- No versions recorded.
Public server reputation
Benchmark tasks
| Benchmark task | Status | Evidence |
|---|---|---|
| Discover tools | Passes |
|
| Read-only fetch flow | Degraded |
|
| OAuth-required connect | Passes |
|
| Safe write flow with confirmation | Passes |
|
Utility coverage
Tool snapshot diff & changelog
Required-argument changes
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument changes detected. | ||
Output-schema drift
| Tool | Previous properties | Latest properties |
|---|---|---|
| No output-schema drift detected. | ||
Validation diff
Regressed checks: none
Improved checks: none
Newly assessed dimensions: none
No longer assessed dimensions: none
| Component | Previous | Latest | Delta |
|---|---|---|---|
| No component deltas between the latest two runs. | |||
Registry & provenance divergence
| Field | Registry | Live server card |
|---|---|---|
| Title | n/a | n/a |
| Version | n/a | n/a |
| Homepage | n/a | n/a |
Active alerts
No active alerts for the current server state.
Aliases & registry graph
| Identifier | Source | Canonical | Identity evidence | Score |
|---|---|---|---|---|
honeylabshq/honeylabs-mcp |
glama_registry | yes | canonical | 67.2 |
awesome-honeylabshq/honeylabs-mcp |
awesome_mcp_servers | no | repo_slug | n/a |
Alias consolidation
Strong alias identity requires matching remote URL, server-card URL, repository slug, or explicit registry cross-reference; shared provider namespace alone is not identity.
Source disagreements
| Field | What differs | Observed values |
|---|---|---|
| Registry source | Multiple registries or registry sync paths claim this same canonical server. | awesome_mcp_servers glama_registry |
| Remote URL | Aliases currently point at different MCP endpoints, which can indicate mirrors, stale registry data, or a real endpoint split. | https://glama.ai/mcp/servers/honeylabshq/honeylabs-mcp/badges/score.svg)](https://glama.ai/mcp/servers/honeylabshq/honeylabs-mcp https://mcp.honeylabs.net/mcp |
| Homepage | Registry entries disagree on the primary homepage for this server. | https://github.com/honeylabshq/honeylabs-mcp https://glama.ai/mcp/servers/jnlq7n0oeh |
| Registry identifier | Different registry-specific identifiers resolve to the same canonical server record here. | awesome_mcp_servers:honeylabshq/honeylabs-mcp glama_registry:jnlq7n0oeh |
Fix it
Why this score?
Algorithmic score breakdown
1 component(s) not assessed for this run: Provenance Divergence
Experimental candidate components
Actionable remediation
| Severity | Remediation | Why it matters | Recommended action |
|---|---|---|---|
| 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
|
| 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
|
| Medium | Adopt a current MCP protocol revision | Older protocol revisions reduce compatibility with newer clients and registry programs. | Advertise a current MCP protocol revision (2025-06-18 or later) in both the initialize response and the MCP-Protocol-Version header.Playbook
|
| Medium | Close connector-publishing gaps | Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability. | |
| 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
|
| 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
|
| 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
|
| 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
|
| Medium | Support resumable HTTP sessions cleanly | Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports. | Persist session state keyed by Mcp-Session-Id and honor Last-Event-ID on GET reconnects so clients can resume a dropped Streamable HTTP session.Playbook
|
| Low | Publish newer MCP capability signals | Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking. | Advertise only the advanced capabilities (roots, sampling, elicitation) you have actually implemented end to end in the initialize capabilities object.Playbook
|
| Low | Publish or reconcile the server in the official MCP registry | Official registry presence improves discovery confidence and cross-source consistency. |
Point loss breakdown
| Component | Current | Points missing |
|---|---|---|
| Transport Compliance | 0/4 | -4.0 |
| Request Association | 0/4 | -4.0 |
| Recovery Semantics | 0/4 | -4.0 |
| Error Contract | 0/4 | -4.0 |
| Dependency Supply Chain Signal | 0/4 | -4.0 |
| Utility Coverage | 1/4 | -3.0 |
| Advanced Capability Coverage | 1/4 | -3.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 |
Compatibility profiles
Connector URL: https://mcp.honeylabs.net/mcp # Complete OAuth in the client when prompted. # Server: honeylabshq/honeylabs-mcp
{
"mcpServers": {
"honeylabs-mcp": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.honeylabs.net/mcp"]
}
}
}
smithery mcp add "https://mcp.honeylabs.net/mcp"
curl -sS https://mcp.honeylabs.net/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"}}}'
Governance
MCP TrustOps
TrustOps turns this report into operational controls: freshness SLAs, authenticated validation, semantic benchmarks, policy exports, alert subscriptions, badges, cost/compliance metadata, and runtime routing. Fresh trusted index decisions stay separate from long-tail inventory so stale scores do not masquerade as current evidence.
/v1/decideAlert subscription types
MCP Runtime hosting
Verify Hosted MCP turns a trusted server report into a managed remote MCP endpoint with GitHub deployment provenance, sandbox policy, encrypted secrets, release history, rollback, and audit/usage events.
/hosted/{namespace}/{name}/mcp| Deployment | Status | Endpoint | Release |
|---|---|---|---|
| No hosted runtime deployments yet. | |||
Authenticated validation sessions
Public validation is free. Authenticated validation is paid and proves scoped behavior, write-action safeguards, and authenticated tool execution.
/v1/verify/v1/ci/previewInstall snippets
Connector URL: https://mcp.honeylabs.net/mcp # Complete OAuth in the client when prompted. # Server: honeylabshq/honeylabs-mcp
{
"mcpServers": {
"honeylabs-mcp": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.honeylabs.net/mcp"]
}
}
}
smithery mcp add "https://mcp.honeylabs.net/mcp"
curl -sS https://mcp.honeylabs.net/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
tools/list, prompts/list, and resources/list checks.honeylabshq/honeylabs-mcp.History
Validation history
| Timestamp | Status | Score | Latency | Tools |
|---|---|---|---|---|
| Aug 11, 2026 07:53:47 AM UTC | Healthy | 67.2 | 2416.3 ms | 9 |
| Aug 10, 2026 07:53:30 PM UTC | Healthy | 67.2 | 2484.6 ms | 9 |
| Aug 10, 2026 07:53:19 AM UTC | Healthy | 67.2 | 2450.1 ms | not fetched |
| Aug 09, 2026 07:47:53 PM UTC | Healthy | 67.2 | 2452.1 ms | not fetched |
| Aug 09, 2026 07:47:09 AM UTC | Healthy | 67.2 | 2487.9 ms | not fetched |
| Aug 08, 2026 07:46:26 PM UTC | Healthy | 67.2 | 2472.1 ms | not fetched |
| Aug 08, 2026 07:46:07 AM UTC | Healthy | 67.2 | 2407.3 ms | not fetched |
| Aug 08, 2026 07:44:08 AM UTC | Healthy | 67.2 | 2458.4 ms | not fetched |
Validation timeline
| Validated | Summary | Score | Protocol | Auth mode | Tools | High-risk tools | Changes |
|---|---|---|---|---|---|---|---|
| Aug 11, 2026 07:53:47 AM UTC | Healthy | 67.2 | 2025-06-18 | oauth_supported | 9 | 0 | none |
| Aug 10, 2026 07:53:30 PM UTC | Healthy | 67.2 | 2025-06-18 | oauth_supported | 9 | 0 | none |
| Aug 10, 2026 07:53:19 AM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 09, 2026 07:47:53 PM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 09, 2026 07:47:09 AM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 08, 2026 07:46:26 PM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 08, 2026 07:46:07 AM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 08, 2026 07:44:08 AM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 07, 2026 07:38:51 PM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 07, 2026 07:38:24 AM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
Recent validation runs
| Started | Status | Summary | Latency | Checks |
|---|---|---|---|---|
| Aug 11, 2026 07:53:45 AM UTC | Completed | Healthy | 2416.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, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 10, 2026 07:53:28 PM UTC | Completed | Healthy | 2484.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, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 10, 2026 07:53:16 AM UTC | Completed | Healthy | 2450.1 ms | not fetched (not counted in confidence) |
| Aug 09, 2026 07:47:51 PM UTC | Completed | Healthy | 2452.1 ms | not fetched (not counted in confidence) |
| Aug 09, 2026 07:47:07 AM UTC | Completed | Healthy | 2487.9 ms | not fetched (not counted in confidence) |
| Aug 08, 2026 07:46:24 PM UTC | Completed | Healthy | 2472.1 ms | not fetched (not counted in confidence) |
| Aug 08, 2026 07:46:05 AM UTC | Completed | Healthy | 2407.3 ms | not fetched (not counted in confidence) |
| Aug 08, 2026 07:44:05 AM UTC | Completed | Healthy | 2458.4 ms | not fetched (not counted in confidence) |
| Aug 07, 2026 07:38:49 PM UTC | Completed | Healthy | 2472.2 ms | not fetched (not counted in confidence) |
| Aug 07, 2026 07:38:22 AM UTC | Completed | Healthy | 2440.8 ms | not fetched (not counted in confidence) |
Incident & change feed
| Timestamp | Event | Details |
|---|---|---|
| Aug 11, 2026 07:53:47 AM UTC | Latest validation: healthy | Score 67.2 with status healthy. |
| Aug 05, 2026 10:59:23 AM UTC | Score corrected (post-1.0.503 remediation, R1 zero-anchoring) | Prior: 68.83. Corrected: 67.27. |
Technical details
Raw evidence view
Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": true,
"confirmation_signals": [],
"reason": null,
"safeguard_count": 1,
"summary": {
"annotation_conflict_tools": 0,
"bulk_access_tools": 0,
"capability_distribution": {
"filesystem": 1,
"read": 6,
"undetermined": 2
},
"declared_non_read_only_tools": 0,
"destructive_tools": 0,
"egress_tools": 0,
"exec_tools": 0,
"has_mutating_capability": false,
"has_non_read_capability": false,
"high_risk_tools": 0,
"risk_distribution": {
"critical": 0,
"high": 0,
"low": 9,
"medium": 0
},
"secret_tools": 0,
"tool_count": 9
}
},
"latency_ms": null,
"status": "ok"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": true,
"resource_links": false,
"resources": true,
"roots": false,
"sampling": false,
"structured_outputs": false
},
"enabled": [
"prompts",
"resources"
],
"enabled_count": 2,
"initialize_capability_keys": [
"tools"
]
},
"latency_ms": null,
"status": "warning"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"transport_compliance",
"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": false
},
"high_risk_tools": 0,
"tool_count": 9,
"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": "1884d7c76640d7bd9a896bd9e94eb61fd1e157dc7ea8c34ab45cf91fee2f24b7",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 198.9,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"tools": {
"listChanged": false
}
},
"protocolVersion": "2025-06-18",
"serverInfo": {
"name": "HoneyLabs Threat Intelligence",
"version": "1.0.0"
}
}
},
"url": "https://mcp.honeylabs.net/mcp"
},
"latency_ms": 296.35,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": true,
"prompt_available": false,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "ok"
},
"oauth_authorization_server": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"authorization_endpoint": "https://mcp.honeylabs.net/oauth/authorize",
"code_challenge_methods_supported": [
"S256"
],
"grant_types_supported": [
"authorization_code"
],
"issuer": "https://mcp.honeylabs.net",
"registration_endpoint": "https://mcp.honeylabs.net/oauth/register",
"response_types_supported": [
"code"
],
"token_endpoint": "https://mcp.honeylabs.net/oauth/token",
"token_endpoint_auth_methods_supported": [
"none"
]
},
"url": "https://mcp.honeylabs.net/.well-known/oauth-authorization-server"
},
"latency_ms": 100.79,
"status": "ok"
},
"oauth_protected_resource": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"authorization_servers": [
"https://mcp.honeylabs.net"
],
"bearer_methods_supported": [
"header"
],
"resource": "https://mcp.honeylabs.net/mcp",
"resource_documentation": "https://mcp.honeylabs.net"
},
"url": "https://mcp.honeylabs.net/.well-known/oauth-protected-resource"
},
"latency_ms": 291.34,
"status": "ok"
},
"official_registry_probe": {
"details": {
"direct_match": false,
"official_peer_count": 0,
"registry_source": "glama_registry"
},
"latency_ms": null,
"status": "missing"
},
"openid_configuration": {
"details": {
"error": "Client error '404 Not Found' for url 'https://mcp.honeylabs.net/.well-known/openid-configuration'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://mcp.honeylabs.net/.well-known/openid-configuration"
},
"latency_ms": 98.81,
"status": "error"
},
"probe_noise_resilience": {
"details": {
"consent_error": null,
"headers": {
"content-type": "text/plain; charset=utf-8",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"url": "https://mcp.honeylabs.net/robots.txt",
"validation_disallowed": false
},
"latency_ms": 319.69,
"status": "ok"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"error": "Client error '401 Unauthorized' for url 'https://mcp.honeylabs.net/mcp'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401",
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains",
"www-authenticate": "Bearer realm=\"HoneyLabs MCP\", resource_metadata=\"https://mcp.honeylabs.net/.well-known/oauth-protected-resource\""
},
"http_status": 401,
"payload": {},
"reason": "auth_required",
"url": "https://mcp.honeylabs.net/mcp"
},
"latency_ms": 101.58,
"status": "auth_required"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2025-06-18",
"lag_days": 160,
"latest_known_version": "2025-11-25",
"releases_behind": 1,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"comparable_field_count": 0,
"compared_fields": [
"title",
"version",
"homepage",
"repository"
],
"direct_official_match": false,
"drift_fields": [],
"metadata_document_count": 1,
"readable_sources": [],
"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": "not_assessed"
},
"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": {
"error": "Client error '401 Unauthorized' for url 'https://mcp.honeylabs.net/mcp'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401",
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains",
"www-authenticate": "Bearer realm=\"HoneyLabs MCP\", resource_metadata=\"https://mcp.honeylabs.net/.well-known/oauth-protected-resource\""
},
"http_status": 401,
"payload": {},
"reason": "auth_required",
"url": "https://mcp.honeylabs.net/mcp"
},
"latency_ms": 298.73,
"status": "auth_required"
},
"schema_divergence_probe": {
"details": {
"auth_scheme_mismatch": false,
"card_server_name": null,
"card_server_version": null,
"compared_dimensions": [
"server_name",
"server_version",
"declared_vs_observed_auth",
"tool_membership",
"parameter_names",
"required_parameters",
"parameter_types",
"output_schema_presence"
],
"compared_tool_count": 0,
"live_server_name": "HoneyLabs Threat Intelligence",
"live_server_version": "1.0.0",
"reason": "no_server_card_tools",
"server_name_mismatch": false,
"server_version_mismatch": false
},
"latency_ms": null,
"status": "missing"
},
"server_card": {
"details": {
"error": "Client error '404 Not Found' for url 'https://mcp.honeylabs.net/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://mcp.honeylabs.net/.well-known/mcp/server-card.json"
},
"latency_ms": 101.76,
"status": "error"
},
"session_resume_probe": {
"details": {
"protocol_version": "2025-06-18",
"reason": "no_session_id",
"resume_expected": true,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [
"prompts_list",
"resources_list"
],
"broad_scopes": [],
"challenge_headers": [
"Bearer realm=\"HoneyLabs MCP\", resource_metadata=\"https://mcp.honeylabs.net/.well-known/oauth-protected-resource\"",
"Bearer realm=\"HoneyLabs MCP\", resource_metadata=\"https://mcp.honeylabs.net/.well-known/oauth-protected-resource\""
],
"minimal_scope_documented": false,
"oauth_present": true,
"scope_specificity_ratio": 0.0,
"step_up_signals": [
"Bearer realm=\"HoneyLabs MCP\", resource_metadata=\"https://mcp.honeylabs.net/.well-known/oauth-protected-resource\"",
"Bearer realm=\"HoneyLabs MCP\", resource_metadata=\"https://mcp.honeylabs.net/.well-known/oauth-protected-resource\""
],
"supported_scopes": []
},
"latency_ms": null,
"status": "warning"
},
"tool_snapshot_probe": {
"details": {
"added": [],
"changed_outputs": [],
"current_tool_count": 9,
"previous_tool_count": 9,
"removed": [],
"similarity": 1.0
},
"latency_ms": null,
"status": "ok"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "Return individual raw honeypot events with all fields. Use when the user wants to see\nactual records: 'show me events from this IP', 'what hit port 443 last week', 'events from\nRussia yesterday'. Filters: source_ip, country (2-letter code), asn (e.g. 'AS12345'),\ndest_port, protocol ('tls' or '' = the coarse TLS/raw-TCP signal),\napp_protocol (nDPI L7 protocol label: 'bittorrent', 'ssh', 'rdp', 'mssql-tds', 'mining',\n'rtsp', 'smbv1', ... \u2014 find everything speaking a protocol regardless of port),\nhttp_method, request_header (substring of the masked\nHTTP request headers), ja4/ja3 (exact TLS client fingerprint),\nhas_client_cert (true = only events where the client presented an mTLS cert),\nip_version (4 or 6 = only IPv4 or IPv6 sources).\nsince/until are ISO-8601 UTC strings. Each record includes: source_ip, country, asn,\ndest_port, user_agent, url_path, http_request_headers, tls_client_ja4, tls_client_ja3,\nhttp_request_ja4h, ssh_client_hassh, tls_client_cert_subject/issuer,\nevent_sequence, event_duration, source_bytes/dest_bytes/network_bytes, network_protocol,\napplication_protocol, timestamp.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"app_protocol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"asn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"dest_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"has_client_cert": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null
},
"http_method": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"ip_version": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"ja3": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"ja4": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"limit": {
"default": 100,
"type": "integer"
},
"protocol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"request_header": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"since": {
"type": "string"
},
"source_ip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"until": {
"type": "string"
}
},
"required": [
"since",
"until"
],
"type": "object"
},
"name": "search_events_tool"
},
{
"description": "Ranked leaderboard of attack sources. Use for: 'who is attacking the most?', 'top\nattacking countries', 'most targeted ports', 'most common user agents', 'top ASNs by\nattack volume', 'top IPs from China', 'top attackers hitting port 22'.\n'by' controls grouping: ip, asn, country, port, user_agent, ja4, url_path, domain, cve.\nby='cve' answers 'what CVEs are being mass-scanned right now' and returns\nvalue (the CVE id), title, severity, actively_exploited and counts; drill into any of\nthem with cve_lookup. by='cve' does not accept the country/dest_port/asn filters.\nOptional filters: country (2-letter ISO, e.g. 'CN'), dest_port, asn (e.g. 'AS12345').\nAdding a filter is required for large time ranges to stay within memory limits.\nsince/until are ISO-8601 UTC strings.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"asn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"by": {
"default": "ip",
"type": "string"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"dest_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"limit": {
"default": 20,
"type": "integer"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"since",
"until"
],
"type": "object"
},
"name": "top_attackers_tool"
},
{
"description": "Look up any IP address, CIDR network, set of networks, or domain in the honeypot\n dataset. Use this FIRST whenever the\n user asks: 'is this IP malicious?', 'is this a known scanner?', 'have you seen this IP?',\n 'what does this IP do?', 'when was it last seen?', 'is this IP in your data?'. Returns:\n total_events (0 = never observed), first_seen, last_seen, country, ASN, the 50 most-hit\nports plus ports_targeted_count for the true total,\n top user agents, top URL paths, TLS/HTTP/SSH fingerprints. Covers both IPv4 and domains.\n Also returns our own judgement: `verdict` (human sentence) with `verdict_key` (stable\n machine value to alert on) and `verdict_why`; `scanner` (benign-scanner identity from our\n classification table, or null) so research traffic can be told apart from real attacks;\n and `cve_probes`, the CVE signatures this address was seen probing.\n\n WINDOW: `days` bounds the query to the last N days; leave it unset for every\n retained event, which is the right default for \"have we ever seen this\". The\n website's /lookup defaults to 7 days for anonymous visitors, so the same\n address can read very differently on the two surfaces. Every response states\n which window it used in `window`; quote it alongside any count you report.\n\n RANGES: pass a CIDR ('103.66.28.0/22') for a whole-network aggregate, or several at once\n separated by commas, spaces or newlines ('103.66.28.0/22, 8.34.210.32/27') to answer\n 'have any of this vendor's ranges touched us' in ONE call. Never expand a network into\n individual addresses and loop -- that is hundreds of calls for an answer this returns in\n one, and it will exhaust your quota. A range answer sets query_type to 'cidr' or\n 'cidr_set', lists every range back in `ranges`, and gives `per_range` counts plus\n `top_source_ips`; total_events 0 with those fields present is a real observed absence.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"ioc": {
"type": "string"
}
},
"required": [
"ioc"
],
"type": "object"
},
"name": "ioc_lookup_tool"
},
{
"description": "Who is probing a specific CVE. Use whenever the user names a CVE: 'is CVE-2024-4577\nbeing exploited in the wild?', 'who is scanning for this CVE?', 'show me actors probing\nCVE-2023-1389'. Returns severity, KEV (actively_exploited), event and unique-IP counts,\nthe top probing IPs with country/ASN/scanner tag, top ASNs, exploiter fingerprints,\nsample request paths and a daily timeline. window: 24h, 7d, 30d or 90d.\n`observed: false` with a note means we hold no detection pattern for that CVE, which is\nNOT the same as nobody scanning it. Do not use payload_search for a CVE id: the id is\nour tag for a pattern and never appears in the payload text.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"cve_id": {
"type": "string"
},
"limit": {
"default": 25,
"type": "integer"
},
"window": {
"default": "7d",
"type": "string"
}
},
"required": [
"cve_id"
],
"type": "object"
},
"name": "cve_lookup_tool"
},
{
"description": "Literal substring search over captured request text: URL path, request body,\nrequest headers and event summary. Use for: 'find attacks targeting /wp-admin',\n'find requests with this user agent string', 'what payloads hit port 80 last week'.\n\nIt matches text that literally appeared in the request, and nothing else. These do\nNOT work and will return an empty list:\n - a CVE id ('CVE-2024-4577'), which is our tag for a pattern, never payload text.\n Use cve_lookup instead. This tool rejects them rather than answering emptily.\n - a product or vendor name ('Cisco FMC', '7-Zip'), which appears in an advisory,\n not in the request. Search the endpoint it exposes instead, e.g. '/ccmadmin' or\n the vulnerable path.\n - a description of behaviour ('SQL injection attempts'). Search a marker that\n occurs in the traffic, e.g. 'UNION SELECT' or '../'.\n\nAn empty list is a real answer: it means no captured request in that window\ncontained the string. Widen since/until before concluding the activity does not\nexist. Free to call; volume is metered like every other tool.\nsince/until are ISO-8601 UTC strings.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 50,
"type": "integer"
},
"query": {
"type": "string"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"query",
"since",
"until"
],
"type": "object"
},
"name": "payload_search_tool"
},
{
"description": "Attack volume over time, bucketed by hour or day. Use for: 'show attack trends this\nweek', 'was there a spike on port 22?', 'how has SSH scanning changed?', 'attack volume\nfrom China over 30 days'. bucket: 'hour' or 'day'. Optional filters: filter_protocol\n('tls'/'''), filter_country (2-letter code), filter_dest_port. since/until ISO-8601 UTC.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"bucket": {
"default": "day",
"type": "string"
},
"filter_country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"filter_dest_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"filter_protocol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"since",
"until"
],
"type": "object"
},
"name": "attack_timeline_tool"
},
{
"description": "Full honeypot profile for an ASN (autonomous system / hosting provider). Use for:\n'tell me about AS202425', 'what is Vultr doing in my honeypots?', 'attacks from this\nhosting provider', 'attribute this IP to its network'. asn format: 'AS12345'.\nReturns: total events, unique IPs, top targeted ports, top source countries, top user\nagents, org name. since/until are ISO-8601 UTC strings.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"asn": {
"type": "string"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"asn",
"since",
"until"
],
"type": "object"
},
"name": "asn_enrich_tool"
},
{
"description": "Search honeypot activity by TLS, HTTP, or SSH fingerprint. Use when a user asks:\n'have you seen this JA4 fingerprint?', 'which IPs share this TLS fingerprint?', 'how\ncommon is this HASSH?', 'find all scanners with this SSH client fingerprint'. fp_type:\n'ja4' (TLS client), 'ja3' (legacy TLS client, MD5 \u2014 still keyed by many TI feeds),\n'ja4h' (HTTP client), 'hassh' (SSH client). since/until are ISO-8601 UTC strings.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"fingerprint": {
"type": "string"
},
"fp_type": {
"type": "string"
},
"limit": {
"default": 50,
"type": "integer"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"fingerprint",
"fp_type",
"since",
"until"
],
"type": "object"
},
"name": "fingerprint_search_tool"
},
{
"description": "The population behind a single client fingerprint: how many source IPs carry it,\nacross how many networks (ASNs) and countries, the ports they hit, the top networks\nand a sample of the IPs, plus a read on whether it is concentrated (a likely\ncoordinated operation, many IPs on few networks) or spread thin (a common client).\nUse when a user asks: 'is this JA4 one botnet or a common tool?', 'how many networks\nuse this HASSH?', 'how specific / concentrated is this fingerprint?'. fp_type: 'ja4'\n(TLS), 'ja4h' (HTTP), 'hassh' (SSH). Covers the full retained window (no date range).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"fingerprint": {
"type": "string"
},
"fp_type": {
"type": "string"
}
},
"required": [
"fingerprint",
"fp_type"
],
"type": "object"
},
"name": "fingerprint_population_tool"
}
]
}
},
"url": "https://mcp.honeylabs.net/mcp"
},
"latency_ms": 106.4,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "Return individual raw honeypot events with all fields. Use when the user wants to see\nactual records: 'show me events from this IP', 'what hit port 443 last week', 'events from\nRussia yesterday'. Filters: source_ip, country (2-letter code), asn (e.g. 'AS12345'),\ndest_port, protocol ('tls' or '' = the coarse TLS/raw-TCP signal),\napp_protocol (nDPI L7 protocol label: 'bittorrent', 'ssh', 'rdp', 'mssql-tds', 'mining',\n'rtsp', 'smbv1', ... \u2014 find everything speaking a protocol regardless of port),\nhttp_method, request_header (substring of the masked\nHTTP request headers), ja4/ja3 (exact TLS client fingerprint),\nhas_client_cert (true = only events where the client presented an mTLS cert),\nip_version (4 or 6 = only IPv4 or IPv6 sources).\nsince/until are ISO-8601 UTC strings. Each record includes: source_ip, country, asn,\ndest_port, user_agent, url_path, http_request_headers, tls_client_ja4, tls_client_ja3,\nhttp_request_ja4h, ssh_client_hassh, tls_client_cert_subject/issuer,\nevent_sequence, event_duration, source_bytes/dest_bytes/network_bytes, network_protocol,\napplication_protocol, timestamp.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"app_protocol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"asn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"dest_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"has_client_cert": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null
},
"http_method": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"ip_version": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"ja3": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"ja4": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"limit": {
"default": 100,
"type": "integer"
},
"protocol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"request_header": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"since": {
"type": "string"
},
"source_ip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"until": {
"type": "string"
}
},
"required": [
"since",
"until"
],
"type": "object"
},
"name": "search_events_tool"
},
{
"description": "Ranked leaderboard of attack sources. Use for: 'who is attacking the most?', 'top\nattacking countries', 'most targeted ports', 'most common user agents', 'top ASNs by\nattack volume', 'top IPs from China', 'top attackers hitting port 22'.\n'by' controls grouping: ip, asn, country, port, user_agent, ja4, url_path, domain, cve.\nby='cve' answers 'what CVEs are being mass-scanned right now' and returns\nvalue (the CVE id), title, severity, actively_exploited and counts; drill into any of\nthem with cve_lookup. by='cve' does not accept the country/dest_port/asn filters.\nOptional filters: country (2-letter ISO, e.g. 'CN'), dest_port, asn (e.g. 'AS12345').\nAdding a filter is required for large time ranges to stay within memory limits.\nsince/until are ISO-8601 UTC strings.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"asn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"by": {
"default": "ip",
"type": "string"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"dest_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"limit": {
"default": 20,
"type": "integer"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"since",
"until"
],
"type": "object"
},
"name": "top_attackers_tool"
},
{
"description": "Look up any IP address, CIDR network, set of networks, or domain in the honeypot\n dataset. Use this FIRST whenever the\n user asks: 'is this IP malicious?', 'is this a known scanner?', 'have you seen this IP?',\n 'what does this IP do?', 'when was it last seen?', 'is this IP in your data?'. Returns:\n total_events (0 = never observed), first_seen, last_seen, country, ASN, the 50 most-hit\nports plus ports_targeted_count for the true total,\n top user agents, top URL paths, TLS/HTTP/SSH fingerprints. Covers both IPv4 and domains.\n Also returns our own judgement: `verdict` (human sentence) with `verdict_key` (stable\n machine value to alert on) and `verdict_why`; `scanner` (benign-scanner identity from our\n classification table, or null) so research traffic can be told apart from real attacks;\n and `cve_probes`, the CVE signatures this address was seen probing.\n\n WINDOW: `days` bounds the query to the last N days; leave it unset for every\n retained event, which is the right default for \"have we ever seen this\". The\n website's /lookup defaults to 7 days for anonymous visitors, so the same\n address can read very differently on the two surfaces. Every response states\n which window it used in `window`; quote it alongside any count you report.\n\n RANGES: pass a CIDR ('103.66.28.0/22') for a whole-network aggregate, or several at once\n separated by commas, spaces or newlines ('103.66.28.0/22, 8.34.210.32/27') to answer\n 'have any of this vendor's ranges touched us' in ONE call. Never expand a network into\n individual addresses and loop -- that is hundreds of calls for an answer this returns in\n one, and it will exhaust your quota. A range answer sets query_type to 'cidr' or\n 'cidr_set', lists every range back in `ranges`, and gives `per_range` counts plus\n `top_source_ips`; total_events 0 with those fields present is a real observed absence.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"ioc": {
"type": "string"
}
},
"required": [
"ioc"
],
"type": "object"
},
"name": "ioc_lookup_tool"
},
{
"description": "Who is probing a specific CVE. Use whenever the user names a CVE: 'is CVE-2024-4577\nbeing exploited in the wild?', 'who is scanning for this CVE?', 'show me actors probing\nCVE-2023-1389'. Returns severity, KEV (actively_exploited), event and unique-IP counts,\nthe top probing IPs with country/ASN/scanner tag, top ASNs, exploiter fingerprints,\nsample request paths and a daily timeline. window: 24h, 7d, 30d or 90d.\n`observed: false` with a note means we hold no detection pattern for that CVE, which is\nNOT the same as nobody scanning it. Do not use payload_search for a CVE id: the id is\nour tag for a pattern and never appears in the payload text.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"cve_id": {
"type": "string"
},
"limit": {
"default": 25,
"type": "integer"
},
"window": {
"default": "7d",
"type": "string"
}
},
"required": [
"cve_id"
],
"type": "object"
},
"name": "cve_lookup_tool"
},
{
"description": "Literal substring search over captured request text: URL path, request body,\nrequest headers and event summary. Use for: 'find attacks targeting /wp-admin',\n'find requests with this user agent string', 'what payloads hit port 80 last week'.\n\nIt matches text that literally appeared in the request, and nothing else. These do\nNOT work and will return an empty list:\n - a CVE id ('CVE-2024-4577'), which is our tag for a pattern, never payload text.\n Use cve_lookup instead. This tool rejects them rather than answering emptily.\n - a product or vendor name ('Cisco FMC', '7-Zip'), which appears in an advisory,\n not in the request. Search the endpoint it exposes instead, e.g. '/ccmadmin' or\n the vulnerable path.\n - a description of behaviour ('SQL injection attempts'). Search a marker that\n occurs in the traffic, e.g. 'UNION SELECT' or '../'.\n\nAn empty list is a real answer: it means no captured request in that window\ncontained the string. Widen since/until before concluding the activity does not\nexist. Free to call; volume is metered like every other tool.\nsince/until are ISO-8601 UTC strings.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 50,
"type": "integer"
},
"query": {
"type": "string"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"query",
"since",
"until"
],
"type": "object"
},
"name": "payload_search_tool"
},
{
"description": "Attack volume over time, bucketed by hour or day. Use for: 'show attack trends this\nweek', 'was there a spike on port 22?', 'how has SSH scanning changed?', 'attack volume\nfrom China over 30 days'. bucket: 'hour' or 'day'. Optional filters: filter_protocol\n('tls'/'''), filter_country (2-letter code), filter_dest_port. since/until ISO-8601 UTC.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"bucket": {
"default": "day",
"type": "string"
},
"filter_country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"filter_dest_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"filter_protocol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"since",
"until"
],
"type": "object"
},
"name": "attack_timeline_tool"
},
{
"description": "Full honeypot profile for an ASN (autonomous system / hosting provider). Use for:\n'tell me about AS202425', 'what is Vultr doing in my honeypots?', 'attacks from this\nhosting provider', 'attribute this IP to its network'. asn format: 'AS12345'.\nReturns: total events, unique IPs, top targeted ports, top source countries, top user\nagents, org name. since/until are ISO-8601 UTC strings.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"asn": {
"type": "string"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"asn",
"since",
"until"
],
"type": "object"
},
"name": "asn_enrich_tool"
},
{
"description": "Search honeypot activity by TLS, HTTP, or SSH fingerprint. Use when a user asks:\n'have you seen this JA4 fingerprint?', 'which IPs share this TLS fingerprint?', 'how\ncommon is this HASSH?', 'find all scanners with this SSH client fingerprint'. fp_type:\n'ja4' (TLS client), 'ja3' (legacy TLS client, MD5 \u2014 still keyed by many TI feeds),\n'ja4h' (HTTP client), 'hassh' (SSH client). since/until are ISO-8601 UTC strings.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"fingerprint": {
"type": "string"
},
"fp_type": {
"type": "string"
},
"limit": {
"default": 50,
"type": "integer"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"fingerprint",
"fp_type",
"since",
"until"
],
"type": "object"
},
"name": "fingerprint_search_tool"
},
{
"description": "The population behind a single client fingerprint: how many source IPs carry it,\nacross how many networks (ASNs) and countries, the ports they hit, the top networks\nand a sample of the IPs, plus a read on whether it is concentrated (a likely\ncoordinated operation, many IPs on few networks) or spread thin (a common client).\nUse when a user asks: 'is this JA4 one botnet or a common tool?', 'how many networks\nuse this HASSH?', 'how specific / concentrated is this fingerprint?'. fp_type: 'ja4'\n(TLS), 'ja4h' (HTTP), 'hassh' (SSH). Covers the full retained window (no date range).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"fingerprint": {
"type": "string"
},
"fp_type": {
"type": "string"
}
},
"required": [
"fingerprint",
"fp_type"
],
"type": "object"
},
"name": "fingerprint_population_tool"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-06-18",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 100.96,
"status": "error"
},
"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": false,
"http_status": 401,
"probe_status": "auth_required"
}
},
"latency_ms": 98.66,
"status": "ok"
}
},
"failures": {
"openid_configuration": {
"error": "Client error '404 Not Found' for url 'https://mcp.honeylabs.net/.well-known/openid-configuration'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://mcp.honeylabs.net/.well-known/openid-configuration"
},
"server_card": {
"error": "Client error '404 Not Found' for url 'https://mcp.honeylabs.net/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://mcp.honeylabs.net/.well-known/mcp/server-card.json"
},
"transport_compliance_probe": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "Return individual raw honeypot events with all fields. Use when the user wants to see\nactual records: 'show me events from this IP', 'what hit port 443 last week', 'events from\nRussia yesterday'. Filters: source_ip, country (2-letter code), asn (e.g. 'AS12345'),\ndest_port, protocol ('tls' or '' = the coarse TLS/raw-TCP signal),\napp_protocol (nDPI L7 protocol label: 'bittorrent', 'ssh', 'rdp', 'mssql-tds', 'mining',\n'rtsp', 'smbv1', ... \u2014 find everything speaking a protocol regardless of port),\nhttp_method, request_header (substring of the masked\nHTTP request headers), ja4/ja3 (exact TLS client fingerprint),\nhas_client_cert (true = only events where the client presented an mTLS cert),\nip_version (4 or 6 = only IPv4 or IPv6 sources).\nsince/until are ISO-8601 UTC strings. Each record includes: source_ip, country, asn,\ndest_port, user_agent, url_path, http_request_headers, tls_client_ja4, tls_client_ja3,\nhttp_request_ja4h, ssh_client_hassh, tls_client_cert_subject/issuer,\nevent_sequence, event_duration, source_bytes/dest_bytes/network_bytes, network_protocol,\napplication_protocol, timestamp.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"app_protocol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"asn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"dest_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"has_client_cert": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null
},
"http_method": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"ip_version": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"ja3": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"ja4": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"limit": {
"default": 100,
"type": "integer"
},
"protocol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"request_header": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"since": {
"type": "string"
},
"source_ip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"until": {
"type": "string"
}
},
"required": [
"since",
"until"
],
"type": "object"
},
"name": "search_events_tool"
},
{
"description": "Ranked leaderboard of attack sources. Use for: 'who is attacking the most?', 'top\nattacking countries', 'most targeted ports', 'most common user agents', 'top ASNs by\nattack volume', 'top IPs from China', 'top attackers hitting port 22'.\n'by' controls grouping: ip, asn, country, port, user_agent, ja4, url_path, domain, cve.\nby='cve' answers 'what CVEs are being mass-scanned right now' and returns\nvalue (the CVE id), title, severity, actively_exploited and counts; drill into any of\nthem with cve_lookup. by='cve' does not accept the country/dest_port/asn filters.\nOptional filters: country (2-letter ISO, e.g. 'CN'), dest_port, asn (e.g. 'AS12345').\nAdding a filter is required for large time ranges to stay within memory limits.\nsince/until are ISO-8601 UTC strings.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"asn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"by": {
"default": "ip",
"type": "string"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"dest_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"limit": {
"default": 20,
"type": "integer"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"since",
"until"
],
"type": "object"
},
"name": "top_attackers_tool"
},
{
"description": "Look up any IP address, CIDR network, set of networks, or domain in the honeypot\n dataset. Use this FIRST whenever the\n user asks: 'is this IP malicious?', 'is this a known scanner?', 'have you seen this IP?',\n 'what does this IP do?', 'when was it last seen?', 'is this IP in your data?'. Returns:\n total_events (0 = never observed), first_seen, last_seen, country, ASN, the 50 most-hit\nports plus ports_targeted_count for the true total,\n top user agents, top URL paths, TLS/HTTP/SSH fingerprints. Covers both IPv4 and domains.\n Also returns our own judgement: `verdict` (human sentence) with `verdict_key` (stable\n machine value to alert on) and `verdict_why`; `scanner` (benign-scanner identity from our\n classification table, or null) so research traffic can be told apart from real attacks;\n and `cve_probes`, the CVE signatures this address was seen probing.\n\n WINDOW: `days` bounds the query to the last N days; leave it unset for every\n retained event, which is the right default for \"have we ever seen this\". The\n website's /lookup defaults to 7 days for anonymous visitors, so the same\n address can read very differently on the two surfaces. Every response states\n which window it used in `window`; quote it alongside any count you report.\n\n RANGES: pass a CIDR ('103.66.28.0/22') for a whole-network aggregate, or several at once\n separated by commas, spaces or newlines ('103.66.28.0/22, 8.34.210.32/27') to answer\n 'have any of this vendor's ranges touched us' in ONE call. Never expand a network into\n individual addresses and loop -- that is hundreds of calls for an answer this returns in\n one, and it will exhaust your quota. A range answer sets query_type to 'cidr' or\n 'cidr_set', lists every range back in `ranges`, and gives `per_range` counts plus\n `top_source_ips`; total_events 0 with those fields present is a real observed absence.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"ioc": {
"type": "string"
}
},
"required": [
"ioc"
],
"type": "object"
},
"name": "ioc_lookup_tool"
},
{
"description": "Who is probing a specific CVE. Use whenever the user names a CVE: 'is CVE-2024-4577\nbeing exploited in the wild?', 'who is scanning for this CVE?', 'show me actors probing\nCVE-2023-1389'. Returns severity, KEV (actively_exploited), event and unique-IP counts,\nthe top probing IPs with country/ASN/scanner tag, top ASNs, exploiter fingerprints,\nsample request paths and a daily timeline. window: 24h, 7d, 30d or 90d.\n`observed: false` with a note means we hold no detection pattern for that CVE, which is\nNOT the same as nobody scanning it. Do not use payload_search for a CVE id: the id is\nour tag for a pattern and never appears in the payload text.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"cve_id": {
"type": "string"
},
"limit": {
"default": 25,
"type": "integer"
},
"window": {
"default": "7d",
"type": "string"
}
},
"required": [
"cve_id"
],
"type": "object"
},
"name": "cve_lookup_tool"
},
{
"description": "Literal substring search over captured request text: URL path, request body,\nrequest headers and event summary. Use for: 'find attacks targeting /wp-admin',\n'find requests with this user agent string', 'what payloads hit port 80 last week'.\n\nIt matches text that literally appeared in the request, and nothing else. These do\nNOT work and will return an empty list:\n - a CVE id ('CVE-2024-4577'), which is our tag for a pattern, never payload text.\n Use cve_lookup instead. This tool rejects them rather than answering emptily.\n - a product or vendor name ('Cisco FMC', '7-Zip'), which appears in an advisory,\n not in the request. Search the endpoint it exposes instead, e.g. '/ccmadmin' or\n the vulnerable path.\n - a description of behaviour ('SQL injection attempts'). Search a marker that\n occurs in the traffic, e.g. 'UNION SELECT' or '../'.\n\nAn empty list is a real answer: it means no captured request in that window\ncontained the string. Widen since/until before concluding the activity does not\nexist. Free to call; volume is metered like every other tool.\nsince/until are ISO-8601 UTC strings.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 50,
"type": "integer"
},
"query": {
"type": "string"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"query",
"since",
"until"
],
"type": "object"
},
"name": "payload_search_tool"
},
{
"description": "Attack volume over time, bucketed by hour or day. Use for: 'show attack trends this\nweek', 'was there a spike on port 22?', 'how has SSH scanning changed?', 'attack volume\nfrom China over 30 days'. bucket: 'hour' or 'day'. Optional filters: filter_protocol\n('tls'/'''), filter_country (2-letter code), filter_dest_port. since/until ISO-8601 UTC.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"bucket": {
"default": "day",
"type": "string"
},
"filter_country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"filter_dest_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"filter_protocol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"since",
"until"
],
"type": "object"
},
"name": "attack_timeline_tool"
},
{
"description": "Full honeypot profile for an ASN (autonomous system / hosting provider). Use for:\n'tell me about AS202425', 'what is Vultr doing in my honeypots?', 'attacks from this\nhosting provider', 'attribute this IP to its network'. asn format: 'AS12345'.\nReturns: total events, unique IPs, top targeted ports, top source countries, top user\nagents, org name. since/until are ISO-8601 UTC strings.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"asn": {
"type": "string"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"asn",
"since",
"until"
],
"type": "object"
},
"name": "asn_enrich_tool"
},
{
"description": "Search honeypot activity by TLS, HTTP, or SSH fingerprint. Use when a user asks:\n'have you seen this JA4 fingerprint?', 'which IPs share this TLS fingerprint?', 'how\ncommon is this HASSH?', 'find all scanners with this SSH client fingerprint'. fp_type:\n'ja4' (TLS client), 'ja3' (legacy TLS client, MD5 \u2014 still keyed by many TI feeds),\n'ja4h' (HTTP client), 'hassh' (SSH client). since/until are ISO-8601 UTC strings.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"fingerprint": {
"type": "string"
},
"fp_type": {
"type": "string"
},
"limit": {
"default": 50,
"type": "integer"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"required": [
"fingerprint",
"fp_type",
"since",
"until"
],
"type": "object"
},
"name": "fingerprint_search_tool"
},
{
"description": "The population behind a single client fingerprint: how many source IPs carry it,\nacross how many networks (ASNs) and countries, the ports they hit, the top networks\nand a sample of the IPs, plus a read on whether it is concentrated (a likely\ncoordinated operation, many IPs on few networks) or spread thin (a common client).\nUse when a user asks: 'is this JA4 one botnet or a common tool?', 'how many networks\nuse this HASSH?', 'how specific / concentrated is this fingerprint?'. fp_type: 'ja4'\n(TLS), 'ja4h' (HTTP), 'hassh' (SSH). Covers the full retained window (no date range).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"fingerprint": {
"type": "string"
},
"fp_type": {
"type": "string"
}
},
"required": [
"fingerprint",
"fp_type"
],
"type": "object"
},
"name": "fingerprint_population_tool"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-06-18",
"session_id_present": false,
"transport": "streamable-http"
}
},
"remote_url": "https://mcp.honeylabs.net/mcp",
"server_card_payload": null,
"server_identifier": "honeylabshq/honeylabs-mcp"
}
Capabilities
- OAuth:
- DCR/CIMD:
- Prompts:
- Homepage: https://glama.ai/mcp/servers/jnlq7n0oeh
- Docs: none
- Support: https://github.com/honeylabshq/honeylabs-mcp
- Icon: none
- Remote endpoint: https://mcp.honeylabs.net/mcp
- Server card: none
Transport compliance drilldown
Issues: missing_session_id, missing_protocol_header, bad_protocol_not_rejected
Request association
Connector replay
Required-argument replay breaks
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument replay breaks detected. | ||
Output-schema replay breaks
| Tool | Removed properties | Added properties |
|---|---|---|
| No output-schema replay breaks detected. | ||