ai.nullary/nullary
Negative results intelligence for drug discovery — query measured failures via MCP.
Executive verdict
trustsnap_f47332e6dd3a2623Current trust snapshot
trustsnap_f47332e6dd3a2623Canonical machine links
Own this MCP?
Claim ownership, prove control with a GitHub, DNS, HTTP, MCP metadata, or email-domain challenge, revalidate now, publish a badge, configure monitoring, and unlock a verified server profile.
POST /v1/servers/ai.nullary/nullary/revalidateBadge embed
[](https://verify.sentinelsignal.io/servers/ai.nullary/nullary)
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. | |||
Production readiness class
Evidence confidence
Recommended for
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• Warningstep_up_auth_probe• Missingconnector_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• Warning
Evidence provenance
action_safety_probe• Error
Evidence provenance
tool_snapshot_probe• OKconnector_replay_probe• OK
Why compatibility is limited by client
Remediation checklist
OpenAI connectors expect OAuth for remote server auth.Dynamic client registration materially improves connector setup.search fetch only is not yet satisfiedoauth configured is not yet satisfiedadmin refresh required is not yet satisfiedsafe for company knowledge is not yet satisfied
Remediation checklist
search fetch only is not yet satisfiedoauth configured is not yet satisfiedadmin refresh required is not yet satisfiedsafe for company knowledge is not yet satisfiedsafe for messages api remote mcp is not yet satisfiedTransport compliance issues should be resolved before wider client rollout.
Remediation checklist
Add a clearer auth boundary around risky write actions.Add confirmation or dry-run semantics for risky actions.
Verdict traces
- No active alert triggers.
Client verdict trace table
| Verdict | Status | Checks | Winning source | Conflicts |
|---|---|---|---|---|
openai_connectors |
Partially client-compatible | initialize, tools_list, transport_compliance_probe, step_up_auth_probe, connector_replay_probe, request_association_probe | live_validation | none |
claude_desktop |
Client-compatible | initialize, tools_list, transport_compliance_probe | live_validation | none |
unsafe_for_write_actions |
Publishing blocked | action_safety_probe | live_validation | none |
snapshot_churn_risk |
Low | tool_snapshot_probe, connector_replay_probe | history | none |
Publishability policy profiles
- Search Fetch Only: No
- Write Actions Present: Yes
- Oauth Configured: No
- Admin Refresh Required: No
- Safe For Company Knowledge: No
- Safe For Messages Api Remote Mcp: No
- Search Fetch Only: No
- Write Actions Present: Yes
- Oauth Configured: No
- Admin Refresh Required: No
- Safe For Company Knowledge: No
- Safe For Messages Api Remote Mcp: No
Compatibility fixtures
- remote_http_endpoint: Passes
- oauth_discovery: Degraded
- frozen_tool_snapshot_refresh: Passes
- request_association: Passes
- remote_transport: Passes
- tool_discovery: Passes
- auth_connect: Passes
- safe_write_review: Degraded
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/previewPublic server reputation
Incident & change feed
| Timestamp | Event | Details |
|---|---|---|
| May 27, 2026 12:49:40 AM UTC | Latest validation: healthy | Score 76.0 with status healthy. |
| May 27, 2026 12:49:40 AM UTC | Score changed | Score delta -0.4 versus the previous run. |
| May 26, 2026 12:49:15 PM UTC | Score changed | Score delta +2.3 versus the previous run. |
| May 26, 2026 12:49:15 PM UTC | Tool snapshot changed | Added 25, removed 0, and changed 0 tool contracts. |
| May 26, 2026 12:49:15 PM UTC | Auth mode changed | Auth mode moved from unknown to public. |
| May 26, 2026 12:39:02 AM UTC | Score changed | Score delta +4.2 versus the previous run. |
Capabilities
- OAuth:
- DCR/CIMD:
- Prompts:
- Homepage: none
- Docs: none
- Support: none
- Icon: none
- Remote endpoint: https://mcp.nullary.ai/mcp
- Server card: none
Security posture
Tool capability & risk inventory
| Tool | Capabilities | Risk | Findings | Notes |
|---|---|---|---|---|
search_inactive_compounds |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_failed_selectivity |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_admet_failures |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_failed_guides |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_failed_essentiality_screens |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_ancestry_specific_failures |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_developability_failures |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_failed_clinical_antibodies |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_failed_peptide_therapeutics |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_peptide_stability_issues |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_failed_protacs |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_protac_e3_issues |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_failed_oligonucleotides |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_oligo_delivery_failures |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_failed_vaccines |
read write network filesystem export | High | arbitrary network egress bulk data access freeform input surface filesystem mutation | Safeguards hinted in metadata. |
search_vaccine_immunogenicity_failures |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_failed_adcs |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_adc_linker_failures |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_failed_bispecifics |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_bispecific_format_failures |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_admet_failures_all_modalities |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_drug_drug_interaction_failures |
read write export | Medium | bulk data access | Safeguards hinted in metadata. |
search_mechanism_failures |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_failed_replications |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_safety_failures |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_target_history |
read write network export | High | arbitrary network egress bulk data access freeform input surface | Safeguards hinted in metadata. |
search_indication_history |
read write export | Medium | bulk data access | Safeguards hinted in metadata. |
search_pathogen_history |
read write filesystem export | Medium | bulk data access freeform input surface filesystem mutation | Safeguards hinted in metadata. |
get_compound |
read write filesystem export | Medium | bulk data access filesystem mutation | Safeguards hinted in metadata. |
get_finding_provenance |
read | Low | none | No explicit safeguard hints detected. |
get_target_landscape |
read network | Medium | arbitrary network egress freeform input surface | No explicit safeguard hints detected. |
list_top_targets |
read export | Medium | bulk data access | No explicit safeguard hints detected. |
list_models |
read | Low | none | No explicit safeguard hints detected. |
get_model_card |
read network | Medium | arbitrary network egress freeform input surface | No explicit safeguard hints detected. |
get_coverage |
read | Low | none | No explicit safeguard hints detected. |
Write-action governance
Status detail: 25 high-risk tool(s) are exposed without a clear auth boundary; 29 safeguard(s) and 0 confirmation signal(s) detected.
| Tool | Risk | Flags | Safeguards |
|---|---|---|---|
search_inactive_compounds |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_failed_selectivity |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_admet_failures |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_failed_guides |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_failed_essentiality_screens |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_ancestry_specific_failures |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_developability_failures |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_failed_clinical_antibodies |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_failed_peptide_therapeutics |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_peptide_stability_issues |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_failed_protacs |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_protac_e3_issues |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_failed_oligonucleotides |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_oligo_delivery_failures |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_failed_vaccines |
High | arbitrary network egress bulk data access freeform input surface filesystem mutation | yes |
search_vaccine_immunogenicity_failures |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_failed_adcs |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_adc_linker_failures |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_failed_bispecifics |
High | arbitrary network egress bulk data access freeform input surface | yes |
search_bispecific_format_failures |
High | arbitrary network egress bulk data access freeform input surface | yes |
Action-controls diff
New actions
| Action | Risk | Flags |
|---|---|---|
| No newly added actions. | ||
Changed actions
| Action | Change types | Risk |
|---|---|---|
| No materially changed actions. | ||
Why this score?
Algorithmic score breakdown
Compatibility profiles
Connector URL: https://mcp.nullary.ai/mcp # No OAuth metadata detected. # Server: ai.nullary/nullary
{
"mcpServers": {
"nullary": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.nullary.ai/mcp"]
}
}
}
smithery mcp add "https://mcp.nullary.ai/mcp"
curl -sS https://mcp.nullary.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
| Severity | Remediation | Why it matters | Recommended 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
|
| 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 | 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
|
| High | Expose /.well-known/oauth-protected-resource | Without a protected-resource document, OAuth clients cannot discover auth requirements reliably. | Serve /.well-known/oauth-protected-resource and point it at your authorization server metadata.Playbook
|
| 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
|
| 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
|
| High | Stop asking users to paste secrets directly | Public MCP servers should prefer OAuth or browser-based auth guidance over in-band secret collection. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| 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
|
| 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
|
| 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. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| 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
|
| 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
|
Point loss breakdown
| Component | Current | Points missing |
|---|---|---|
| Recovery Semantics | 0/4 | -4.0 |
| Utility Coverage | 2/4 | -2.0 |
| Trust Confidence | 2/4 | -2.0 |
| Transport Compliance | 2/4 | -2.0 |
| Spec Recency | 2/4 | -2.0 |
| Security Hygiene | 2/4 | -2.0 |
| Resource Contract | 2/4 | -2.0 |
| Registry Consistency | 2/4 | -2.0 |
| Rate Limit Semantics | 2/4 | -2.0 |
| Prompt Contract | 2/4 | -2.0 |
| Least Privilege Scope | 2/4 | -2.0 |
| Auth Operability | 2/4 | -2.0 |
Validation diff
Regressed checks: none
Improved checks: none
| Component | Previous | Latest | Delta |
|---|---|---|---|
trust_confidence_score | 3.81 | 2.0 | -1.81 |
freshness_confidence_score | 3.0 | 4.0 | 1.0 |
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. | ||
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. | ||
Transport compliance drilldown
Issues: missing_session_id, missing_protocol_header
Request association
Utility coverage
Benchmark tasks
| Benchmark task | Status | Evidence |
|---|---|---|
| Discover tools | Passes |
|
| Read-only fetch flow | Degraded |
|
| OAuth-required connect | Degraded |
|
| Safe write flow with confirmation | Likely to fail |
|
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 | Score |
|---|---|---|---|
ai.nullary/nullary |
official_registry | yes | 75.97 |
Alias consolidation
Source disagreements
| Field | What differs | Observed values |
|---|---|---|
| No source disagreements detected. | ||
Install snippets
Connector URL: https://mcp.nullary.ai/mcp # No OAuth metadata detected. # Server: ai.nullary/nullary
{
"mcpServers": {
"nullary": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.nullary.ai/mcp"]
}
}
}
smithery mcp add "https://mcp.nullary.ai/mcp"
curl -sS https://mcp.nullary.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
tools/list, prompts/list, and resources/list checks.ai.nullary/nullary.Claims & monitoring
No verified maintainer claim recorded.
Alert routing
| Watch | Team | Channels | Minimum severity |
|---|---|---|---|
| No active watch destinations. | |||
Maintainer analytics
Maintainer response quality
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
Failures
oauth_authorization_serverno authorization serveroauth_protected_resourceClient error '404 Not Found' for url 'https://mcp.nullary.ai/.well-known/oauth-protected-resource' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404openid_configurationno authorization serverserver_cardClient error '404 Not Found' for url 'https://mcp.nullary.ai/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
Checks
| Check | Status | Latency | Evidence |
|---|---|---|---|
action_safety_probe |
Error | n/a | 25 high-risk tool(s); no clear auth boundary; safeguards=29; confirmation=none. |
advanced_capabilities_probe |
Warning | n/a | Only 1 capability signal(s): structured outputs. |
connector_publishability_probe |
Warning | n/a | Publishability blockers: action safety, server card. |
connector_replay_probe |
OK | n/a | Backward compatible with no breaking tool-surface changes. |
determinism_probe |
OK | 28.9 ms | Check completed |
initialize |
OK | 73.2 ms | Protocol 2025-03-26 |
interactive_flow_probe |
Missing | n/a | Check completed |
oauth_authorization_server |
Missing | n/a | no authorization server |
oauth_protected_resource |
Error | 36.8 ms | Client error '404 Not Found' for url 'https://mcp.nullary.ai/.well-known/oauth-protected-resource' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404 |
official_registry_probe |
OK | n/a | Check completed |
openid_configuration |
Missing | n/a | no authorization server |
probe_noise_resilience |
OK | 27.3 ms | Fetched https://mcp.nullary.ai/robots.txt |
prompt_get |
Missing | n/a | not advertised |
prompts_list |
Missing | 39.5 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 | 34.7 ms | not supported |
server_card |
Error | 222.4 ms | Client error '404 Not Found' for url 'https://mcp.nullary.ai/.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 |
Missing | n/a | No OAuth or incremental-scope signals detected. |
tool_snapshot_probe |
OK | n/a | Check completed |
tools_list |
OK | 40.9 ms | 35 tool(s) exposed |
transport_compliance_probe |
Warning | 36.5 ms | Issues: missing session id, missing protocol header (bad protocol=400). |
utility_coverage_probe |
Missing | 20.0 ms | No completions evidence; no pagination evidence; tasks missing. |
Raw evidence view
Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": false,
"confirmation_signals": [],
"safeguard_count": 29,
"summary": {
"bulk_access_tools": 30,
"capability_distribution": {
"export": 30,
"filesystem": 3,
"network": 27,
"read": 35,
"write": 29
},
"destructive_tools": 0,
"egress_tools": 27,
"exec_tools": 0,
"high_risk_tools": 25,
"risk_distribution": {
"critical": 0,
"high": 25,
"low": 3,
"medium": 7
},
"secret_tools": 0,
"tool_count": 35
}
},
"latency_ms": null,
"status": "error"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": false,
"resource_links": false,
"resources": false,
"roots": false,
"sampling": false,
"structured_outputs": true
},
"enabled": [
"structured_outputs"
],
"enabled_count": 1,
"initialize_capability_keys": [
"tools"
]
},
"latency_ms": null,
"status": "warning"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"action_safety",
"server_card"
],
"criteria": {
"action_safety": false,
"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": 25,
"tool_count": 35,
"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": "a97698569e8e9caee6bfea28f5ed1e2fd31f8c805a23921ff9d3784c76e68d34",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 28.87,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "text/event-stream",
"strict-transport-security": "max-age=63072000"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"tools": {}
},
"instructions": "Nullary serves negative results from drug discovery \u2014 failed compounds, terminated trials, failed CRISPR screens, antibody developability failures, and more. Search is organized by modality; every result carries provenance.",
"protocolVersion": "2025-03-26",
"serverInfo": {
"icons": [
{
"mimeType": "image/svg+xml",
"sizes": [
"any"
],
"src": "https://nullary.ai/icon.svg"
},
{
"mimeType": "image/png",
"sizes": [
"180x180"
],
"src": "https://nullary.ai/apple-icon"
}
],
"name": "Nullary",
"version": "1.0.1"
}
}
},
"url": "https://mcp.nullary.ai/mcp"
},
"latency_ms": 73.21,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": false,
"prompt_available": false,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "missing"
},
"oauth_authorization_server": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"oauth_protected_resource": {
"details": {
"error": "Client error '404 Not Found' for url 'https://mcp.nullary.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://mcp.nullary.ai/.well-known/oauth-protected-resource"
},
"latency_ms": 36.81,
"status": "error"
},
"official_registry_probe": {
"details": {
"direct_match": true,
"official_peer_count": 1,
"registry_identifier": "ai.nullary/nullary",
"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/html; charset=utf-8",
"strict-transport-security": "max-age=63072000"
},
"http_status": 404,
"url": "https://mcp.nullary.ai/robots.txt"
},
"latency_ms": 27.32,
"status": "ok"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "text/event-stream",
"strict-transport-security": "max-age=63072000"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found"
},
"id": 3,
"jsonrpc": "2.0"
},
"reason": "not_supported",
"url": "https://mcp.nullary.ai/mcp"
},
"latency_ms": 39.54,
"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": 1,
"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",
"strict-transport-security": "max-age=63072000"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found"
},
"id": 5,
"jsonrpc": "2.0"
},
"reason": "not_supported",
"url": "https://mcp.nullary.ai/mcp"
},
"latency_ms": 34.69,
"status": "missing"
},
"server_card": {
"details": {
"error": "Client error '404 Not Found' for url 'https://mcp.nullary.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://mcp.nullary.ai/.well-known/mcp/server-card.json"
},
"latency_ms": 222.4,
"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": false,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "missing"
},
"tool_snapshot_probe": {
"details": {
"added": [],
"changed_outputs": [],
"current_tool_count": 35,
"previous_tool_count": 35,
"removed": [],
"similarity": 1.0
},
"latency_ms": null,
"status": "ok"
},
"tools_list": {
"details": {
"headers": {
"content-type": "text/event-stream",
"strict-transport-security": "max-age=63072000"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search inactive compounds"
},
"description": "Inactive small-molecule compound-target pairs.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_inactive_compounds",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search failed selectivity"
},
"description": "Small molecules that failed selectivity.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_failed_selectivity",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search admet failures"
},
"description": "Small-molecule ADMET failures.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_admet_failures",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search failed guides"
},
"description": "Failed/ineffective CRISPR guides.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_failed_guides",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search failed essentiality screens"
},
"description": "Non-dependency / failed essentiality screens.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_failed_essentiality_screens",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search ancestry specific failures"
},
"description": "Ancestry-specific CRISPR failures.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_ancestry_specific_failures",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search developability failures"
},
"description": "Antibody developability failures.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_developability_failures",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search failed clinical antibodies"
},
"description": "Discontinued/terminated clinical antibodies.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_failed_clinical_antibodies",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search failed peptide therapeutics"
},
"description": "Failed peptide therapeutics.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_failed_peptide_therapeutics",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search peptide stability issues"
},
"description": "Peptide stability/half-life failures.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_peptide_stability_issues",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search failed protacs"
},
"description": "PROTACs that failed degradation/ternary/permeability.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_failed_protacs",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search protac e3 issues"
},
"description": "PROTAC E3-ligase recruitment / ternary failures.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_protac_e3_issues",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search failed oligonucleotides"
},
"description": "ASOs/siRNAs that failed engagement/developability.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_failed_oligonucleotides",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search oligo delivery failures"
},
"description": "Oligonucleotide delivery failures.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_oligo_delivery_failures",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search failed vaccines"
},
"description": "Failed/terminated vaccines (by pathogen/indication).",
"inputSchema": {
"properties": {
"indication": {
"description": "disease/indication",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_failed_vaccines",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search vaccine immunogenicity failures"
},
"description": "Failed vaccine immunogen designs.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_vaccine_immunogenicity_failures",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search failed adcs"
},
"description": "ADCs that failed at any stage.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_failed_adcs",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search adc linker failures"
},
"description": "ADC failures attributed to linker chemistry.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_adc_linker_failures",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search failed bispecifics"
},
"description": "Bispecifics that failed at any stage.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_failed_bispecifics",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search bispecific format failures"
},
"description": "Bispecific format/engineering failures.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_bispecific_format_failures",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search admet failures all modalities"
},
"description": "ADMET failures across ALL modalities.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_admet_failures_all_modalities",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search drug drug interaction failures"
},
"description": "Drug-drug interaction failures.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_drug_drug_interaction_failures",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search mechanism failures"
},
"description": "Approaches that failed for a mechanism (by target).",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_mechanism_failures",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search failed replications"
},
"description": "Findings that failed to replicate.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_failed_replications",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search safety failures"
},
"description": "Clinical/preclinical safety failures across modalities.",
"inputSchema": {
"properties": {
"compound": {
"description": "compound name, ChEMBL ID, or InChIKey",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"outcome": {
"description": "outcome filter (inactive, failed_safety, terminated, \u2026)",
"type": "string"
},
"target": {
"description": "UniProt accession or gene symbol",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_safety_failures",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search target history"
},
"description": "ALL failed approaches against a target across every modality.",
"inputSchema": {
"properties": {
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"target": {
"description": "UniProt accession or gene symbol (required)",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [
"target"
],
"type": "object"
},
"name": "search_target_history",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search indication history"
},
"description": "ALL failed approaches for an indication across every modality.",
"inputSchema": {
"properties": {
"indication": {
"description": "indication (required)",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [
"indication"
],
"type": "object"
},
"name": "search_indication_history",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search pathogen history"
},
"description": "Vaccine + antimicrobial + antibody failures for a pathogen.",
"inputSchema": {
"properties": {
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"pathogen": {
"description": "pathogen name (required)",
"type": "string"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [
"pathogen"
],
"type": "object"
},
"name": "search_pathogen_history",
"outputSchema": {
"properties": {
"coverage_note": {
"description": "Honest coverage caveat for thin Phase-1 modalities (present only when relevant).",
"type": "string"
},
"findings": {
"description": "Matching negative findings (same shape as the REST /findings endpoint).",
"items": {
"type": "object"
},
"type": "array"
},
"has_more": {
"description": "True when more results exist beyond this page.",
"type": "boolean"
},
"query_metadata": {
"description": "Echo of the resolved query \u2014 tool, limit, offset, and any applied presets.",
"type": "object"
},
"returned_count": {
"description": "Findings returned in this page.",
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Get compound"
},
"description": "A compound (structure, name, max clinical phase) + its full negative profile across modalities/sources.",
"inputSchema": {
"properties": {
"chembl_id": {
"description": "ChEMBL molecule ID, e.g. CHEMBL941.",
"type": "string"
},
"inchi_key": {
"description": "Compound InChIKey (provide one of inchi_key, chembl_id, or pubchem_cid).",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of findings to skip before this page, for pagination (default 0).",
"minimum": 0,
"type": "integer"
},
"pubchem_cid": {
"description": "PubChem Compound ID (CID).",
"type": "integer"
},
"tier": {
"default": "curated",
"description": "Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).",
"enum": [
"curated",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "get_compound",
"outputSchema": {
"description": "A compound's identity plus its full negative profile across modalities and sources.",
"properties": {
"compound": {
"description": "Identity: pref_name, chembl_id, inchi_key, max_phase.",
"type": "object"
},
"findings": {
"description": "Every negative finding for this molecule.",
"items": {
"type": "object"
},
"type": "array"
},
"query_metadata": {
"description": "Echo of the resolved query.",
"type": "object"
},
"returned_count": {
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Get finding provenance"
},
"description": "Full provenance + detail for a single finding by id.",
"inputSchema": {
"properties": {
"id": {
"description": "finding UUID",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "get_finding_provenance",
"outputSchema": {
"description": "A single finding with full provenance.",
"properties": {
"finding": {
"description": "The finding with source, DOI/PMID, assay context, and confidence tier.",
"type": "object"
},
"query_metadata": {
"description": "Echo of the resolved query.",
"type": "object"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Get target landscape"
},
"description": "Target 'graveyard' / exhaustion index: how many distinct compounds/agents have been tried against a target and failed, broken down by modality and outcome. Answers 'how picked-over is this target?'. Accepts a gene symbol (e.g. EGFR) or a UniProt accession (e.g. P00533).",
"inputSchema": {
"properties": {
"target": {
"description": "gene symbol or UniProt accession (required)",
"type": "string"
}
},
"required": [
"target"
],
"type": "object"
},
"name": "get_target_landscape",
"outputSchema": {
"description": "Target exhaustion index \u2014 distinct agents tried-and-failed, by modality and outcome.",
"properties": {
"by_modality": {
"description": "Per-modality failed-agent counts.",
"items": {
"type": "object"
},
"type": "array"
},
"by_outcome": {
"description": "Per-outcome counts.",
"items": {
"type": "object"
},
"type": "array"
},
"query_metadata": {
"description": "Echo of the resolved query.",
"type": "object"
},
"summary": {
"description": "One-line natural-language summary.",
"type": "string"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "List top targets"
},
"description": "Coverage browse: the most heavily-pursued ('graveyard') targets, ranked by recorded negative findings. Optional family filter (kinase, gpcr, protease, nuclear_receptor, ion_channel, transporter, phosphatase, other).",
"inputSchema": {
"properties": {
"family": {
"description": "target family filter (optional)",
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of findings to return (1\u2013100, default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "list_top_targets",
"outputSchema": {
"description": "The most heavily-pursued targets, ranked by recorded negative findings.",
"properties": {
"query_metadata": {
"description": "Echo of the resolved query.",
"type": "object"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "List models"
},
"description": "Summary of the Layer-1 inactivity-scoring model registry: how many per-target models, split by family, and median scaffold-split ROC-AUC.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_models",
"outputSchema": {
"description": "Summary of the Layer-1 model registry: counts by family and median scaffold-split ROC-AUC.",
"properties": {
"query_metadata": {
"description": "Echo of the resolved query.",
"type": "object"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Get model card"
},
"description": "Per-target Layer-1 model card: training counts and held-out scaffold-split metrics (ROC-AUC, PR-AUC, Brier, calibration). Accepts a gene symbol (e.g. EGFR) or UniProt accession (e.g. P00533).",
"inputSchema": {
"properties": {
"target": {
"description": "gene symbol or UniProt accession (required)",
"type": "string"
}
},
"required": [
"target"
],
"type": "object"
},
"name": "get_model_card",
"outputSchema": {
"description": "Per-target Layer-1 model card: training counts and held-out scaffold-split metrics.",
"properties": {
"query_metadata": {
"description": "Echo of the resolved query.",
"type": "object"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Get coverage"
},
"description": "Per-modality and per-source coverage stats (honest Phase-1 numbers).",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_coverage",
"outputSchema": {
"description": "Per-modality and per-source coverage counts.",
"properties": {
"by_modality": {
"description": "Per-modality finding counts.",
"items": {
"type": "object"
},
"type": "array"
},
"by_source_type": {
"description": "Per-source finding counts.",
"items": {
"type": "object"
},
"type": "array"
},
"curated_total": {
"type": "integer"
},
"query_metadata": {
"description": "Echo of the resolved query.",
"type": "object"
},
"total": {
"type": "integer"
}
},
"required": [
"query_metadata"
],
"type": "object"
}
}
]
}
},
"url": "https://mcp.nullary.ai/mcp"
},
"latency_ms": 40.9,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=63072000"
},
"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": 36.55,
"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": false,
"http_status": 200,
"probe_status": "missing"
}
},
"latency_ms": 20.0,
"status": "missing"
}
},
"failures": {
"oauth_authorization_server": {
"reason": "no_authorization_server"
},
"oauth_protected_resource": {
"error": "Client error '404 Not Found' for url 'https://mcp.nullary.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://mcp.nullary.ai/.well-known/oauth-protected-resource"
},
"openid_configuration": {
"reason": "no_authorization_server"
},
"server_card": {
"error": "Client error '404 Not Found' for url 'https://mcp.nullary.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://mcp.nullary.ai/.well-known/mcp/server-card.json"
}
},
"remote_url": "https://mcp.nullary.ai/mcp",
"server_card_payload": null,
"server_identifier": "ai.nullary/nullary"
}
Known versions
1.0.1
Validation history
| Timestamp | Status | Score | Latency | Tools |
|---|---|---|---|---|
| May 27, 2026 12:49:40 AM UTC | Healthy | 76.0 | 617.2 ms | 35 |
| May 26, 2026 12:49:15 PM UTC | Healthy | 76.4 | 1637.2 ms | 35 |
| May 26, 2026 12:39:02 AM UTC | Healthy | 74.1 | 1964.2 ms | 0 |
| May 25, 2026 12:38:52 AM UTC | Healthy | 70.0 | 1901.3 ms | 0 |
Validation timeline
| Validated | Summary | Score | Protocol | Auth mode | Tools | High-risk tools | Changes |
|---|---|---|---|---|---|---|---|
| May 27, 2026 12:49:40 AM UTC | Healthy | 76.0 | 2025-03-26 | public | 35 | 25 | none |
| May 26, 2026 12:49:15 PM UTC | Healthy | 76.4 | 2025-03-26 | public | 35 | 25 | auth_mode_changed write_surface_expanded tool_snapshot_changed |
| May 26, 2026 12:39:02 AM UTC | Healthy | 74.1 | unknown | unknown | 0 | 0 | none |
| May 25, 2026 12:38:52 AM UTC | Healthy | 70.0 | unknown | unknown | 0 | 0 | none |
Recent validation runs
| Started | Status | Summary | Latency | Checks |
|---|---|---|---|---|
| May 27, 2026 12:49:39 AM UTC | Completed | Healthy | 617.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 |
| May 26, 2026 12:49:13 PM UTC | Completed | Healthy | 1637.2 ms | |
| May 26, 2026 12:39:01 AM UTC | Completed | Healthy | 1964.2 ms | |
| May 25, 2026 12:38:51 AM UTC | Completed | Healthy | 1901.3 ms | |