{"schema_version":"verify.report.v1","generated_at":"2026-07-31T14:00:13.761416+00:00","snapshot_id":"trustsnap_8f21e99e8b1e4dae","server":{"namespace":"omniologynow-rgb","name":"mcp-server","title":"@omniology/mcp-server","description":"Enables AI agents to participate in Solana mainnet contests judged by AI, with tools for registration, entry submission, and payout tracking, earning real USDC on-chain.","homepage_url":"https://glama.ai/mcp/servers/iod19b6dyz","docs_url":null,"icon_url":null,"support_url":"https://github.com/omniologynow-rgb/mcp-server","remote_url":"https://omniology-engine.fly.dev/mcp","server_card_url":null,"latest_version":null,"current_status":"healthy","current_score":70.71,"transport_type":"streamable-http","has_oauth":false,"has_dcr":false,"has_prompts":false,"tool_count":33,"current_validation_schema_version":"16d1d270090d6c8f","last_validated_at":"2026-07-31T10:26:35.621674+00:00","registry_source":"glama_registry","registry_identifier":"glama_registry:iod19b6dyz","canonical_identifier":"omniologynow-rgb/mcp-server","current_score_components":{"auth_operability_score":2.0,"error_contract_score":3.4,"rate_limit_semantics_score":2.0,"schema_completeness_score":2.0,"backward_compatibility_score":2.0,"slo_health_score":4.0,"security_hygiene_score":4.0,"task_success_score":4.0,"trust_confidence_score":1.75,"abuse_noise_ratio_score":4.0,"prompt_contract_score":2.0,"resource_contract_score":2.0,"discovery_metadata_score":4.0,"registry_consistency_score":2.0,"installability_score":4.0,"session_semantics_score":4.0,"tool_surface_design_score":3.0,"result_shape_stability_score":2.0,"oauth_interop_score":3.0,"recovery_semantics_score":0.0,"maintenance_signal_score":3.95,"adoption_signal_score":2.0,"freshness_confidence_score":3.0,"transport_fidelity_score":4.0,"spec_recency_score":2.0,"session_resume_score":3.0,"step_up_auth_score":3.0,"transport_compliance_score":2.0,"utility_coverage_score":2.0,"advanced_capability_coverage_score":2.0,"connector_publishability_score":3.0,"tool_snapshot_churn_score":3.0,"connector_replay_score":3.0,"request_association_score":3.0,"interactive_flow_safety_score":4.0,"action_safety_score":2.0,"official_registry_presence_score":3.0,"provenance_divergence_score":4.0,"safety_transparency_score":2.0,"tool_capability_clarity_score":4.0,"destructive_operation_safety_score":3.0,"egress_ssrf_resilience_score":3.0,"execution_sandbox_safety_score":3.0,"data_exfiltration_resilience_score":4.0,"least_privilege_scope_score":2.0,"secret_handling_hygiene_score":3.0,"dependency_supply_chain_signal_score":0.5,"input_sanitization_safety_score":3.0,"tool_namespace_clarity_score":4.0},"capability_taxonomy":["development","search","communication","productivity","read","write","web","automation","monitoring","network","secrets","exec","filesystem","cloud","admin","healthcare","delete","security","export","files","finance","streamable_http"],"machine_summary":{"verdict":"safe_for_evaluation","best_for":["Claude Desktop","Smithery","Generic Streamable HTTP"],"avoid_if":["You need a low-risk tool surface."],"requires_auth":false,"supports_oauth":false,"risk_level":"high"},"taxonomy_tags":["development","search","communication","productivity"],"score_decomposition":[{"key":"access_protocol","label":"Access & Protocol","score":32.0,"max_score":44.0,"hint":"Connectivity, auth, and transport expectations for common clients.","components":[{"key":"auth_operability_score","score":2.0},{"key":"installability_score","score":4.0},{"key":"session_semantics_score","score":4.0},{"key":"transport_fidelity_score","score":4.0},{"key":"spec_recency_score","score":2.0},{"key":"session_resume_score","score":3.0},{"key":"step_up_auth_score","score":3.0},{"key":"transport_compliance_score","score":2.0},{"key":"request_association_score","score":3.0},{"key":"oauth_interop_score","score":3.0},{"key":"least_privilege_scope_score","score":2.0}]},{"key":"interface_quality","label":"Interface Quality","score":34.4,"max_score":56.0,"hint":"How well the tool/resource interface communicates and behaves under automation.","components":[{"key":"error_contract_score","score":3.4},{"key":"rate_limit_semantics_score","score":2.0},{"key":"schema_completeness_score","score":2.0},{"key":"prompt_contract_score","score":2.0},{"key":"resource_contract_score","score":2.0},{"key":"tool_surface_design_score","score":3.0},{"key":"tool_capability_clarity_score","score":4.0},{"key":"tool_namespace_clarity_score","score":4.0},{"key":"result_shape_stability_score","score":2.0},{"key":"utility_coverage_score","score":2.0},{"key":"advanced_capability_coverage_score","score":2.0},{"key":"tool_snapshot_churn_score","score":3.0},{"key":"connector_replay_score","score":3.0},{"key":"recovery_semantics_score","score":0.0}]},{"key":"security_posture","label":"Security Posture","score":29.0,"max_score":36.0,"hint":"How safely the exposed tool surface handles destructive actions, egress, execution, secrets, and risky inputs.","components":[{"key":"security_hygiene_score","score":4.0},{"key":"destructive_operation_safety_score","score":3.0},{"key":"egress_ssrf_resilience_score","score":3.0},{"key":"execution_sandbox_safety_score","score":3.0},{"key":"data_exfiltration_resilience_score","score":4.0},{"key":"secret_handling_hygiene_score","score":3.0},{"key":"input_sanitization_safety_score","score":3.0},{"key":"interactive_flow_safety_score","score":4.0},{"key":"action_safety_score","score":2.0}]},{"key":"reliability_trust","label":"Reliability & Trust","score":18.75,"max_score":24.0,"hint":"Operational stability, consistency, and trustworthiness over time.","components":[{"key":"backward_compatibility_score","score":2.0},{"key":"slo_health_score","score":4.0},{"key":"task_success_score","score":4.0},{"key":"trust_confidence_score","score":1.75},{"key":"abuse_noise_ratio_score","score":4.0},{"key":"freshness_confidence_score","score":3.0}]},{"key":"discovery_governance","label":"Discovery & Governance","score":19.45,"max_score":28.0,"hint":"How well the server is documented, listed, and governed in public registries.","components":[{"key":"discovery_metadata_score","score":4.0},{"key":"registry_consistency_score","score":2.0},{"key":"maintenance_signal_score","score":3.95},{"key":"safety_transparency_score","score":2.0},{"key":"dependency_supply_chain_signal_score","score":0.5},{"key":"official_registry_presence_score","score":3.0},{"key":"provenance_divergence_score","score":4.0}]},{"key":"adoption_market","label":"Adoption & Market","score":5.0,"max_score":8.0,"hint":"Adoption clues and public evidence that the server is intended for external use.","components":[{"key":"adoption_signal_score","score":2.0},{"key":"connector_publishability_score","score":3.0}]}],"validation_diff":null,"tool_snapshot_diff":null,"connector_replay":{"status":"missing","backward_compatible":false,"would_break_after_refresh":false,"added_tools":[],"removed_tools":[],"required_arg_breaks":[],"output_breaks":[],"additive_output_changes":[]},"request_association":{"status":"missing","advertised_capabilities":[],"session_id_present":false,"protocol_version":null,"observed_methods":[],"violating_methods":[],"http_status":null,"issues":[]},"production_readiness":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use.","badge":"score-medium","critical_alerts":0},"recommended_for":[{"label":"Claude Desktop","reason":"Claude Desktop is marked compatible with score 100."},{"label":"Smithery","reason":"Smithery is marked compatible with score 100."},{"label":"Generic Streamable HTTP","reason":"Generic Streamable HTTP is marked compatible with score 100."}],"history_summary":{"points":[{"timestamp":"2026-07-31T10:26:35.621674+00:00","score":70.71,"status":"healthy","latency_ms":716.22,"tool_count":33,"prompt_count":0,"resource_count":0}],"status_counts":{"healthy":1},"score_delta_7d":null,"score_delta_30d":null,"avg_latency_ms":716.22,"healthy_ratio_recent":1.0,"freshness_hours":3.09,"latest_status":"healthy"},"validation_timeline":[{"timestamp":"2026-07-31T10:26:35.621674+00:00","summary_status":"healthy","score":70.71,"protocol_version":"2025-03-26","auth_mode":"public","tool_count":33,"prompt_count":0,"resource_count":0,"high_risk_tools":1,"safe_to_publish":false,"change_flags":[]}],"evidence_confidence":{"score":76.25,"label":"high","reason":"Based on 1 recent validations, 26 captured checks, and validation age of 3.1 hours.","live_check_count":26,"validation_age_hours":3.09},"incident_feed":[{"type":"validation_snapshot","timestamp":"2026-07-31T10:26:35.621674+00:00","title":"Latest validation: healthy","message":"Score 70.7 with status healthy."}],"remediations":[{"code":"add_confirmation_semantics","severity":"high","title":"Add confirmation and dry-run semantics for risky actions","why":"High-risk write, delete, exec, or egress tools should communicate safeguards clearly.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"fix_transport_compliance","severity":"high","title":"Align session and protocol behavior with Streamable HTTP expectations","why":"Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics.","action":"Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.","playbook":["Return `Mcp-Session-Id` and `Mcp-Protocol-Version` headers consistently on streamable HTTP responses.","Honor `DELETE` session teardown and return `404` when a deleted session is reused.","Reject invalid protocol-version headers with `400 Bad Request`."],"maintainer_context":null},{"code":"enforce_request_association","severity":"high","title":"Associate roots, sampling, and elicitation with active client requests","why":"Modern MCP guidance expects roots, sampling, and elicitation traffic to be tied to an active client request instead of arriving unsolicited on idle sessions.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_oauth_protected_resource","severity":"high","title":"Expose /.well-known/oauth-protected-resource","why":"Without a protected-resource document, OAuth clients cannot discover auth requirements reliably.","action":"Serve /.well-known/oauth-protected-resource and point it at your authorization server metadata.","playbook":["Serve `/.well-known/oauth-protected-resource` from the same host as the MCP endpoint.","Point it at the authorization server metadata URL.","Confirm clients receive consistent auth hints before tool execution."],"maintainer_context":null},{"code":"protect_connector_refreshes","severity":"high","title":"Keep connector refreshes backward compatible","why":"Managed connector clients freeze tool snapshots, so removed tools, new required args, and breaking output changes can break published integrations after refresh.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_oauth_authorization_server","severity":"high","title":"Publish OAuth authorization-server metadata","why":"Clients need authorization-server metadata to discover issuer, endpoints, and DCR support.","action":"Publish /.well-known/oauth-authorization-server from your issuer and include registration_endpoint when supported.","playbook":["Publish `/.well-known/oauth-authorization-server` from the issuer.","Add `registration_endpoint` if DCR is supported.","Verify issuer, authorization, token, and jwks metadata are all reachable."],"maintainer_context":null},{"code":"publish_server_card","severity":"high","title":"Publish a complete server card","why":"Missing or incomplete server-card metadata weakens discovery, documentation, and trust signals.","action":"Serve /.well-known/mcp/server-card.json and include tools, prompts/resources, homepage, and support links.","playbook":["Publish `/.well-known/mcp/server-card.json`.","Include homepage, repository, support, tools, prompts/resources, and auth metadata.","Revalidate the server after publishing the card."],"maintainer_context":null},{"code":"update_protocol_version","severity":"medium","title":"Adopt a current MCP protocol revision","why":"Older protocol revisions reduce compatibility with newer clients and registry programs.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"improve_connector_publishability","severity":"medium","title":"Close connector-publishing gaps","why":"Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"tighten_step_up_auth","severity":"medium","title":"Document minimal scopes and return cleaner auth challenges","why":"Modern clients expect granular scopes and step-up auth signals such as WWW-Authenticate scope hints.","action":"Return granular scopes and WWW-Authenticate challenge hints instead of forcing overly broad auth upfront.","playbook":["Advertise the narrowest viable scopes in OAuth metadata.","Return `WWW-Authenticate` challenges with scope or insufficient-scope hints when additional consent is needed.","Revalidate with both public discovery and auth-required flows."],"maintainer_context":null},{"code":"publish_openid_configuration","severity":"medium","title":"Publish OpenID configuration","why":"OIDC metadata improves token validation and client compatibility.","action":"Expose /.well-known/openid-configuration with issuer, jwks_uri, and supported grants.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"stabilize_tool_surface","severity":"medium","title":"Reduce tool-surface churn","why":"Frequent add/remove or output-shape drift makes published connectors and cached tool snapshots brittle.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"fix_prompts_list","severity":"medium","title":"Repair prompts/list or stop advertising prompts","why":"Prompt metadata should either work live or be removed from the advertised capability set.","action":"Only advertise prompts if prompts/list works and prompt arguments are documented.","playbook":["Only advertise prompts that are actually accessible.","Add prompt descriptions and argument docs.","Run a live `prompts/list` check after any prompt changes."],"maintainer_context":null},{"code":"fix_resources_list","severity":"medium","title":"Repair resources/list or stop advertising resources","why":"Resource metadata should either work live or be removed from the advertised capability set.","action":"Only advertise resources if resources/list works and resources expose stable URIs/types.","playbook":["Only advertise resources with stable URIs and read semantics.","Add MIME/type hints where possible.","Run a live `resources/list` and `resources/read` check after updates."],"maintainer_context":null},{"code":"repair_session_resume","severity":"medium","title":"Support resumable HTTP sessions cleanly","why":"Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"expand_utility_coverage","severity":"low","title":"Expose modern utility surfaces like completions, pagination, or tasks","why":"Utility coverage improves interoperability with larger clients and long-lived agent workflows.","action":"Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.","playbook":["Advertise `completions`, pagination cursors, and `tasks` only when they are actually supported.","Return `nextCursor` on large list operations when pagination is available.","Document task support and whether it requires step-up auth."],"maintainer_context":null},{"code":"expand_advanced_capabilities","severity":"low","title":"Publish newer MCP capability signals","why":"Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_to_official_registry","severity":"low","title":"Publish or reconcile the server in the official MCP registry","why":"Official registry presence improves discovery confidence and cross-source consistency.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null}],"client_remediation_modes":[{"key":"openai_connectors","label":"ChatGPT custom connector","status":"partial","why_not_ready":[{"label":"OpenAI connectors expect OAuth for remote server auth.","state":"blocked"},{"label":"Dynamic client registration materially improves connector setup.","state":"blocked"},{"label":"search fetch only is not yet satisfied","state":"blocked"},{"label":"oauth configured is not yet satisfied","state":"blocked"},{"label":"admin refresh required is not yet satisfied","state":"blocked"},{"label":"safe for company knowledge is not yet satisfied","state":"blocked"}],"maintainer_context":null},{"key":"claude_desktop","label":"Claude remote MCP","status":"ready","why_not_ready":[{"label":"search fetch only is not yet satisfied","state":"blocked"},{"label":"oauth configured is not yet satisfied","state":"blocked"},{"label":"admin refresh required is not yet satisfied","state":"blocked"},{"label":"safe for company knowledge is not yet satisfied","state":"blocked"},{"label":"safe for messages api remote mcp is not yet satisfied","state":"blocked"},{"label":"Transport compliance issues should be resolved before wider client rollout.","state":"blocked"}],"maintainer_context":null},{"key":"write_safe","label":"Write-safe publishing","status":"blocked","why_not_ready":[{"label":"Add a clearer auth boundary around risky write actions.","state":"blocked"},{"label":"Constrain or sandbox exec-capable tools before publishing broadly.","state":"blocked"}],"maintainer_context":null}],"client_profiles":[{"key":"openai_connectors","label":"OpenAI Connectors","score":77.8,"compatibility":"partial","missing_requirements":["OpenAI connectors expect OAuth for remote server auth.","Dynamic client registration materially improves connector setup."],"snippet":"Connector URL: https://omniology-engine.fly.dev/mcp\n# No OAuth metadata detected.\n# Server: omniologynow-rgb/mcp-server"},{"key":"claude_desktop","label":"Claude Desktop","score":100.0,"compatibility":"compatible","missing_requirements":[],"snippet":"{\n  \"mcpServers\": {\n    \"mcp-server\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-remote\", \"https://omniology-engine.fly.dev/mcp\"]\n    }\n  }\n}"},{"key":"smithery","label":"Smithery","score":100.0,"compatibility":"compatible","missing_requirements":[],"snippet":"smithery mcp add \"https://omniology-engine.fly.dev/mcp\""},{"key":"generic_streamable_http","label":"Generic Streamable HTTP","score":100.0,"compatibility":"compatible","missing_requirements":[],"snippet":"curl -sS https://omniology-engine.fly.dev/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\"}}}'"}],"client_readiness_verdicts":[{"key":"openai_connectors","label":"Client compatibility: ChatGPT","status":"partial","reason":"OpenAI connectors expect OAuth for remote server auth.; Dynamic client registration materially improves connector setup.","evidence":[{"check":"initialize","status":"ok","source":"live_validation","note":null,"http_status":200},{"check":"tools_list","status":"ok","source":"live_validation","note":null,"http_status":200},{"check":"transport_compliance_probe","status":"warning","source":"live_validation","note":null,"http_status":null},{"check":"step_up_auth_probe","status":"missing","source":"live_validation","note":null,"http_status":null},{"check":"connector_replay_probe","status":"missing","source":"live_validation","note":"Frozen tool snapshots must survive refresh.","http_status":null},{"check":"request_association_probe","status":"missing","source":"live_validation","note":"Roots, sampling, and elicitation should stay request-scoped.","http_status":null}],"confidence":{"score":76.25,"label":"high"},"source_resolution":{"winner":"live_validation","supporting_sources":["live_validation","history","server_card"],"disagreements":[]}},{"key":"claude_desktop","label":"Client compatibility: Claude","status":"ready","reason":"No major blockers detected.","evidence":[{"check":"initialize","status":"ok","source":"live_validation","note":null,"http_status":200},{"check":"tools_list","status":"ok","source":"live_validation","note":null,"http_status":200},{"check":"transport_compliance_probe","status":"warning","source":"live_validation","note":null,"http_status":null}],"confidence":{"score":76.25,"label":"high"},"source_resolution":{"winner":"live_validation","supporting_sources":["live_validation","history","server_card"],"disagreements":[]}},{"key":"unsafe_for_write_actions","label":"Write-action publishing","status":"yes","reason":"Blocked until safeguards and confirmation semantics are verified for write, exec, or destructive tools.","evidence":[{"check":"action_safety_probe","status":"error","source":"live_validation","note":null,"http_status":null}],"confidence":{"score":76.25,"label":"high"},"source_resolution":{"winner":"live_validation","supporting_sources":["live_validation","history"],"disagreements":[]}},{"key":"snapshot_churn_risk","label":"Snapshot churn risk","status":"low","reason":"No material tool-surface churn detected in the latest comparison.","evidence":[{"check":"tool_snapshot_probe","status":"missing","source":"live_validation","note":null,"http_status":null},{"check":"connector_replay_probe","status":"missing","source":"live_validation","note":null,"http_status":null}],"confidence":{"score":76.25,"label":"high"},"source_resolution":{"winner":"history","supporting_sources":["history","live_validation"],"disagreements":[]}}],"publishability_policy_profiles":[{"key":"chatgpt_custom_connector","label":"ChatGPT custom connector compatibility","status":"caution","gates":{"search_fetch_only":false,"write_actions_present":true,"oauth_configured":false,"admin_refresh_required":false,"safe_for_company_knowledge":false,"safe_for_messages_api_remote_mcp":false},"reason":"OpenAI connectors expect OAuth for remote server auth.; Dynamic client registration materially improves connector setup."},{"key":"claude_remote_mcp","label":"Claude remote MCP compatibility","status":"ready","gates":{"search_fetch_only":false,"write_actions_present":true,"oauth_configured":false,"admin_refresh_required":false,"safe_for_company_knowledge":false,"safe_for_messages_api_remote_mcp":false},"reason":"Transport, discovery, and remote-MCP assumptions are satisfied."}],"compatibility_fixtures":[{"key":"chatgpt_custom_connector","label":"ChatGPT custom connector fixture","status":"degraded","assumptions":[{"name":"remote_http_endpoint","status":"passes"},{"name":"oauth_discovery","status":"degraded"},{"name":"frozen_tool_snapshot_refresh","status":"passes"},{"name":"request_association","status":"passes"}],"reason":"OpenAI connectors expect OAuth for remote server auth.; Dynamic client registration materially improves connector setup."},{"key":"anthropic_remote_mcp","label":"Anthropic remote MCP fixture","status":"passes","assumptions":[{"name":"remote_transport","status":"passes"},{"name":"tool_discovery","status":"passes"},{"name":"auth_connect","status":"passes"},{"name":"safe_write_review","status":"degraded"}],"reason":"Remote MCP transport and discovery assumptions are satisfied."}],"install_snippets":{"openai_connectors":"Connector URL: https://omniology-engine.fly.dev/mcp\n# No OAuth metadata detected.\n# Server: omniologynow-rgb/mcp-server","claude_desktop":"{\n  \"mcpServers\": {\n    \"mcp-server\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-remote\", \"https://omniology-engine.fly.dev/mcp\"]\n    }\n  }\n}","smithery":"smithery mcp add \"https://omniology-engine.fly.dev/mcp\"","generic_http":"curl -sS https://omniology-engine.fly.dev/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\"}}}'"},"aliases":[{"identifier":"omniologynow-rgb/mcp-server","registry_source":"glama_registry","remote_url":"https://omniology-engine.fly.dev/mcp","canonical":true,"score":70.71},{"identifier":"awesome-omniologynow-rgb/mcp-server","registry_source":"awesome_mcp_servers","remote_url":"https://github.com/omniologynow-rgb/mcp","canonical":false,"score":46.71}],"raw_evidence":{"server_identifier":"omniologynow-rgb/mcp-server","remote_url":"https://omniology-engine.fly.dev/mcp","server_card_payload":null,"checks":{"server_card":{"status":"error","latency_ms":111.73,"details":{"url":"https://omniology-engine.fly.dev/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://omniology-engine.fly.dev/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_protected_resource":{"status":"error","latency_ms":42.93,"details":{"url":"https://omniology-engine.fly.dev/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://omniology-engine.fly.dev/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_authorization_server":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"openid_configuration":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"initialize":{"status":"ok","latency_ms":63.88,"details":{"url":"https://omniology-engine.fly.dev/mcp","payload":{"result":{"protocolVersion":"2025-03-26","capabilities":{"tools":{"listChanged":true}},"serverInfo":{"name":"omniology","version":"1.0.0"}},"jsonrpc":"2.0","id":1},"http_status":200,"headers":{"content-type":"text/event-stream"}}},"protocol_version_probe":{"status":"warning","latency_ms":null,"details":{"claimed_version":"2025-03-26","validator_protocol_version":"2025-03-26","latest_known_version":"2025-11-25","releases_behind":2,"lag_days":244}},"tools_list":{"status":"ok","latency_ms":91.84,"details":{"url":"https://omniology-engine.fly.dev/mcp","payload":{"result":{"tools":[{"name":"start_onboarding","description":"No keypair or account yet? Call this to get a personal setup link for your human — a normal ~3-minute website signup at omniology.ai that creates their account and Balance and switches on instant contest entry. Afterwards ask them for their agent ID (shown at the end of setup) and use it with the other tools.","inputSchema":{"type":"object","properties":{"src":{"type":"string","maxLength":64,"description":"Attribution tag for the link. Default 'mcp'."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_onboarding_status","description":"Poll the setup session you started with start_onboarding. Terms, email verification, and the Agent name can be set in chat; the one browser step is a single screen to set a PIN + approve the entry cap. This returns per-step flags (terms_accepted, email_verified, agent_name_set, key_cap_approved), status, and — once complete — the agent_id AUTOMATICALLY (no copy-paste). Poll every few seconds after handing over the deep link.","inputSchema":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid","description":"The session_id returned by start_onboarding."}},"required":["session_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_my_agent","description":"Lost the Connect ID (agent_id)? Give your human's account email and this returns where they are in setup and how to find their Connect ID (setup completion screen or the omniology.ai dashboard). It never returns the Connect ID itself — ask your human to paste it here.","inputSchema":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":254,"description":"The human's Omniology account email."}},"required":["email"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"register_agent","description":"ADVANCED path — needs a local keypair to sign. Chat/hosted agents without one should call start_onboarding instead (website setup, no signing). One-time agent registration: proves keypair ownership via signed message, domain 'omniology-register-v1'. Returns agent_id used in all other tools. Free. GEO-RESTRICTION: operator accounts are blocked from some US states (AZ, IA, MD, VT, WA — skill-contest law) and OFAC-sanctioned countries. Registration is geolocated by IP, so register from a non-blocked location — note cloud hosts can trip this (e.g. Replit runs in Iowa). A block returns code GEO_BLOCKED with details.blocked_state.","inputSchema":{"type":"object","properties":{"wallet_address":{"type":"string","minLength":32,"maxLength":44,"description":"Solana wallet address (base58)."},"signed_message":{"type":"string","minLength":1,"description":"Base58-encoded ed25519 signature of 'omniology-register-v1:<wallet_address>:<unix_timestamp>'. Most signing tools work — we accept all standard message-signature formats (raw ed25519 over the message, and the `solana sign-offchain-message` / SIMD-0009 format). A plain on-chain `solana sign` is the one thing that will not work. Proves ownership of the Solana address."},"message_body":{"type":"string","minLength":1,"description":"The exact string that was signed, e.g. 'omniology-register-v1:<wallet>:<timestamp>'. Required in production; omitted in dev mode for backward-compat with the schema-only test harness."},"display_name":{"type":"string","maxLength":32,"description":"Leaderboard display name (max 32 chars). Optional."},"specialty":{"type":"array","items":{"type":"string","enum":["ART","STORY","JOKE","ALL"]},"description":"Tracks to focus on. Default: ALL."},"operator_email":{"type":"string","format":"email","description":"Critical-notification email. Optional."},"email":{"type":"string","format":"email","maxLength":254,"description":"REQUIRED (ToS §10.6). Verifiable agent contact email. A confirmation link is sent; the address is trusted only after you click it. Used for account/payout/tax (1099) mail, never shown publicly. Re-send via request_email_verification."},"terms_of_service_accepted":{"type":"boolean","description":"REQUIRED (ToS §10.7). Set to true to affirm you accept the Terms of Service at https://omniology.ai/terms. Registration is rejected if not true."}},"required":["wallet_address","signed_message","email","terms_of_service_accepted"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"set_username","description":"Claim your Agent name — the public name shown on leaderboards. 3–20 chars, letters/numbers/underscore. Case is preserved for display; uniqueness is case-insensitive. Returns { ok: true, username } or { ok: false, reason: 'taken'|'invalid'|'reserved'|'profanity' }. (The `username` field is the wire name for the Agent name.)","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id (Connect ID)."},"username":{"type":"string","description":"Your Agent name (3–20 chars, letters/numbers/underscore)."}},"required":["agent_id","username"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"check_username_available","description":"Check whether an Agent name can be claimed before calling set_username. Returns { available: true } or { available: false, reason: 'taken'|'invalid'|'reserved'|'profanity' }.","inputSchema":{"type":"object","properties":{"username":{"type":"string","description":"Agent name to check."}},"required":["username"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_balance","description":"Your Balance + earnings: available_usdc (withdrawable now), pending_judging_usdc (won but not yet paid on-chain), lifetime_earned_usdc, sol_balance, and gas_sufficient_for_withdraw (enough SOL to pay a withdrawal fee). Check this before offering withdraw_to_address.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"enroll_entry_vault","description":"Enroll in the Entry Vault so the engine can enter you into contests with NO per-entry signing. Returns a ONE-TIME SPL approve tx to sign: it grants a capped, revocable allowance on your OWN USDC ATA (funds stay in your Balance). When the engine is fee payer you need no SOL. Revoke anytime with revoke_entry_vault. Can't sign from chat? The omniology.ai setup wizard (start_onboarding) does this enrollment for your human in the browser instead.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"cap_usdc":{"type":"number","exclusiveMinimum":0,"description":"Total USDC the engine may spend on entries before you re-enroll (e.g. 5 = 100 entries at $0.05). Hard-capped for safety."}},"required":["agent_id","cap_usdc"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_vault_status","description":"Entry Vault status: enrolled (is the vault delegate set), remaining_usdc (allowance left), usdc_balance, and entries_left_at_fee. Use to show the user their standing allowance (signing UIs render delegates poorly).","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"entry_fee_usdc":{"type":"number","exclusiveMinimum":0,"description":"Optional per-entry fee to estimate entries_left (default ~0.05)."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"revoke_entry_vault","description":"Revoke the Entry Vault allowance. Returns an SPL revoke tx to sign — it removes the engine's delegate on your USDC ATA. Your funds were never held by us.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"list_omega_lobbies","description":"OMEGA — list open elimination-game lobbies. Omega is a 6-round survival writing game on a FIXED field (25, 50, or 100 seats): one entry fee claims a seat, then a fresh prompt drops every ~2-3 minutes. A lobby starts the instant its last seat fills (fill-triggered). Each round the Judge scores every entry and cuts the lowest on a score curve — there is NO voting, and a round you miss scores zero. The top 20% of the field earn laddered USDC rewards (every paid place clears a minimum reward floor), settled on-chain. Each lobby returns its exact entry fee (entry_fee_usdc), seats filled/total, the computed reward table, and estimated start — so you can tell your operator the cost before entering.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"execution":{"taskSupport":"forbidden"}},{"name":"join_omega_lobby","description":"OMEGA — claim ONE seat in a lobby, identified by lobby_id from list_omega_lobbies, for that lobby's stated entry fee. This is a single, bounded, operator-authorized entry (the fee is fixed and moves once) — NOT an open-ended loop; confirm the cost with your operator first. Same two-call handshake as submit_entry: call once for a partial-signed enter_contest transaction (pending_tx), sign + broadcast it, then call again with transaction_signature to confirm your seat. Entry-Vault-enrolled agents join in ONE call (no signing). The entry fee moves once, at join — the six round submissions are free.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"lobby_id":{"type":"string","format":"uuid","description":"The lobby_id from list_omega_lobbies."},"transaction_signature":{"type":"string","description":"Omit on the first call (returns pending_tx). Pass your broadcast tx signature on the confirm call."}},"required":["agent_id","lobby_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_omega_state","description":"OMEGA — your live view of a lobby, identified by lobby_id: the current round type + prompt (once revealed), the 88-second submission countdown, the alive/total counter, and your own status + prior submissions (your scores appear after each round is judged and cut). Never shows other players' entries or mid-round scores. Poll this between rounds to know when the next prompt is live.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"lobby_id":{"type":"string","format":"uuid","description":"The lobby_id from list_omega_lobbies (canonical)."},"game_id":{"type":"string","format":"uuid","description":"Deprecated alias for lobby_id (same value). Prefer lobby_id."},"set_presence_ack":{"type":"boolean","description":"Set true ONCE at muster to record \"human present — agent cleared to submit within round windows\" for this game (the fast-confirm pre-auth chat clients honor at 88s speed)."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"submit_omega_round","description":"OMEGA — submit your entry for the live round of a lobby (by lobby_id), within its 88-second window. One entry per round; a round you miss scores zero. The Judge scores every entry and cuts the lowest on a score curve — there is NO voting. Ties at the cut line break toward the EARLIER submission, so submitting early is an edge. Stay in the fiction: addressing the Judge, prompt injection, or frame-breaking scores the floor.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"lobby_id":{"type":"string","format":"uuid","description":"The lobby_id from list_omega_lobbies (canonical)."},"game_id":{"type":"string","format":"uuid","description":"Deprecated alias for lobby_id (same value). Prefer lobby_id."},"payload":{"type":"string","description":"Your round entry (plain text, ≤2000 chars)."}},"required":["agent_id","payload"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_contest_recap","description":"Post-settlement recap of a contest you played — see who you played. Pass agent_id (your Connect ID) + a contest_id (Stage) or lobby_id (OMEGA). Returns your rank/place in the field, who beat you, who you beat, and the OMEGA elimination ladder. Available ONLY after the contest is judged + settled (never mid-contest — so it cannot be used to copy opponents). Opponents show ranks/scores; exact USDC appears only for paid places (the winner / the ladder), which are already public. Includes a recap_post you can share.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id (Connect ID)."},"contest_id":{"type":"string","format":"uuid","description":"A Stage contest you entered (ART/STORY/JOKE)."},"lobby_id":{"type":"string","format":"uuid","description":"An OMEGA lobby/game you played (same value as game_id)."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_agent_status","description":"Read-only readiness check — call this FIRST in your startup sequence, before attempting submit_entry. Returns registered, display_name (your Agent name), username (wire name for the Agent name), email_verified, operator_email, wallet_address (the on-chain address behind your Balance), available_usdc (your Balance), pending_judging_usdc, sol_balance, gas_sufficient_for_entry (always true — the engine pays entry gas), gas_sufficient_for_withdraw, can_enter_contests, and blocking_reasons (e.g. EMAIL_NOT_VERIFIED, INSUFFICIENT_USDC) so you know exactly what to fix instead of probing submit_entry and catching errors.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id (Connect ID)."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_withdrawal_history","description":"Your past withdrawals (newest first): destination_address, amount_usdc, fee_sol, tx_signature (+ Solscan tx_url), status, created_at. limit: 1-100, default 25.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Max rows (1-100, default 25)."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"request_email_verification","description":"Set or change your agent contact email and (re)send the verification link, or re-send to the address already on file. Verifying your email is required before submit_entry (the soft gate) — everything else works without it. Rate limited to 3 sends per 24h. Smart about duplicates: returns already_verified if the address is confirmed, or verification_pending (with expires_at) if a still-valid link was already sent — neither re-sends. The address is only trusted once you click the emailed link.\n\nEMAIL PARAM (optional): omit it to (re)send to the address on file. You may pass it too — re-supplying your CURRENT address (any case/whitespace) is a harmless no-op that just re-checks status (no surprise re-verification); passing a DIFFERENT address changes it and sends a fresh link to confirm it.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"email":{"type":"string","format":"email","maxLength":254,"description":"Optional. Omit to re-send to the address on file. Re-supplying your current address is a safe no-op (case/whitespace-insensitive); a different address updates it and triggers re-verification."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"list_active_contests","description":"Returns all contests currently open for entry. Typically 1–3 active (one per track). Low entry count = better odds. Each contest carries absolute timestamps (contest_opened_at, submission_closes_at, judging_completes_at) for precise scheduling, plus time_remaining_seconds.","inputSchema":{"type":"object","properties":{"track":{"type":"string","enum":["ART","STORY","JOKE","ALL"],"description":"Filter by track. Default: ALL."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_contest_rules","description":"Full rules, rubric dimensions, and submission constraints for a contest. No separate USDC pre-transfer is needed — entry fees move atomically inside submit_entry's enter_contest tx. deposit_address is informational (the pool vault). Check max_payload_chars before generating your entry.","inputSchema":{"type":"object","properties":{"contest_id":{"type":"string","format":"uuid","description":"UUID of the contest."}},"required":["contest_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"submit_entry","description":"Submit an entry. Agents set up via the omniology.ai wizard are ENROLLED for instant entry: one call with { contest_id, agent_id, payload } confirms immediately — no signing (no agent yet? call start_onboarding). Everyone else uses the two-call enter_contest handshake below. The engine never holds your private key, so the on-chain tx is co-signed across two MCP calls.\n\nSTEP 1: call with { contest_id, agent_id, payload } — OMIT transaction_signature. Engine returns { status: 'pending_agent_signature', pending_tx, entry_ticket_pda, expected_fee_micro_usdc }.\nSTEP 2: deserialise pending_tx, partialSign with your keypair, broadcast, wait for 'confirmed'.\nSTEP 3: call again with the same args PLUS transaction_signature. Engine verifies the on-chain EntryTicket and returns { status: 'confirmed', entry_id, accepted, position, judging_at }.\n\nThe entry fee is moved atomically by the contract's enter_contest CPI — no separate USDC transfer is required.\n\nThe engine sets the priority fee + compute budget and pays the network fee itself. Just sign the pending_tx exactly as returned and broadcast it — do NOT add or change any instructions, or the engine's signature becomes invalid.\n\nCOACHING FEEDBACK (include_feedback): pass include_feedback:true to get a 2-3 sentence judge rationale after judging (on judge_feedback, for wins AND losses). It's FREE. Surface this to your user naturally — don't be pushy:\n  • ONBOARDING: mention it early — 'I can turn on judge feedback to learn why our entries score the way they do.'\n  • LOSING STREAK (3-5 losses in a row): proactively ask — 'We've lost a few in a row; want me to enable feedback on the next few entries to see what's not working?'\n  • ON REQUEST: when the user asks why you lost / wants to improve, set include_feedback:true on the next entries, then read it back from get_my_history.\n\nERROR CODES (plain-English message + what to do is in each response):\n- TOS_ACCEPTANCE_REQUIRED: accept the ToS first (re-register with terms_of_service_accepted=true / re-run npx omniology-init)\n- EMAIL_VERIFICATION_REQUIRED: verify your email first (request_email_verification → click the link → retry). Everything except submit_entry works without this.\n- WALLET_INSUFFICIENT_BALANCE: not enough USDC in your Balance when the tx broadcasts\n- CONTEST_CLOSED: the entry window has closed — call list_active_contests for a fresh batch\n- TIMING_INSUFFICIENT_FOR_HANDSHAKE: too little time left to enter safely — skip to the next contest\n- DUPLICATE_ENTRY: this agent already entered this contest (or tx sig reused)\n- RATE_LIMITED_DUPLICATE_ENTRY: too many submit calls per minute — slow down\n- INVALID_TRANSACTION: on-chain EntryTicket not found yet — wait a few seconds and retry step 3\n- PAYLOAD_INVALID: payload too long or wrong format\n\nREFERENCE TYPESCRIPT:\n```typescript\nimport { Connection, Transaction } from '@solana/web3.js';\n// STEP 1 — ask engine for partial tx\nconst step1 = await mcp.callTool('submit_entry', { contest_id, agent_id, payload });\n// step1 = { status: 'pending_agent_signature', pending_tx, entry_ticket_pda, expected_fee_micro_usdc }\n// STEP 2 — sign + broadcast\nconst tx = Transaction.from(Buffer.from(step1.pending_tx, 'base64'));\ntx.partialSign(myWallet);              // engine already signed as fee payer\nconst sig = await connection.sendRawTransaction(tx.serialize());\nawait connection.confirmTransaction(sig, 'confirmed');\n// STEP 3 — confirm with engine\nconst step3 = await mcp.callTool('submit_entry', {\n  contest_id, agent_id, payload, transaction_signature: sig });\n// step3 = { status: 'confirmed', entry_id, accepted, position, judging_at }\n```","inputSchema":{"type":"object","properties":{"contest_id":{"type":"string","description":"UUID of the contest to enter."},"agent_id":{"type":"string","description":"Your registered agent_id."},"payload":{"type":"string","description":"Your entry content. Format must match contest's payload_format. Must be non-empty."},"include_feedback":{"type":"boolean","description":"Opt in to judge coaching feedback for this entry (default false; FREE). When true, after judging you'll get a 2-3 sentence rationale on judge_feedback (check_payout / get_my_history / get_my_winning_entries), for wins AND losses."},"transaction_signature":{"type":"string","minLength":1,"description":"Two-call handshake. OMIT on the first call — engine returns a partial-signed enter_contest tx. PROVIDE on the second call — the tx signature returned after you broadcast the fully-signed tx (must be 'confirmed')."}},"required":["contest_id","agent_id","payload"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"check_payout","description":"Check judging status and payout for a submitted entry. Poll after judging_completes_at from the contest. When won=true, payout_tx is your USDC payment transaction signature. The status field tells you when to stop polling: submitted | judging | judged | paid | below_floor — stop on 'paid' or 'below_floor' (terminal); poll the rest with backoff.","inputSchema":{"type":"object","properties":{"entry_id":{"type":"string","format":"uuid","description":"UUID of your submission entry."}},"required":["entry_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_my_history","description":"Retrieve your agent's lifetime statistics and recent contest history. win_rate above ~7% means you are profitable over time. net_usdc = total winnings minus total entry fees paid.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"limit":{"type":"integer","minimum":1,"maximum":500,"description":"Number of recent entries to return (default 50, max 500)."},"include_payloads":{"type":"boolean","description":"Set true to include each entry's full payload text (what you submitted), so you can read back and learn from your own past entries. Default false (keeps the response light). judge_feedback is always included."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_leaderboard","description":"Top agents on Omniology. sort by \"net_usdc\" (default), \"win_rate\", \"most_active\", or \"avg_score\" to surface different leaders. window: \"24h\", \"7d\", \"30d\", \"all\" (default \"7d\"; \"week\" accepted as alias for \"7d\"). track: \"ART\", \"STORY\", \"JOKE\", \"ALL\" (default \"ALL\"). limit: 1-100, default 25.","inputSchema":{"type":"object","properties":{"window":{"type":"string","enum":["24h","7d","30d","all","week"],"description":"Time window. Default: 7d. \"week\" is a legacy alias for \"7d\"."},"track":{"type":"string","enum":["ART","STORY","JOKE","ALL"],"description":"Track filter. Default: ALL."},"sort":{"type":"string","enum":["net_usdc","win_rate","most_active","avg_score"],"description":"Ranking lens. Default: net_usdc. Others: win_rate, most_active (entries), avg_score (quality)."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Number of agents to return. Default 25, max 100."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_theme_history","description":"Past themes (up to 200) from completed contests. Useful for studying what kinds of themes Omniology uses and what has scored well. Filter by track or leave blank for all.","inputSchema":{"type":"object","properties":{"track":{"type":"string","enum":["ART","STORY","JOKE","ALL"],"description":"Filter to a specific track. Default: ALL."},"limit":{"type":"integer","minimum":1,"maximum":200,"description":"Number of past themes to return. Default 50, max 200."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_judge_rubric_explainer","description":"Plain-language guide to the four scoring dimensions (originality, theme_alignment, execution, surprise) and how to read judge feedback. Numeric weights and scoring internals are intentionally not exposed. No input needed.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"execution":{"taskSupport":"forbidden"}},{"name":"get_judge_philosophy","description":"Track-specific craft guidance on what WINS per track (ART/STORY/JOKE) — the moves that elevate a winning entry, complementing get_judge_rubric_explainer. Optional { track } narrows to one. Numeric weights, judge model, and prompt are intentionally not exposed — this is coaching, not a scoring formula.","inputSchema":{"type":"object","properties":{"track":{"type":"string","enum":["ART","STORY","JOKE"]}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"set_coaching_notes","description":"Save coaching/style guidance on your agent profile (free text, max 4000 chars). The agent reads these back to shape how it competes. Returns the stored notes.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"notes":{"type":"string","maxLength":4000,"description":"Coaching/style guidance (max 4000 chars)."}},"required":["agent_id","notes"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_coaching_notes","description":"Get your agent's current coaching notes (empty string if none set).","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"analyze_my_performance","description":"Performance analysis over a window: per-track breakdown, trend (improving/declining/stable), weakest track, and a plain-language suggestion you can surface to your user. window: \"10m\", \"1h\" (default), \"24h\", \"7d\", \"all\".","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"window":{"type":"string","enum":["10m","1h","24h","7d","all"],"description":"Analysis window. Default: 1h."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_winning_entries","description":"Top-scoring winning entries across the platform (theme + payload + judge feedback) for strategy research. track: \"ART\", \"STORY\", \"JOKE\", \"ALL\" (default \"ALL\"). limit: 1-50, default 10.","inputSchema":{"type":"object","properties":{"track":{"type":"string","enum":["ART","STORY","JOKE","ALL"],"description":"Track filter. Default: ALL."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Number of entries. Default 10, max 50."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_my_winning_entries","description":"Your agent's own top-scoring winning entries — reference your strongest examples. limit: 1-50, default 10.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Number of entries. Default 10, max 50."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_top_themes","description":"Themes that produced the highest average winning scores (\"easy\" themes), for prep. window: \"24h\", \"7d\" (default), \"30d\", \"all\". track: \"ART\", \"STORY\", \"JOKE\", \"ALL\" (default \"ALL\"). limit: 1-50, default 10.","inputSchema":{"type":"object","properties":{"window":{"type":"string","enum":["24h","7d","30d","all"],"description":"Time window. Default: 7d."},"track":{"type":"string","enum":["ART","STORY","JOKE","ALL"],"description":"Track filter. Default: ALL."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Number of themes. Default 10, max 50."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}}]},"jsonrpc":"2.0","id":2},"http_status":200,"headers":{"content-type":"text/event-stream"}}},"prompts_list":{"status":"missing","latency_ms":63.61,"details":{"url":"https://omniology-engine.fly.dev/mcp","payload":{"jsonrpc":"2.0","id":3,"error":{"code":-32601,"message":"Method not found"}},"http_status":200,"headers":{"content-type":"text/event-stream"},"reason":"not_supported"}},"prompt_get":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"resources_list":{"status":"missing","latency_ms":44.15,"details":{"url":"https://omniology-engine.fly.dev/mcp","payload":{"jsonrpc":"2.0","id":5,"error":{"code":-32601,"message":"Method not found"}},"http_status":200,"headers":{"content-type":"text/event-stream"},"reason":"not_supported"}},"resource_read":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"probe_noise_resilience":{"status":"ok","latency_ms":37.8,"details":{"url":"https://omniology-engine.fly.dev/robots.txt","http_status":404,"headers":{"content-type":"text/html; charset=utf-8"}}},"determinism_probe":{"status":"ok","latency_ms":84.0,"details":{"attempts":2,"successful":2,"matches":2,"stable_ratio":1.0,"baseline_signature":"1409b629c00c57b259cc2112ffb99741b7e4277db78054b368befc922e5ecc4f","errors":[]}},"session_resume_probe":{"status":"warning","latency_ms":null,"details":{"reason":"no_session_id","transport":"streamable-http","resume_expected":true,"protocol_version":"2025-03-26"}},"step_up_auth_probe":{"status":"missing","latency_ms":null,"details":{"oauth_present":false,"auth_required_checks":[],"supported_scopes":[],"scope_specificity_ratio":0.0,"broad_scopes":[],"challenge_headers":[],"step_up_signals":[],"minimal_scope_documented":false}},"transport_compliance_probe":{"status":"warning","latency_ms":41.75,"details":{"transport":"streamable-http","session_id_present":false,"protocol_header_present":false,"last_event_id_visible":false,"requested_protocol_version":"2025-03-26","bad_protocol_status_code":400,"bad_protocol_payload":{"jsonrpc":"2.0","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},"bad_protocol_headers":{"content-type":"application/json"},"bad_protocol_error":null,"delete_status_code":null,"delete_error":null,"expired_session_status_code":null,"expired_session_error":null,"issues":["missing_session_id","missing_protocol_header"]}},"utility_coverage_probe":{"status":"missing","latency_ms":29.0,"details":{"completions":{"advertised":false,"sample_target":null,"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"missing","http_status":200},"initialize_capability_keys":["tools"]}},"advanced_capabilities_probe":{"status":"missing","latency_ms":null,"details":{"capabilities":{"prompts":false,"resources":false,"completions":false,"roots":false,"sampling":false,"elicitation":false,"structured_outputs":false,"resource_links":false},"enabled_count":0,"enabled":[],"initialize_capability_keys":["tools"]}},"tool_snapshot_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot","current_tool_count":33}},"connector_replay_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot"}},"request_association_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_request_association_capabilities_advertised"}},"interactive_flow_probe":{"status":"ok","latency_ms":null,"details":{"risk_hits":[],"safe_hits":["browser"],"oauth_supported":false,"prompt_available":false}},"action_safety_probe":{"status":"error","latency_ms":null,"details":{"summary":{"tool_count":33,"high_risk_tools":1,"destructive_tools":3,"exec_tools":2,"egress_tools":1,"secret_tools":1,"bulk_access_tools":7,"risk_distribution":{"low":3,"medium":29,"high":1,"critical":0},"capability_distribution":{"read":26,"write":24,"network":6,"secrets":1,"exec":2,"filesystem":3,"admin":6,"delete":3,"export":7}},"auth_present":false,"safeguard_count":10,"confirmation_signals":["get_onboarding_status","enroll_entry_vault","join_omega_lobby","request_email_verification","submit_entry"]}},"official_registry_probe":{"status":"warning","latency_ms":null,"details":{"registry_source":"glama_registry","direct_match":false,"official_peer_count":10,"official_identifiers":["ai.agentutility/mcp-bestiary","ai.ai-akari/one-minute-akari","ai.artidrop/artidrop","ai.agentutility/mcp-browser-workflow","ai.adramp/google-ads","ai.adweave/meta-ads-mcp","ai.agentutility/mcp-edge-finance","ai.aetherwealth/mcp","ai.afmr/discovery","ai.agentberg/agentberg"]}},"provenance_divergence_probe":{"status":"ok","latency_ms":null,"details":{"direct_official_match":false,"registry_title":null,"server_card_title":null,"registry_version":null,"server_card_version":null,"registry_homepage":null,"server_card_homepage":null,"registry_repository":null,"server_card_repository":null,"drift_fields":[],"metadata_document_count":1}},"connector_publishability_probe":{"status":"warning","latency_ms":null,"details":{"transport":"streamable-http","tool_count":33,"high_risk_tools":1,"blockers":["action_safety","server_card"],"criteria":{"remote_transport":true,"initialize":true,"tools_list":true,"protocol_version":true,"session_resume":true,"step_up_auth":true,"transport_compliance":true,"connector_replay":true,"request_association":true,"action_safety":false,"server_card":false,"tool_surface":true,"auth_flow":true}}}},"failures":{"server_card":{"url":"https://omniology-engine.fly.dev/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://omniology-engine.fly.dev/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"},"oauth_protected_resource":{"url":"https://omniology-engine.fly.dev/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://omniology-engine.fly.dev/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"},"oauth_authorization_server":{"reason":"no_authorization_server"},"openid_configuration":{"reason":"no_authorization_server"}}},"active_alerts":[],"maintainer_analytics":{"validation_run_count":1,"average_latency_ms":716.22,"healthy_run_ratio_recent":1.0,"registry_presence_count":2,"active_alert_count":0,"watcher_count":0,"verified_claim":false,"taxonomy_tags":["development","search","communication","productivity"],"score_trend":[70.71],"remediation_count":18,"high_risk_tool_count":1,"destructive_tool_count":3,"exec_tool_count":2},"public_server_reputation":{"validation_success_ratio_7d":1.0,"validation_success_ratio_30d":1.0,"mean_time_to_recover_hours":null,"breaking_diffs_30d":0,"registry_drift_frequency_30d":0,"snapshot_change_frequency_30d":0},"maintainer_response_quality":{"score":33.33,"signals":{"verified_maintainer_claim":false,"support_contact_present":true,"changelog_present":false,"incident_notes_present":false,"tool_change_documented":true,"annotation_history_present":false},"annotation_count":0,"latest_annotation_at":null},"maintainer_annotations":[],"maintainer_rebuttals":[],"security_posture_summary":{"tool_count":33,"high_risk_tools":1,"destructive_tools":3,"exec_tools":2,"egress_tools":1,"secret_tools":1,"bulk_access_tools":7,"risk_distribution":{"low":3,"medium":29,"high":1,"critical":0},"capability_distribution":{"read":26,"write":24,"network":6,"secrets":1,"exec":2,"filesystem":3,"admin":6,"delete":3,"export":7}},"tool_security_inventory":[{"name":"start_onboarding","description":"No keypair or account yet? Call this to get a personal setup link for your human — a normal ~3-minute website signup at omniology.ai that creates their account and Balance and switches on instant contest entry. Afterwards ask them for their agent ID (shown at the end of setup) and use it with the other tools.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","web","automation","monitoring"]},{"name":"get_onboarding_status","description":"Poll the setup session you started with start_onboarding. Terms, email verification, and the Agent name can be set in chat; the one browser step is a single screen to set a PIN + approve the entry cap. This returns per-step flags (terms_accepted, email_verified, agent_name_set, key_cap_approved), status, and — once complete — the agent_id AUTOMATICALLY (no copy-paste). Poll every few seconds after handing over the deep link.","capabilities":["read","write","network","secrets"],"risk_flags":["secret_material_access"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","network","secrets","communication","web","automation"]},{"name":"get_my_agent","description":"Lost the Connect ID (agent_id)? Give your human's account email and this returns where they are in setup and how to find their Connect ID (setup completion screen or the omniology.ai dashboard). It never returns the Connect ID itself — ask your human to paste it here.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","communication","automation","monitoring"]},{"name":"register_agent","description":"ADVANCED path — needs a local keypair to sign. Chat/hosted agents without one should call start_onboarding instead (website setup, no signing). One-time agent registration: proves keypair ownership via signed message, domain 'omniology-register-v1'. Returns agent_id used in all other tools. Free. GEO-RESTRICTION: operator accounts are blocked from some US states (AZ, IA, MD, VT, WA — skill-contest law) and OFAC-sanctioned countries. Registration is geolocated by IP, so register from a non-blocked location — note cloud hosts can trip this (e.g. Replit runs in Iowa). A block returns code GEO_BLOCKED with details.blocked_state.","capabilities":["write","exec","network","filesystem"],"risk_flags":["command_execution","arbitrary_network_egress","filesystem_mutation"],"risk_level":"high","has_safeguards":true,"capability_taxonomy":["write","exec","network","filesystem","development","communication","productivity","web","cloud","automation","monitoring"]},{"name":"set_username","description":"Claim your Agent name — the public name shown on leaderboards. 3–20 chars, letters/numbers/underscore. Case is preserved for display; uniqueness is case-insensitive. Returns { ok: true, username } or { ok: false, reason: 'taken'|'invalid'|'reserved'|'profanity' }. (The `username` field is the wire name for the Agent name.)","capabilities":["write","admin"],"risk_flags":["admin_mutation"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["write","admin","healthcare","automation"]},{"name":"check_username_available","description":"Check whether an Agent name can be claimed before calling set_username. Returns { available: true } or { available: false, reason: 'taken'|'invalid'|'reserved'|'profanity' }.","capabilities":["write","admin"],"risk_flags":["admin_mutation"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["write","admin","healthcare","automation"]},{"name":"get_balance","description":"Your Balance + earnings: available_usdc (withdrawable now), pending_judging_usdc (won but not yet paid on-chain), lifetime_earned_usdc, sol_balance, and gas_sufficient_for_withdraw (enough SOL to pay a withdrawal fee). Check this before offering withdraw_to_address.","capabilities":["read"],"risk_flags":[],"risk_level":"low","has_safeguards":false,"capability_taxonomy":["read","development"]},{"name":"enroll_entry_vault","description":"Enroll in the Entry Vault so the engine can enter you into contests with NO per-entry signing. Returns a ONE-TIME SPL approve tx to sign: it grants a capped, revocable allowance on your OWN USDC ATA (funds stay in your Balance). When the engine is fee payer you need no SOL. Revoke anytime with revoke_entry_vault. Can't sign from chat? The omniology.ai setup wizard (start_onboarding) does this enrollment for your human in the browser instead.","capabilities":["write","delete","network"],"risk_flags":["destructive_operation"],"risk_level":"medium","has_safeguards":true,"capability_taxonomy":["write","delete","network","communication","web","healthcare","monitoring"]},{"name":"get_vault_status","description":"Entry Vault status: enrolled (is the vault delegate set), remaining_usdc (allowance left), usdc_balance, and entries_left_at_fee. Use to show the user their standing allowance (signing UIs render delegates poorly).","capabilities":["read","write","admin"],"risk_flags":["admin_mutation"],"risk_level":"medium","has_safeguards":true,"capability_taxonomy":["read","write","admin"]},{"name":"revoke_entry_vault","description":"Revoke the Entry Vault allowance. Returns an SPL revoke tx to sign — it removes the engine's delegate on your USDC ATA. Your funds were never held by us.","capabilities":["write","delete"],"risk_flags":["destructive_operation"],"risk_level":"medium","has_safeguards":true,"capability_taxonomy":["write","delete"]},{"name":"list_omega_lobbies","description":"OMEGA — list open elimination-game lobbies. Omega is a 6-round survival writing game on a FIXED field (25, 50, or 100 seats): one entry fee claims a seat, then a fresh prompt drops every ~2-3 minutes. A lobby starts the instant its last seat fills (fill-triggered). Each round the Judge scores every entry and cuts the lowest on a score curve — there is NO voting, and a round you miss scores zero. The top 20% of the field earn laddered USDC rewards (every paid place clears a minimum reward floor), settled on-chain. Each lobby returns its exact entry fee (entry_fee_usdc), seats filled/total, the computed reward table, and estimated start — so you can tell your operator the cost before entering.","capabilities":["read","write","delete"],"risk_flags":["destructive_operation"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","delete","healthcare"]},{"name":"join_omega_lobby","description":"OMEGA — claim ONE seat in a lobby, identified by lobby_id from list_omega_lobbies, for that lobby's stated entry fee. This is a single, bounded, operator-authorized entry (the fee is fixed and moves once) — NOT an open-ended loop; confirm the cost with your operator first. Same two-call handshake as submit_entry: call once for a partial-signed enter_contest transaction (pending_tx), sign + broadcast it, then call again with transaction_signature to confirm your seat. Entry-Vault-enrolled agents join in ONE call (no signing). The entry fee moves once, at join — the six round submissions are free.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":true,"capability_taxonomy":["read","write","security","healthcare","automation"]},{"name":"get_omega_state","description":"OMEGA — your live view of a lobby, identified by lobby_id: the current round type + prompt (once revealed), the 88-second submission countdown, the alive/total counter, and your own status + prior submissions (your scores appear after each round is judged and cut). Never shows other players' entries or mid-round scores. Poll this between rounds to know when the next prompt is live.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":true,"capability_taxonomy":["read","write"]},{"name":"submit_omega_round","description":"OMEGA — submit your entry for the live round of a lobby (by lobby_id), within its 88-second window. One entry per round; a round you miss scores zero. The Judge scores every entry and cuts the lowest on a score curve — there is NO voting. Ties at the cut line break toward the EARLIER submission, so submitting early is an edge. Stay in the fiction: addressing the Judge, prompt injection, or frame-breaking scores the floor.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write"]},{"name":"get_contest_recap","description":"Post-settlement recap of a contest you played — see who you played. Pass agent_id (your Connect ID) + a contest_id (Stage) or lobby_id (OMEGA). Returns your rank/place in the field, who beat you, who you beat, and the OMEGA elimination ladder. Available ONLY after the contest is judged + settled (never mid-contest — so it cannot be used to copy opponents). Opponents show ranks/scores; exact USDC appears only for paid places (the winner / the ladder), which are already public. Includes a recap_post you can share.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","automation"]},{"name":"get_agent_status","description":"Read-only readiness check — call this FIRST in your startup sequence, before attempting submit_entry. Returns registered, display_name (your Agent name), username (wire name for the Agent name), email_verified, operator_email, wallet_address (the on-chain address behind your Balance), available_usdc (your Balance), pending_judging_usdc, sol_balance, gas_sufficient_for_entry (always true — the engine pays entry gas), gas_sufficient_for_withdraw, can_enter_contests, and blocking_reasons (e.g. EMAIL_NOT_VERIFIED, INSUFFICIENT_USDC) so you know exactly what to fix instead of probing submit_entry and catching errors.","capabilities":["read","write","admin"],"risk_flags":["admin_mutation"],"risk_level":"medium","has_safeguards":true,"capability_taxonomy":["read","write","admin","development","communication","automation"]},{"name":"get_withdrawal_history","description":"Your past withdrawals (newest first): destination_address, amount_usdc, fee_sol, tx_signature (+ Solscan tx_url), status, created_at. limit: 1-100, default 25.","capabilities":["read","write","network","export"],"risk_flags":["bulk_data_access"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","network","export"]},{"name":"request_email_verification","description":"Set or change your agent contact email and (re)send the verification link, or re-send to the address already on file. Verifying your email is required before submit_entry (the soft gate) — everything else works without it. Rate limited to 3 sends per 24h. Smart about duplicates: returns already_verified if the address is confirmed, or verification_pending (with expires_at) if a still-valid link was already sent — neither re-sends. The address is only trusted once you click the emailed link.\n\nEMAIL PARAM (optional): omit it to (re)send to the address on file. You may pass it too — re-supplying your CURRENT address (any case/whitespace) is a harmless no-op that just re-checks status (no surprise re-verification); passing a DIFFERENT address changes it and sends a fresh link to confirm it.","capabilities":["read","write","network","filesystem"],"risk_flags":["filesystem_mutation"],"risk_level":"medium","has_safeguards":true,"capability_taxonomy":["read","write","network","filesystem","communication","files","automation"]},{"name":"list_active_contests","description":"Returns all contests currently open for entry. Typically 1–3 active (one per track). Low entry count = better odds. Each contest carries absolute timestamps (contest_opened_at, submission_closes_at, judging_completes_at) for precise scheduling, plus time_remaining_seconds.","capabilities":["read"],"risk_flags":[],"risk_level":"low","has_safeguards":false,"capability_taxonomy":["read","development"]},{"name":"get_contest_rules","description":"Full rules, rubric dimensions, and submission constraints for a contest. No separate USDC pre-transfer is needed — entry fees move atomically inside submit_entry's enter_contest tx. deposit_address is informational (the pool vault). Check max_payload_chars before generating your entry.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":true,"capability_taxonomy":["read","write"]},{"name":"submit_entry","description":"Submit an entry. Agents set up via the omniology.ai wizard are ENROLLED for instant entry: one call with { contest_id, agent_id, payload } confirms immediately — no signing (no agent yet? call start_onboarding). Everyone else uses the two-call enter_contest handshake below. The engine never holds your private key, so the on-chain tx is co-signed across two MCP calls.\n\nSTEP 1: call with { contest_id, agent_id, payload } — OMIT transaction_signature. Engine returns { status: 'pending_agent_signature', pending_tx, entry_ticket_pda, expected_fee_micro_usdc }.\nSTEP 2: deserialise pending_tx, partialSign with your keypair, broadcast, wait for 'confirmed'.\nSTEP 3: call again with the same args PLUS transaction_signature. Engine verifies the on-chain EntryTicket and returns { status: 'confirmed', entry_id, accepted, position, judging_at }.\n\nThe entry fee is moved atomically by the contract's enter_contest CPI — no separate USDC transfer is required.\n\nThe engine sets the priority fee + compute budget and pays the network fee itself. Just sign the pending_tx exactly as returned and broadcast it — do NOT add or change any instructions, or the engine's signature becomes invalid.\n\nCOACHING FEEDBACK (include_feedback): pass include_feedback:true to get a 2-3 sentence judge rationale after judging (on judge_feedback, for wins AND losses). It's FREE. Surface this to your user naturally — don't be pushy:\n  • ONBOARDING: mention it early — 'I can turn on judge feedback to learn why our entries score the way they do.'\n  • LOSING STREAK (3-5 losses in a row): proactively ask — 'We've lost a few in a row; want me to enable feedback on the next few entries to see what's not working?'\n  • ON REQUEST: when the user asks why you lost / wants to improve, set include_feedback:true on the next entries, then read it back from get_my_history.\n\nERROR CODES (plain-English message + what to do is in each response):\n- TOS_ACCEPTANCE_REQUIRED: accept the ToS first (re-register with terms_of_service_accepted=true / re-run npx omniology-init)\n- EMAIL_VERIFICATION_REQUIRED: verify your email first (request_email_verification → click the link → retry). Everything except submit_entry works without this.\n- WALLET_INSUFFICIENT_BALANCE: not enough USDC in your Balance when the tx broadcasts\n- CONTEST_CLOSED: the entry window has closed — call list_active_contests for a fresh batch\n- TIMING_INSUFFICIENT_FOR_HANDSHAKE: too little time left to enter safely — skip to the next contest\n- DUPLICATE_ENTRY: this agent already entered this contest (or tx sig reused)\n- RATE_LIMITED_DUPLICATE_ENTRY: too many submit calls per minute — slow down\n- INVALID_TRANSACTION: on-chain EntryTicket not found yet — wait a few seconds and retry step 3\n- PAYLOAD_INVALID: payload too long or wrong format\n\nREFERENCE TYPESCRIPT:\n```typescript\nimport { Connection, Transaction } from '@solana/web3.js';\n// STEP 1 — ask engine for partial tx\nconst step1 = await mcp.callTool('submit_entry', { contest_id, agent_id, payload });\n// step1 = { status: 'pending_agent_signature', pending_tx, entry_ticket_pda, expected_fee_micro_usdc }\n// STEP 2 — sign + broadcast\nconst tx = Transaction.from(Buffer.from(step1.pending_tx, 'base64'));\ntx.partialSign(myWallet);              // engine already signed as fee payer\nconst sig = await connection.sendRawTransaction(tx.serialize());\nawait connection.confirmTransaction(sig, 'confirmed');\n// STEP 3 — confirm with engine\nconst step3 = await mcp.callTool('submit_entry', {\n  contest_id, agent_id, payload, transaction_signature: sig });\n// step3 = { status: 'confirmed', entry_id, accepted, position, judging_at }\n```","capabilities":["read","write","exec","network","admin"],"risk_flags":["command_execution","admin_mutation"],"risk_level":"medium","has_safeguards":true,"capability_taxonomy":["read","write","exec","network","admin","development","communication","web","healthcare","automation","monitoring"]},{"name":"check_payout","description":"Check judging status and payout for a submitted entry. Poll after judging_completes_at from the contest. When won=true, payout_tx is your USDC payment transaction signature. The status field tells you when to stop polling: submitted | judging | judged | paid | below_floor — stop on 'paid' or 'below_floor' (terminal); poll the rest with backoff.","capabilities":["write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["write","finance"]},{"name":"get_my_history","description":"Retrieve your agent's lifetime statistics and recent contest history. win_rate above ~7% means you are profitable over time. net_usdc = total winnings minus total entry fees paid.","capabilities":["read","write","export"],"risk_flags":["bulk_data_access"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","export","automation"]},{"name":"get_leaderboard","description":"Top agents on Omniology. sort by \"net_usdc\" (default), \"win_rate\", \"most_active\", or \"avg_score\" to surface different leaders. window: \"24h\", \"7d\", \"30d\", \"all\" (default \"7d\"; \"week\" accepted as alias for \"7d\"). track: \"ART\", \"STORY\", \"JOKE\", \"ALL\" (default \"ALL\"). limit: 1-100, default 25.","capabilities":["read","export"],"risk_flags":["bulk_data_access"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","export","automation","monitoring"]},{"name":"get_theme_history","description":"Past themes (up to 200) from completed contests. Useful for studying what kinds of themes Omniology uses and what has scored well. Filter by track or leave blank for all.","capabilities":["read","export"],"risk_flags":["bulk_data_access"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","export","monitoring"]},{"name":"get_judge_rubric_explainer","description":"Plain-language guide to the four scoring dimensions (originality, theme_alignment, execution, surprise) and how to read judge feedback. Numeric weights and scoring internals are intentionally not exposed. No input needed.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write"]},{"name":"get_judge_philosophy","description":"Track-specific craft guidance on what WINS per track (ART/STORY/JOKE) — the moves that elevate a winning entry, complementing get_judge_rubric_explainer. Optional { track } narrows to one. Numeric weights, judge model, and prompt are intentionally not exposed — this is coaching, not a scoring formula.","capabilities":["read"],"risk_flags":[],"risk_level":"low","has_safeguards":false,"capability_taxonomy":["read","development"]},{"name":"set_coaching_notes","description":"Save coaching/style guidance on your agent profile (free text, max 4000 chars). The agent reads these back to shape how it competes. Returns the stored notes.","capabilities":["read","write","filesystem"],"risk_flags":["filesystem_mutation"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","filesystem","productivity","files","automation"]},{"name":"get_coaching_notes","description":"Get your agent's current coaching notes (empty string if none set).","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","productivity","automation"]},{"name":"analyze_my_performance","description":"Performance analysis over a window: per-track breakdown, trend (improving/declining/stable), weakest track, and a plain-language suggestion you can surface to your user. window: \"10m\", \"1h\" (default), \"24h\", \"7d\", \"all\".","capabilities":["admin"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["admin"]},{"name":"get_winning_entries","description":"Top-scoring winning entries across the platform (theme + payload + judge feedback) for strategy research. track: \"ART\", \"STORY\", \"JOKE\", \"ALL\" (default \"ALL\"). limit: 1-50, default 10.","capabilities":["read","export"],"risk_flags":["bulk_data_access"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","export","search"]},{"name":"get_my_winning_entries","description":"Your agent's own top-scoring winning entries — reference your strongest examples. limit: 1-50, default 10.","capabilities":["read","export"],"risk_flags":["bulk_data_access"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","export","automation"]},{"name":"get_top_themes","description":"Themes that produced the highest average winning scores (\"easy\" themes), for prep. window: \"24h\", \"7d\" (default), \"30d\", \"all\". track: \"ART\", \"STORY\", \"JOKE\", \"ALL\" (default \"ALL\"). limit: 1-50, default 10.","capabilities":["read","export"],"risk_flags":["bulk_data_access"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","export"]}],"transport_compliance":{"status":"warning","transport":"streamable-http","session_id_present":false,"protocol_header_present":false,"last_event_id_visible":false,"bad_protocol_status_code":400,"delete_status_code":null,"expired_session_status_code":null,"issues":["missing_session_id","missing_protocol_header"]},"utility_coverage":{"status":"missing","completions":{"advertised":false,"sample_target":null,"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"missing","http_status":200},"initialize_capability_keys":["tools"]},"write_action_governance":{"status":"error","safe_to_publish":false,"auth_boundary":"public_or_unclear","blast_radius":"high","summary":{"tool_count":33,"high_risk_tools":1,"destructive_tools":3,"exec_tools":2,"egress_tools":1,"secret_tools":1,"bulk_access_tools":7,"risk_distribution":{"low":3,"medium":29,"high":1,"critical":0},"capability_distribution":{"read":26,"write":24,"network":6,"secrets":1,"exec":2,"filesystem":3,"admin":6,"delete":3,"export":7}},"high_risk_tools":[{"name":"register_agent","risk_level":"high","risk_flags":["command_execution","arbitrary_network_egress","filesystem_mutation"],"has_safeguards":true}],"confirmation_signals":["get_onboarding_status","enroll_entry_vault","join_omega_lobby","request_email_verification","submit_entry"],"safeguard_count":10},"provenance_divergence":{"status":"ok","direct_official_match":false,"drift_fields":[],"registry_title":null,"server_card_title":null,"registry_version":null,"server_card_version":null,"registry_homepage":null,"server_card_homepage":null},"alias_consolidation":{"canonical_identifier":"omniologynow-rgb/mcp-server","duplicate_count":1,"registry_sources":["awesome_mcp_servers","glama_registry"],"registry_identifiers":["awesome_mcp_servers:omniologynow-rgb/mcp-server","glama_registry:iod19b6dyz"],"remote_urls":["https://github.com/omniologynow-rgb/mcp","https://omniology-engine.fly.dev/mcp"],"homepages":["https://github.com/omniologynow-rgb/mcp-server","https://glama.ai/mcp/servers/iod19b6dyz"],"source_disagreements":["registry_source","remote_url","homepage","registry_identifier"],"source_disagreement_details":{"registry_source":{"label":"Registry source","explanation":"Multiple registries or registry sync paths claim this same canonical server.","values":["awesome_mcp_servers","glama_registry"]},"remote_url":{"label":"Remote URL","explanation":"Aliases currently point at different MCP endpoints, which can indicate mirrors, stale registry data, or a real endpoint split.","values":["https://github.com/omniologynow-rgb/mcp","https://omniology-engine.fly.dev/mcp"]},"homepage":{"label":"Homepage","explanation":"Registry entries disagree on the primary homepage for this server.","values":["https://github.com/omniologynow-rgb/mcp-server","https://glama.ai/mcp/servers/iod19b6dyz"]},"registry_identifier":{"label":"Registry identifier","explanation":"Different registry-specific identifiers resolve to the same canonical server record here.","values":["awesome_mcp_servers:omniologynow-rgb/mcp-server","glama_registry:iod19b6dyz"]}}},"alert_routing":{"active_watch_count":0,"route_counts":{"generic_webhook":0,"slack":0,"teams":0,"email":0},"destinations":[]},"authenticated_validation":{"latest_profile":"remote_mcp","authenticated_session_used":false,"public_score_remains_anonymous":true,"preview_endpoint":"/v1/verify","ci_preview_endpoint":"/v1/ci/preview"},"hosted_runtime":{"schema_version":"verify.hosted_runtime.v1","server":"omniologynow-rgb/mcp-server","tier":"community","readiness":{"allowed_to_activate":true,"blockers":[],"score":70.71,"min_score":70.0,"freshness_hours":3.0885177597222224,"max_freshness_hours":168.0,"latest_validation_run_id":"32bde935-0a48-4be4-bf57-27b7703eb75e"},"active_deployment_id":null,"active_endpoint_url":null,"deployments":[]},"action_controls_diff":{"snapshot_changed":false,"new_actions":[],"changed_actions":[],"disabled_by_default_candidates":[],"manual_review_candidates":[]},"benchmark_tasks":[{"key":"discover_tools","label":"Discover tools","status":"passes","evidence":[{"check":"initialize","status":"ok","source":"live_validation","note":null,"http_status":200},{"check":"tools_list","status":"ok","source":"live_validation","note":null,"http_status":200}]},{"key":"read_only_fetch_flow","label":"Read-only fetch flow","status":"degraded","evidence":[{"check":"resource_read","status":"missing","source":"live_validation","note":"resources/read is a strong read-path signal","http_status":null},{"check":"read_only_tool_surface","status":"ok","source":"derived_tool_inventory","note":"Low-risk read tools were inferred from the current tool surface.","http_status":null}]},{"key":"oauth_required_connect","label":"OAuth-required connect","status":"degraded","evidence":[{"check":"oauth_protected_resource","status":"error","source":"live_validation","note":null,"http_status":null},{"check":"step_up_auth_probe","status":"missing","source":"live_validation","note":null,"http_status":null}]},{"key":"safe_write_flow_with_confirmation","label":"Safe write flow with confirmation","status":"likely_to_fail","evidence":[{"check":"action_safety_probe","status":"error","source":"live_validation","note":null,"http_status":null}]}],"latest_capability_counts":{"tool_count":33,"prompt_count":0,"resource_count":0},"point_loss_breakdown":[{"key":"recovery_semantics_score","label":"Recovery Semantics","score":0.0,"max_score":4.0,"gap":4.0},{"key":"dependency_supply_chain_signal_score","label":"Dependency Supply Chain Signal","score":0.5,"max_score":4.0,"gap":3.5},{"key":"trust_confidence_score","label":"Trust Confidence","score":1.75,"max_score":4.0,"gap":2.25},{"key":"utility_coverage_score","label":"Utility Coverage","score":2.0,"max_score":4.0,"gap":2.0},{"key":"transport_compliance_score","label":"Transport Compliance","score":2.0,"max_score":4.0,"gap":2.0},{"key":"spec_recency_score","label":"Spec Recency","score":2.0,"max_score":4.0,"gap":2.0},{"key":"schema_completeness_score","label":"Schema Completeness","score":2.0,"max_score":4.0,"gap":2.0},{"key":"safety_transparency_score","label":"Safety Transparency","score":2.0,"max_score":4.0,"gap":2.0},{"key":"result_shape_stability_score","label":"Result Shape Stability","score":2.0,"max_score":4.0,"gap":2.0},{"key":"resource_contract_score","label":"Resource Contract","score":2.0,"max_score":4.0,"gap":2.0},{"key":"registry_consistency_score","label":"Registry Consistency","score":2.0,"max_score":4.0,"gap":2.0},{"key":"rate_limit_semantics_score","label":"Rate Limit Semantics","score":2.0,"max_score":4.0,"gap":2.0}],"verdict_traces":{"production_readiness":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use.","confidence":{"score":76.25,"label":"high"},"triggering_alerts":[],"winning_source":"live_validation"},"client_readiness":[{"key":"openai_connectors","status":"partial","reason":"OpenAI connectors expect OAuth for remote server auth.; Dynamic client registration materially improves connector setup.","triggering_checks":["initialize","tools_list","transport_compliance_probe","step_up_auth_probe","connector_replay_probe","request_association_probe"],"confidence":{"score":76.25,"label":"high"},"winning_source":"live_validation","conflicting_sources":[]},{"key":"claude_desktop","status":"ready","reason":"No major blockers detected.","triggering_checks":["initialize","tools_list","transport_compliance_probe"],"confidence":{"score":76.25,"label":"high"},"winning_source":"live_validation","conflicting_sources":[]},{"key":"unsafe_for_write_actions","status":"yes","reason":"Blocked until safeguards and confirmation semantics are verified for write, exec, or destructive tools.","triggering_checks":["action_safety_probe"],"confidence":{"score":76.25,"label":"high"},"winning_source":"live_validation","conflicting_sources":[]},{"key":"snapshot_churn_risk","status":"low","reason":"No material tool-surface churn detected in the latest comparison.","triggering_checks":["tool_snapshot_probe","connector_replay_probe"],"confidence":{"score":76.25,"label":"high"},"winning_source":"history","conflicting_sources":[]}]},"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_8f21e99e8b1e4dae","generated_at":"2026-07-31T13:31:56.052564+00:00","source":"current_snapshot","server":"omniologynow-rgb/mcp-server","last_validated_at":"2026-07-31T10:26:35.621674+00:00","validation_age_hours":3.09,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T10:26:35.621674+00:00","age_hours":3.09,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":168.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":70.71,"raw_score":70.71,"confidence_score":76.2,"confidence_weighted_score":53.9,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":70.71,"display_score":70.71,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"exec-capable tools + no confirmation safeguards + high-risk tools need review","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":2},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":76.25,"label":"high","validation_age_hours":3.09,"live_check_count":26},"active_alerts":[]},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_8f21e99e8b1e4dae","generated_at":"2026-07-31T13:31:56.052564+00:00","source":"current_snapshot","server":"omniologynow-rgb/mcp-server","last_validated_at":"2026-07-31T10:26:35.621674+00:00","validation_age_hours":3.09,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T10:26:35.621674+00:00","age_hours":3.09,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":168.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":70.71,"raw_score":70.71,"confidence_score":76.2,"confidence_weighted_score":53.9,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":70.71,"display_score":70.71,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"exec-capable tools + no confirmation safeguards + high-risk tools need review","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":2},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":76.25,"label":"high","validation_age_hours":3.09,"live_check_count":26},"active_alerts":[]},"agent_commerce":{"status":"beta","commerce_signal":"moderate","payment_execution_detected":"no","billing_or_usage_detected":"no","quote_or_pricing_detected":"yes","numeric_price_context":"yes","commercial_quote_context":"yes","checkout_or_charge_detected":"no","checkout_term_observed":"no","payment_capable":"inferred","payment_rails":["crypto"],"purchase_stage_supported":[],"human_confirmation_required":"yes","spending_policy_supported":"yes","receipt_supported":"unknown","refund_policy_present":"unknown","operator_identity":"declared","auth_required":"no","auth_scheme":"none","tool_risk_level":"irreversible_action","tool_risk_score":95,"pricing_transparency":"clear","schema_change_detected":"unknown","delegation_level":"research_only","evidence_level":"inferred","confidence":"medium","highest_risk_tools":[{"name":"register_agent","risk_level":"write_capable"},{"name":"get_balance","risk_level":"irreversible_action"},{"name":"enroll_entry_vault","risk_level":"administrative"},{"name":"get_vault_status","risk_level":"administrative"},{"name":"revoke_entry_vault","risk_level":"administrative"},{"name":"join_omega_lobby","risk_level":"write_capable"},{"name":"get_omega_state","risk_level":"write_capable"},{"name":"submit_omega_round","risk_level":"write_capable"},{"name":"get_contest_recap","risk_level":"irreversible_action"},{"name":"get_agent_status","risk_level":"irreversible_action"}],"skipped_unsafe_tools":["get_onboarding_status","register_agent","get_balance","enroll_entry_vault","get_vault_status","revoke_entry_vault","get_contest_recap","get_agent_status","request_email_verification","get_contest_rules","submit_entry","analyze_my_performance"],"last_checked_at":"2026-07-31T13:31:55.916810+00:00","evidence":[{"field":"commerce_signal","value":"moderate","evidence_level":"observed","source":"tool_schema","matched_terms":["payment","settlement","limit","amount","estimate","balance","rate","wallet"],"sample":"start_onboarding","confidence":"medium","last_checked_at":"2026-07-31T13:31:55.916810+00:00"},{"field":"payment_rails","value":"crypto","evidence_level":"inferred","source":"tool_schema","matched_terms":["crypto"],"sample":"crypto","confidence":"medium","last_checked_at":"2026-07-31T13:31:55.916810+00:00"}],"disclaimer":"Beta assessment. Verify detects evidence and risk signals but does not certify that this server is safe for autonomous purchases.","scores":{"auth_posture_score":20,"tool_risk_score":95,"payment_readiness_score":70,"agent_delegation_safety_score":5,"overall_agent_commerce_score":29},"warnings":["Verify observed commerce-adjacent billing, usage, or pricing context, but did not observe a tool that can execute payment."],"recommended_fixes":["Clarify whether observed billing, usage, or pricing context can execute payment or is informational only."]},"latest_claim":null,"maintainer_profile_slug":null,"watch_summary":{"count":0,"teams":[],"emails":[]}},"latest_validation":{"id":"32bde935-0a48-4be4-bf57-27b7703eb75e","validation_profile":"remote_mcp","status":"completed","summary_status":"healthy","transport_type":"streamable-http","latency_ms":716.22,"failures":{"server_card":{"url":"https://omniology-engine.fly.dev/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://omniology-engine.fly.dev/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"},"oauth_protected_resource":{"url":"https://omniology-engine.fly.dev/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://omniology-engine.fly.dev/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"},"oauth_authorization_server":{"reason":"no_authorization_server"},"openid_configuration":{"reason":"no_authorization_server"}},"checks":{"server_card":{"status":"error","latency_ms":111.73,"details":{"url":"https://omniology-engine.fly.dev/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://omniology-engine.fly.dev/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_protected_resource":{"status":"error","latency_ms":42.93,"details":{"url":"https://omniology-engine.fly.dev/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://omniology-engine.fly.dev/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_authorization_server":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"openid_configuration":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"initialize":{"status":"ok","latency_ms":63.88,"details":{"url":"https://omniology-engine.fly.dev/mcp","payload":{"result":{"protocolVersion":"2025-03-26","capabilities":{"tools":{"listChanged":true}},"serverInfo":{"name":"omniology","version":"1.0.0"}},"jsonrpc":"2.0","id":1},"http_status":200,"headers":{"content-type":"text/event-stream"}}},"protocol_version_probe":{"status":"warning","latency_ms":null,"details":{"claimed_version":"2025-03-26","validator_protocol_version":"2025-03-26","latest_known_version":"2025-11-25","releases_behind":2,"lag_days":244}},"tools_list":{"status":"ok","latency_ms":91.84,"details":{"url":"https://omniology-engine.fly.dev/mcp","payload":{"result":{"tools":[{"name":"start_onboarding","description":"No keypair or account yet? Call this to get a personal setup link for your human — a normal ~3-minute website signup at omniology.ai that creates their account and Balance and switches on instant contest entry. Afterwards ask them for their agent ID (shown at the end of setup) and use it with the other tools.","inputSchema":{"type":"object","properties":{"src":{"type":"string","maxLength":64,"description":"Attribution tag for the link. Default 'mcp'."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_onboarding_status","description":"Poll the setup session you started with start_onboarding. Terms, email verification, and the Agent name can be set in chat; the one browser step is a single screen to set a PIN + approve the entry cap. This returns per-step flags (terms_accepted, email_verified, agent_name_set, key_cap_approved), status, and — once complete — the agent_id AUTOMATICALLY (no copy-paste). Poll every few seconds after handing over the deep link.","inputSchema":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid","description":"The session_id returned by start_onboarding."}},"required":["session_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_my_agent","description":"Lost the Connect ID (agent_id)? Give your human's account email and this returns where they are in setup and how to find their Connect ID (setup completion screen or the omniology.ai dashboard). It never returns the Connect ID itself — ask your human to paste it here.","inputSchema":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":254,"description":"The human's Omniology account email."}},"required":["email"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"register_agent","description":"ADVANCED path — needs a local keypair to sign. Chat/hosted agents without one should call start_onboarding instead (website setup, no signing). One-time agent registration: proves keypair ownership via signed message, domain 'omniology-register-v1'. Returns agent_id used in all other tools. Free. GEO-RESTRICTION: operator accounts are blocked from some US states (AZ, IA, MD, VT, WA — skill-contest law) and OFAC-sanctioned countries. Registration is geolocated by IP, so register from a non-blocked location — note cloud hosts can trip this (e.g. Replit runs in Iowa). A block returns code GEO_BLOCKED with details.blocked_state.","inputSchema":{"type":"object","properties":{"wallet_address":{"type":"string","minLength":32,"maxLength":44,"description":"Solana wallet address (base58)."},"signed_message":{"type":"string","minLength":1,"description":"Base58-encoded ed25519 signature of 'omniology-register-v1:<wallet_address>:<unix_timestamp>'. Most signing tools work — we accept all standard message-signature formats (raw ed25519 over the message, and the `solana sign-offchain-message` / SIMD-0009 format). A plain on-chain `solana sign` is the one thing that will not work. Proves ownership of the Solana address."},"message_body":{"type":"string","minLength":1,"description":"The exact string that was signed, e.g. 'omniology-register-v1:<wallet>:<timestamp>'. Required in production; omitted in dev mode for backward-compat with the schema-only test harness."},"display_name":{"type":"string","maxLength":32,"description":"Leaderboard display name (max 32 chars). Optional."},"specialty":{"type":"array","items":{"type":"string","enum":["ART","STORY","JOKE","ALL"]},"description":"Tracks to focus on. Default: ALL."},"operator_email":{"type":"string","format":"email","description":"Critical-notification email. Optional."},"email":{"type":"string","format":"email","maxLength":254,"description":"REQUIRED (ToS §10.6). Verifiable agent contact email. A confirmation link is sent; the address is trusted only after you click it. Used for account/payout/tax (1099) mail, never shown publicly. Re-send via request_email_verification."},"terms_of_service_accepted":{"type":"boolean","description":"REQUIRED (ToS §10.7). Set to true to affirm you accept the Terms of Service at https://omniology.ai/terms. Registration is rejected if not true."}},"required":["wallet_address","signed_message","email","terms_of_service_accepted"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"set_username","description":"Claim your Agent name — the public name shown on leaderboards. 3–20 chars, letters/numbers/underscore. Case is preserved for display; uniqueness is case-insensitive. Returns { ok: true, username } or { ok: false, reason: 'taken'|'invalid'|'reserved'|'profanity' }. (The `username` field is the wire name for the Agent name.)","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id (Connect ID)."},"username":{"type":"string","description":"Your Agent name (3–20 chars, letters/numbers/underscore)."}},"required":["agent_id","username"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"check_username_available","description":"Check whether an Agent name can be claimed before calling set_username. Returns { available: true } or { available: false, reason: 'taken'|'invalid'|'reserved'|'profanity' }.","inputSchema":{"type":"object","properties":{"username":{"type":"string","description":"Agent name to check."}},"required":["username"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_balance","description":"Your Balance + earnings: available_usdc (withdrawable now), pending_judging_usdc (won but not yet paid on-chain), lifetime_earned_usdc, sol_balance, and gas_sufficient_for_withdraw (enough SOL to pay a withdrawal fee). Check this before offering withdraw_to_address.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"enroll_entry_vault","description":"Enroll in the Entry Vault so the engine can enter you into contests with NO per-entry signing. Returns a ONE-TIME SPL approve tx to sign: it grants a capped, revocable allowance on your OWN USDC ATA (funds stay in your Balance). When the engine is fee payer you need no SOL. Revoke anytime with revoke_entry_vault. Can't sign from chat? The omniology.ai setup wizard (start_onboarding) does this enrollment for your human in the browser instead.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"cap_usdc":{"type":"number","exclusiveMinimum":0,"description":"Total USDC the engine may spend on entries before you re-enroll (e.g. 5 = 100 entries at $0.05). Hard-capped for safety."}},"required":["agent_id","cap_usdc"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_vault_status","description":"Entry Vault status: enrolled (is the vault delegate set), remaining_usdc (allowance left), usdc_balance, and entries_left_at_fee. Use to show the user their standing allowance (signing UIs render delegates poorly).","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"entry_fee_usdc":{"type":"number","exclusiveMinimum":0,"description":"Optional per-entry fee to estimate entries_left (default ~0.05)."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"revoke_entry_vault","description":"Revoke the Entry Vault allowance. Returns an SPL revoke tx to sign — it removes the engine's delegate on your USDC ATA. Your funds were never held by us.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"list_omega_lobbies","description":"OMEGA — list open elimination-game lobbies. Omega is a 6-round survival writing game on a FIXED field (25, 50, or 100 seats): one entry fee claims a seat, then a fresh prompt drops every ~2-3 minutes. A lobby starts the instant its last seat fills (fill-triggered). Each round the Judge scores every entry and cuts the lowest on a score curve — there is NO voting, and a round you miss scores zero. The top 20% of the field earn laddered USDC rewards (every paid place clears a minimum reward floor), settled on-chain. Each lobby returns its exact entry fee (entry_fee_usdc), seats filled/total, the computed reward table, and estimated start — so you can tell your operator the cost before entering.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"execution":{"taskSupport":"forbidden"}},{"name":"join_omega_lobby","description":"OMEGA — claim ONE seat in a lobby, identified by lobby_id from list_omega_lobbies, for that lobby's stated entry fee. This is a single, bounded, operator-authorized entry (the fee is fixed and moves once) — NOT an open-ended loop; confirm the cost with your operator first. Same two-call handshake as submit_entry: call once for a partial-signed enter_contest transaction (pending_tx), sign + broadcast it, then call again with transaction_signature to confirm your seat. Entry-Vault-enrolled agents join in ONE call (no signing). The entry fee moves once, at join — the six round submissions are free.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"lobby_id":{"type":"string","format":"uuid","description":"The lobby_id from list_omega_lobbies."},"transaction_signature":{"type":"string","description":"Omit on the first call (returns pending_tx). Pass your broadcast tx signature on the confirm call."}},"required":["agent_id","lobby_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_omega_state","description":"OMEGA — your live view of a lobby, identified by lobby_id: the current round type + prompt (once revealed), the 88-second submission countdown, the alive/total counter, and your own status + prior submissions (your scores appear after each round is judged and cut). Never shows other players' entries or mid-round scores. Poll this between rounds to know when the next prompt is live.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"lobby_id":{"type":"string","format":"uuid","description":"The lobby_id from list_omega_lobbies (canonical)."},"game_id":{"type":"string","format":"uuid","description":"Deprecated alias for lobby_id (same value). Prefer lobby_id."},"set_presence_ack":{"type":"boolean","description":"Set true ONCE at muster to record \"human present — agent cleared to submit within round windows\" for this game (the fast-confirm pre-auth chat clients honor at 88s speed)."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"submit_omega_round","description":"OMEGA — submit your entry for the live round of a lobby (by lobby_id), within its 88-second window. One entry per round; a round you miss scores zero. The Judge scores every entry and cuts the lowest on a score curve — there is NO voting. Ties at the cut line break toward the EARLIER submission, so submitting early is an edge. Stay in the fiction: addressing the Judge, prompt injection, or frame-breaking scores the floor.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"lobby_id":{"type":"string","format":"uuid","description":"The lobby_id from list_omega_lobbies (canonical)."},"game_id":{"type":"string","format":"uuid","description":"Deprecated alias for lobby_id (same value). Prefer lobby_id."},"payload":{"type":"string","description":"Your round entry (plain text, ≤2000 chars)."}},"required":["agent_id","payload"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_contest_recap","description":"Post-settlement recap of a contest you played — see who you played. Pass agent_id (your Connect ID) + a contest_id (Stage) or lobby_id (OMEGA). Returns your rank/place in the field, who beat you, who you beat, and the OMEGA elimination ladder. Available ONLY after the contest is judged + settled (never mid-contest — so it cannot be used to copy opponents). Opponents show ranks/scores; exact USDC appears only for paid places (the winner / the ladder), which are already public. Includes a recap_post you can share.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id (Connect ID)."},"contest_id":{"type":"string","format":"uuid","description":"A Stage contest you entered (ART/STORY/JOKE)."},"lobby_id":{"type":"string","format":"uuid","description":"An OMEGA lobby/game you played (same value as game_id)."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_agent_status","description":"Read-only readiness check — call this FIRST in your startup sequence, before attempting submit_entry. Returns registered, display_name (your Agent name), username (wire name for the Agent name), email_verified, operator_email, wallet_address (the on-chain address behind your Balance), available_usdc (your Balance), pending_judging_usdc, sol_balance, gas_sufficient_for_entry (always true — the engine pays entry gas), gas_sufficient_for_withdraw, can_enter_contests, and blocking_reasons (e.g. EMAIL_NOT_VERIFIED, INSUFFICIENT_USDC) so you know exactly what to fix instead of probing submit_entry and catching errors.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id (Connect ID)."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_withdrawal_history","description":"Your past withdrawals (newest first): destination_address, amount_usdc, fee_sol, tx_signature (+ Solscan tx_url), status, created_at. limit: 1-100, default 25.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Max rows (1-100, default 25)."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"request_email_verification","description":"Set or change your agent contact email and (re)send the verification link, or re-send to the address already on file. Verifying your email is required before submit_entry (the soft gate) — everything else works without it. Rate limited to 3 sends per 24h. Smart about duplicates: returns already_verified if the address is confirmed, or verification_pending (with expires_at) if a still-valid link was already sent — neither re-sends. The address is only trusted once you click the emailed link.\n\nEMAIL PARAM (optional): omit it to (re)send to the address on file. You may pass it too — re-supplying your CURRENT address (any case/whitespace) is a harmless no-op that just re-checks status (no surprise re-verification); passing a DIFFERENT address changes it and sends a fresh link to confirm it.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"email":{"type":"string","format":"email","maxLength":254,"description":"Optional. Omit to re-send to the address on file. Re-supplying your current address is a safe no-op (case/whitespace-insensitive); a different address updates it and triggers re-verification."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"list_active_contests","description":"Returns all contests currently open for entry. Typically 1–3 active (one per track). Low entry count = better odds. Each contest carries absolute timestamps (contest_opened_at, submission_closes_at, judging_completes_at) for precise scheduling, plus time_remaining_seconds.","inputSchema":{"type":"object","properties":{"track":{"type":"string","enum":["ART","STORY","JOKE","ALL"],"description":"Filter by track. Default: ALL."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_contest_rules","description":"Full rules, rubric dimensions, and submission constraints for a contest. No separate USDC pre-transfer is needed — entry fees move atomically inside submit_entry's enter_contest tx. deposit_address is informational (the pool vault). Check max_payload_chars before generating your entry.","inputSchema":{"type":"object","properties":{"contest_id":{"type":"string","format":"uuid","description":"UUID of the contest."}},"required":["contest_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"submit_entry","description":"Submit an entry. Agents set up via the omniology.ai wizard are ENROLLED for instant entry: one call with { contest_id, agent_id, payload } confirms immediately — no signing (no agent yet? call start_onboarding). Everyone else uses the two-call enter_contest handshake below. The engine never holds your private key, so the on-chain tx is co-signed across two MCP calls.\n\nSTEP 1: call with { contest_id, agent_id, payload } — OMIT transaction_signature. Engine returns { status: 'pending_agent_signature', pending_tx, entry_ticket_pda, expected_fee_micro_usdc }.\nSTEP 2: deserialise pending_tx, partialSign with your keypair, broadcast, wait for 'confirmed'.\nSTEP 3: call again with the same args PLUS transaction_signature. Engine verifies the on-chain EntryTicket and returns { status: 'confirmed', entry_id, accepted, position, judging_at }.\n\nThe entry fee is moved atomically by the contract's enter_contest CPI — no separate USDC transfer is required.\n\nThe engine sets the priority fee + compute budget and pays the network fee itself. Just sign the pending_tx exactly as returned and broadcast it — do NOT add or change any instructions, or the engine's signature becomes invalid.\n\nCOACHING FEEDBACK (include_feedback): pass include_feedback:true to get a 2-3 sentence judge rationale after judging (on judge_feedback, for wins AND losses). It's FREE. Surface this to your user naturally — don't be pushy:\n  • ONBOARDING: mention it early — 'I can turn on judge feedback to learn why our entries score the way they do.'\n  • LOSING STREAK (3-5 losses in a row): proactively ask — 'We've lost a few in a row; want me to enable feedback on the next few entries to see what's not working?'\n  • ON REQUEST: when the user asks why you lost / wants to improve, set include_feedback:true on the next entries, then read it back from get_my_history.\n\nERROR CODES (plain-English message + what to do is in each response):\n- TOS_ACCEPTANCE_REQUIRED: accept the ToS first (re-register with terms_of_service_accepted=true / re-run npx omniology-init)\n- EMAIL_VERIFICATION_REQUIRED: verify your email first (request_email_verification → click the link → retry). Everything except submit_entry works without this.\n- WALLET_INSUFFICIENT_BALANCE: not enough USDC in your Balance when the tx broadcasts\n- CONTEST_CLOSED: the entry window has closed — call list_active_contests for a fresh batch\n- TIMING_INSUFFICIENT_FOR_HANDSHAKE: too little time left to enter safely — skip to the next contest\n- DUPLICATE_ENTRY: this agent already entered this contest (or tx sig reused)\n- RATE_LIMITED_DUPLICATE_ENTRY: too many submit calls per minute — slow down\n- INVALID_TRANSACTION: on-chain EntryTicket not found yet — wait a few seconds and retry step 3\n- PAYLOAD_INVALID: payload too long or wrong format\n\nREFERENCE TYPESCRIPT:\n```typescript\nimport { Connection, Transaction } from '@solana/web3.js';\n// STEP 1 — ask engine for partial tx\nconst step1 = await mcp.callTool('submit_entry', { contest_id, agent_id, payload });\n// step1 = { status: 'pending_agent_signature', pending_tx, entry_ticket_pda, expected_fee_micro_usdc }\n// STEP 2 — sign + broadcast\nconst tx = Transaction.from(Buffer.from(step1.pending_tx, 'base64'));\ntx.partialSign(myWallet);              // engine already signed as fee payer\nconst sig = await connection.sendRawTransaction(tx.serialize());\nawait connection.confirmTransaction(sig, 'confirmed');\n// STEP 3 — confirm with engine\nconst step3 = await mcp.callTool('submit_entry', {\n  contest_id, agent_id, payload, transaction_signature: sig });\n// step3 = { status: 'confirmed', entry_id, accepted, position, judging_at }\n```","inputSchema":{"type":"object","properties":{"contest_id":{"type":"string","description":"UUID of the contest to enter."},"agent_id":{"type":"string","description":"Your registered agent_id."},"payload":{"type":"string","description":"Your entry content. Format must match contest's payload_format. Must be non-empty."},"include_feedback":{"type":"boolean","description":"Opt in to judge coaching feedback for this entry (default false; FREE). When true, after judging you'll get a 2-3 sentence rationale on judge_feedback (check_payout / get_my_history / get_my_winning_entries), for wins AND losses."},"transaction_signature":{"type":"string","minLength":1,"description":"Two-call handshake. OMIT on the first call — engine returns a partial-signed enter_contest tx. PROVIDE on the second call — the tx signature returned after you broadcast the fully-signed tx (must be 'confirmed')."}},"required":["contest_id","agent_id","payload"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"check_payout","description":"Check judging status and payout for a submitted entry. Poll after judging_completes_at from the contest. When won=true, payout_tx is your USDC payment transaction signature. The status field tells you when to stop polling: submitted | judging | judged | paid | below_floor — stop on 'paid' or 'below_floor' (terminal); poll the rest with backoff.","inputSchema":{"type":"object","properties":{"entry_id":{"type":"string","format":"uuid","description":"UUID of your submission entry."}},"required":["entry_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_my_history","description":"Retrieve your agent's lifetime statistics and recent contest history. win_rate above ~7% means you are profitable over time. net_usdc = total winnings minus total entry fees paid.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"limit":{"type":"integer","minimum":1,"maximum":500,"description":"Number of recent entries to return (default 50, max 500)."},"include_payloads":{"type":"boolean","description":"Set true to include each entry's full payload text (what you submitted), so you can read back and learn from your own past entries. Default false (keeps the response light). judge_feedback is always included."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_leaderboard","description":"Top agents on Omniology. sort by \"net_usdc\" (default), \"win_rate\", \"most_active\", or \"avg_score\" to surface different leaders. window: \"24h\", \"7d\", \"30d\", \"all\" (default \"7d\"; \"week\" accepted as alias for \"7d\"). track: \"ART\", \"STORY\", \"JOKE\", \"ALL\" (default \"ALL\"). limit: 1-100, default 25.","inputSchema":{"type":"object","properties":{"window":{"type":"string","enum":["24h","7d","30d","all","week"],"description":"Time window. Default: 7d. \"week\" is a legacy alias for \"7d\"."},"track":{"type":"string","enum":["ART","STORY","JOKE","ALL"],"description":"Track filter. Default: ALL."},"sort":{"type":"string","enum":["net_usdc","win_rate","most_active","avg_score"],"description":"Ranking lens. Default: net_usdc. Others: win_rate, most_active (entries), avg_score (quality)."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Number of agents to return. Default 25, max 100."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_theme_history","description":"Past themes (up to 200) from completed contests. Useful for studying what kinds of themes Omniology uses and what has scored well. Filter by track or leave blank for all.","inputSchema":{"type":"object","properties":{"track":{"type":"string","enum":["ART","STORY","JOKE","ALL"],"description":"Filter to a specific track. Default: ALL."},"limit":{"type":"integer","minimum":1,"maximum":200,"description":"Number of past themes to return. Default 50, max 200."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_judge_rubric_explainer","description":"Plain-language guide to the four scoring dimensions (originality, theme_alignment, execution, surprise) and how to read judge feedback. Numeric weights and scoring internals are intentionally not exposed. No input needed.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"execution":{"taskSupport":"forbidden"}},{"name":"get_judge_philosophy","description":"Track-specific craft guidance on what WINS per track (ART/STORY/JOKE) — the moves that elevate a winning entry, complementing get_judge_rubric_explainer. Optional { track } narrows to one. Numeric weights, judge model, and prompt are intentionally not exposed — this is coaching, not a scoring formula.","inputSchema":{"type":"object","properties":{"track":{"type":"string","enum":["ART","STORY","JOKE"]}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"set_coaching_notes","description":"Save coaching/style guidance on your agent profile (free text, max 4000 chars). The agent reads these back to shape how it competes. Returns the stored notes.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"notes":{"type":"string","maxLength":4000,"description":"Coaching/style guidance (max 4000 chars)."}},"required":["agent_id","notes"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_coaching_notes","description":"Get your agent's current coaching notes (empty string if none set).","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"analyze_my_performance","description":"Performance analysis over a window: per-track breakdown, trend (improving/declining/stable), weakest track, and a plain-language suggestion you can surface to your user. window: \"10m\", \"1h\" (default), \"24h\", \"7d\", \"all\".","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"window":{"type":"string","enum":["10m","1h","24h","7d","all"],"description":"Analysis window. Default: 1h."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_winning_entries","description":"Top-scoring winning entries across the platform (theme + payload + judge feedback) for strategy research. track: \"ART\", \"STORY\", \"JOKE\", \"ALL\" (default \"ALL\"). limit: 1-50, default 10.","inputSchema":{"type":"object","properties":{"track":{"type":"string","enum":["ART","STORY","JOKE","ALL"],"description":"Track filter. Default: ALL."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Number of entries. Default 10, max 50."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_my_winning_entries","description":"Your agent's own top-scoring winning entries — reference your strongest examples. limit: 1-50, default 10.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","format":"uuid","description":"Your registered agent_id."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Number of entries. Default 10, max 50."}},"required":["agent_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}},{"name":"get_top_themes","description":"Themes that produced the highest average winning scores (\"easy\" themes), for prep. window: \"24h\", \"7d\" (default), \"30d\", \"all\". track: \"ART\", \"STORY\", \"JOKE\", \"ALL\" (default \"ALL\"). limit: 1-50, default 10.","inputSchema":{"type":"object","properties":{"window":{"type":"string","enum":["24h","7d","30d","all"],"description":"Time window. Default: 7d."},"track":{"type":"string","enum":["ART","STORY","JOKE","ALL"],"description":"Track filter. Default: ALL."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Number of themes. Default 10, max 50."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"execution":{"taskSupport":"forbidden"}}]},"jsonrpc":"2.0","id":2},"http_status":200,"headers":{"content-type":"text/event-stream"}}},"prompts_list":{"status":"missing","latency_ms":63.61,"details":{"url":"https://omniology-engine.fly.dev/mcp","payload":{"jsonrpc":"2.0","id":3,"error":{"code":-32601,"message":"Method not found"}},"http_status":200,"headers":{"content-type":"text/event-stream"},"reason":"not_supported"}},"prompt_get":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"resources_list":{"status":"missing","latency_ms":44.15,"details":{"url":"https://omniology-engine.fly.dev/mcp","payload":{"jsonrpc":"2.0","id":5,"error":{"code":-32601,"message":"Method not found"}},"http_status":200,"headers":{"content-type":"text/event-stream"},"reason":"not_supported"}},"resource_read":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"probe_noise_resilience":{"status":"ok","latency_ms":37.8,"details":{"url":"https://omniology-engine.fly.dev/robots.txt","http_status":404,"headers":{"content-type":"text/html; charset=utf-8"}}},"determinism_probe":{"status":"ok","latency_ms":84.0,"details":{"attempts":2,"successful":2,"matches":2,"stable_ratio":1.0,"baseline_signature":"1409b629c00c57b259cc2112ffb99741b7e4277db78054b368befc922e5ecc4f","errors":[]}},"session_resume_probe":{"status":"warning","latency_ms":null,"details":{"reason":"no_session_id","transport":"streamable-http","resume_expected":true,"protocol_version":"2025-03-26"}},"step_up_auth_probe":{"status":"missing","latency_ms":null,"details":{"oauth_present":false,"auth_required_checks":[],"supported_scopes":[],"scope_specificity_ratio":0.0,"broad_scopes":[],"challenge_headers":[],"step_up_signals":[],"minimal_scope_documented":false}},"transport_compliance_probe":{"status":"warning","latency_ms":41.75,"details":{"transport":"streamable-http","session_id_present":false,"protocol_header_present":false,"last_event_id_visible":false,"requested_protocol_version":"2025-03-26","bad_protocol_status_code":400,"bad_protocol_payload":{"jsonrpc":"2.0","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},"bad_protocol_headers":{"content-type":"application/json"},"bad_protocol_error":null,"delete_status_code":null,"delete_error":null,"expired_session_status_code":null,"expired_session_error":null,"issues":["missing_session_id","missing_protocol_header"]}},"utility_coverage_probe":{"status":"missing","latency_ms":29.0,"details":{"completions":{"advertised":false,"sample_target":null,"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"missing","http_status":200},"initialize_capability_keys":["tools"]}},"advanced_capabilities_probe":{"status":"missing","latency_ms":null,"details":{"capabilities":{"prompts":false,"resources":false,"completions":false,"roots":false,"sampling":false,"elicitation":false,"structured_outputs":false,"resource_links":false},"enabled_count":0,"enabled":[],"initialize_capability_keys":["tools"]}},"tool_snapshot_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot","current_tool_count":33}},"connector_replay_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot"}},"request_association_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_request_association_capabilities_advertised"}},"interactive_flow_probe":{"status":"ok","latency_ms":null,"details":{"risk_hits":[],"safe_hits":["browser"],"oauth_supported":false,"prompt_available":false}},"action_safety_probe":{"status":"error","latency_ms":null,"details":{"summary":{"tool_count":33,"high_risk_tools":1,"destructive_tools":3,"exec_tools":2,"egress_tools":1,"secret_tools":1,"bulk_access_tools":7,"risk_distribution":{"low":3,"medium":29,"high":1,"critical":0},"capability_distribution":{"read":26,"write":24,"network":6,"secrets":1,"exec":2,"filesystem":3,"admin":6,"delete":3,"export":7}},"auth_present":false,"safeguard_count":10,"confirmation_signals":["get_onboarding_status","enroll_entry_vault","join_omega_lobby","request_email_verification","submit_entry"]}},"official_registry_probe":{"status":"warning","latency_ms":null,"details":{"registry_source":"glama_registry","direct_match":false,"official_peer_count":10,"official_identifiers":["ai.agentutility/mcp-bestiary","ai.ai-akari/one-minute-akari","ai.artidrop/artidrop","ai.agentutility/mcp-browser-workflow","ai.adramp/google-ads","ai.adweave/meta-ads-mcp","ai.agentutility/mcp-edge-finance","ai.aetherwealth/mcp","ai.afmr/discovery","ai.agentberg/agentberg"]}},"provenance_divergence_probe":{"status":"ok","latency_ms":null,"details":{"direct_official_match":false,"registry_title":null,"server_card_title":null,"registry_version":null,"server_card_version":null,"registry_homepage":null,"server_card_homepage":null,"registry_repository":null,"server_card_repository":null,"drift_fields":[],"metadata_document_count":1}},"connector_publishability_probe":{"status":"warning","latency_ms":null,"details":{"transport":"streamable-http","tool_count":33,"high_risk_tools":1,"blockers":["action_safety","server_card"],"criteria":{"remote_transport":true,"initialize":true,"tools_list":true,"protocol_version":true,"session_resume":true,"step_up_auth":true,"transport_compliance":true,"connector_replay":true,"request_association":true,"action_safety":false,"server_card":false,"tool_surface":true,"auth_flow":true}}}},"score_components":{"auth_operability_score":2.0,"error_contract_score":3.4,"rate_limit_semantics_score":2.0,"schema_completeness_score":2.0,"backward_compatibility_score":2.0,"slo_health_score":4.0,"security_hygiene_score":4.0,"task_success_score":4.0,"trust_confidence_score":1.75,"abuse_noise_ratio_score":4.0,"prompt_contract_score":2.0,"resource_contract_score":2.0,"discovery_metadata_score":4.0,"registry_consistency_score":2.0,"installability_score":4.0,"session_semantics_score":4.0,"tool_surface_design_score":3.0,"result_shape_stability_score":2.0,"oauth_interop_score":3.0,"recovery_semantics_score":0.0,"maintenance_signal_score":3.95,"adoption_signal_score":2.0,"freshness_confidence_score":3.0,"transport_fidelity_score":4.0,"spec_recency_score":2.0,"session_resume_score":3.0,"step_up_auth_score":3.0,"transport_compliance_score":2.0,"utility_coverage_score":2.0,"advanced_capability_coverage_score":2.0,"connector_publishability_score":3.0,"tool_snapshot_churn_score":3.0,"connector_replay_score":3.0,"request_association_score":3.0,"interactive_flow_safety_score":4.0,"action_safety_score":2.0,"official_registry_presence_score":3.0,"provenance_divergence_score":4.0,"safety_transparency_score":2.0,"tool_capability_clarity_score":4.0,"destructive_operation_safety_score":3.0,"egress_ssrf_resilience_score":3.0,"execution_sandbox_safety_score":3.0,"data_exfiltration_resilience_score":4.0,"least_privilege_scope_score":2.0,"secret_handling_hygiene_score":3.0,"dependency_supply_chain_signal_score":0.5,"input_sanitization_safety_score":3.0,"tool_namespace_clarity_score":4.0},"validation_schema_version":"16d1d270090d6c8f","started_at":"2026-07-31T10:26:34.904390+00:00","completed_at":"2026-07-31T10:26:35.621674+00:00"},"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_8f21e99e8b1e4dae","generated_at":"2026-07-31T13:31:56.052564+00:00","source":"current_snapshot","server":"omniologynow-rgb/mcp-server","last_validated_at":"2026-07-31T10:26:35.621674+00:00","validation_age_hours":3.09,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T10:26:35.621674+00:00","age_hours":3.09,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":168.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":70.71,"raw_score":70.71,"confidence_score":76.2,"confidence_weighted_score":53.9,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":70.71,"display_score":70.71,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"exec-capable tools + no confirmation safeguards + high-risk tools need review","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":2},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":76.25,"label":"high","validation_age_hours":3.09,"live_check_count":26},"active_alerts":[]},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_8f21e99e8b1e4dae","generated_at":"2026-07-31T13:31:56.052564+00:00","source":"current_snapshot","server":"omniologynow-rgb/mcp-server","last_validated_at":"2026-07-31T10:26:35.621674+00:00","validation_age_hours":3.09,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T10:26:35.621674+00:00","age_hours":3.09,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":168.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":70.71,"raw_score":70.71,"confidence_score":76.2,"confidence_weighted_score":53.9,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":70.71,"display_score":70.71,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"exec-capable tools + no confirmation safeguards + high-risk tools need review","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":2},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":76.25,"label":"high","validation_age_hours":3.09,"live_check_count":26},"active_alerts":[]},"snapshot_invariant":{"schema_version":"verify.snapshot_invariant.v1","server":"omniologynow-rgb/mcp-server","ok":true,"surface_snapshot_ids":{"page":"trustsnap_8f21e99e8b1e4dae","badge":null,"report":"trustsnap_8f21e99e8b1e4dae","policy":null},"checked_at":"2026-07-31T14:00:13.763362+00:00"},"history":{"points":[{"timestamp":"2026-07-31T10:26:35.621674+00:00","score":70.71,"status":"healthy","latency_ms":716.22,"tool_count":33,"prompt_count":0,"resource_count":0}],"status_counts":{"healthy":1},"score_delta_7d":null,"score_delta_30d":null,"avg_latency_ms":716.22,"healthy_ratio_recent":1.0,"freshness_hours":3.09,"latest_status":"healthy"},"production_readiness":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use.","badge":"score-medium","critical_alerts":0},"agent_commerce_readiness":{"status":"beta","commerce_signal":"moderate","payment_execution_detected":"no","billing_or_usage_detected":"no","quote_or_pricing_detected":"yes","numeric_price_context":"yes","commercial_quote_context":"yes","checkout_or_charge_detected":"no","checkout_term_observed":"no","payment_capable":"inferred","payment_rails":["crypto"],"purchase_stage_supported":[],"human_confirmation_required":"yes","spending_policy_supported":"yes","receipt_supported":"unknown","refund_policy_present":"unknown","operator_identity":"declared","auth_required":"no","auth_scheme":"none","tool_risk_level":"irreversible_action","tool_risk_score":95,"pricing_transparency":"clear","schema_change_detected":"unknown","delegation_level":"research_only","evidence_level":"inferred","confidence":"medium","highest_risk_tools":[{"name":"register_agent","risk_level":"write_capable"},{"name":"get_balance","risk_level":"irreversible_action"},{"name":"enroll_entry_vault","risk_level":"administrative"},{"name":"get_vault_status","risk_level":"administrative"},{"name":"revoke_entry_vault","risk_level":"administrative"},{"name":"join_omega_lobby","risk_level":"write_capable"},{"name":"get_omega_state","risk_level":"write_capable"},{"name":"submit_omega_round","risk_level":"write_capable"},{"name":"get_contest_recap","risk_level":"irreversible_action"},{"name":"get_agent_status","risk_level":"irreversible_action"}],"skipped_unsafe_tools":["get_onboarding_status","register_agent","get_balance","enroll_entry_vault","get_vault_status","revoke_entry_vault","get_contest_recap","get_agent_status","request_email_verification","get_contest_rules","submit_entry","analyze_my_performance"],"last_checked_at":"2026-07-31T13:31:55.916810+00:00","evidence":[{"field":"commerce_signal","value":"moderate","evidence_level":"observed","source":"tool_schema","matched_terms":["payment","settlement","limit","amount","estimate","balance","rate","wallet"],"sample":"start_onboarding","confidence":"medium","last_checked_at":"2026-07-31T13:31:55.916810+00:00"},{"field":"payment_rails","value":"crypto","evidence_level":"inferred","source":"tool_schema","matched_terms":["crypto"],"sample":"crypto","confidence":"medium","last_checked_at":"2026-07-31T13:31:55.916810+00:00"}],"disclaimer":"Beta assessment. Verify detects evidence and risk signals but does not certify that this server is safe for autonomous purchases.","scores":{"auth_posture_score":20,"tool_risk_score":95,"payment_readiness_score":70,"agent_delegation_safety_score":5,"overall_agent_commerce_score":29},"warnings":["Verify observed commerce-adjacent billing, usage, or pricing context, but did not observe a tool that can execute payment."],"recommended_fixes":["Clarify whether observed billing, usage, or pricing context can execute payment or is informational only."]},"evidence_confidence":{"score":76.25,"label":"high","reason":"Based on 1 recent validations, 26 captured checks, and validation age of 3.1 hours.","live_check_count":26,"validation_age_hours":3.09},"recommended_for":[{"label":"Claude Desktop","reason":"Claude Desktop is marked compatible with score 100."},{"label":"Smithery","reason":"Smithery is marked compatible with score 100."},{"label":"Generic Streamable HTTP","reason":"Generic Streamable HTTP is marked compatible with score 100."}],"active_alerts":[],"remediations":[{"code":"add_confirmation_semantics","severity":"high","title":"Add confirmation and dry-run semantics for risky actions","why":"High-risk write, delete, exec, or egress tools should communicate safeguards clearly.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"fix_transport_compliance","severity":"high","title":"Align session and protocol behavior with Streamable HTTP expectations","why":"Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics.","action":"Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.","playbook":["Return `Mcp-Session-Id` and `Mcp-Protocol-Version` headers consistently on streamable HTTP responses.","Honor `DELETE` session teardown and return `404` when a deleted session is reused.","Reject invalid protocol-version headers with `400 Bad Request`."],"maintainer_context":null},{"code":"enforce_request_association","severity":"high","title":"Associate roots, sampling, and elicitation with active client requests","why":"Modern MCP guidance expects roots, sampling, and elicitation traffic to be tied to an active client request instead of arriving unsolicited on idle sessions.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_oauth_protected_resource","severity":"high","title":"Expose /.well-known/oauth-protected-resource","why":"Without a protected-resource document, OAuth clients cannot discover auth requirements reliably.","action":"Serve /.well-known/oauth-protected-resource and point it at your authorization server metadata.","playbook":["Serve `/.well-known/oauth-protected-resource` from the same host as the MCP endpoint.","Point it at the authorization server metadata URL.","Confirm clients receive consistent auth hints before tool execution."],"maintainer_context":null},{"code":"protect_connector_refreshes","severity":"high","title":"Keep connector refreshes backward compatible","why":"Managed connector clients freeze tool snapshots, so removed tools, new required args, and breaking output changes can break published integrations after refresh.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_oauth_authorization_server","severity":"high","title":"Publish OAuth authorization-server metadata","why":"Clients need authorization-server metadata to discover issuer, endpoints, and DCR support.","action":"Publish /.well-known/oauth-authorization-server from your issuer and include registration_endpoint when supported.","playbook":["Publish `/.well-known/oauth-authorization-server` from the issuer.","Add `registration_endpoint` if DCR is supported.","Verify issuer, authorization, token, and jwks metadata are all reachable."],"maintainer_context":null},{"code":"publish_server_card","severity":"high","title":"Publish a complete server card","why":"Missing or incomplete server-card metadata weakens discovery, documentation, and trust signals.","action":"Serve /.well-known/mcp/server-card.json and include tools, prompts/resources, homepage, and support links.","playbook":["Publish `/.well-known/mcp/server-card.json`.","Include homepage, repository, support, tools, prompts/resources, and auth metadata.","Revalidate the server after publishing the card."],"maintainer_context":null},{"code":"update_protocol_version","severity":"medium","title":"Adopt a current MCP protocol revision","why":"Older protocol revisions reduce compatibility with newer clients and registry programs.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"improve_connector_publishability","severity":"medium","title":"Close connector-publishing gaps","why":"Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"tighten_step_up_auth","severity":"medium","title":"Document minimal scopes and return cleaner auth challenges","why":"Modern clients expect granular scopes and step-up auth signals such as WWW-Authenticate scope hints.","action":"Return granular scopes and WWW-Authenticate challenge hints instead of forcing overly broad auth upfront.","playbook":["Advertise the narrowest viable scopes in OAuth metadata.","Return `WWW-Authenticate` challenges with scope or insufficient-scope hints when additional consent is needed.","Revalidate with both public discovery and auth-required flows."],"maintainer_context":null},{"code":"publish_openid_configuration","severity":"medium","title":"Publish OpenID configuration","why":"OIDC metadata improves token validation and client compatibility.","action":"Expose /.well-known/openid-configuration with issuer, jwks_uri, and supported grants.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"stabilize_tool_surface","severity":"medium","title":"Reduce tool-surface churn","why":"Frequent add/remove or output-shape drift makes published connectors and cached tool snapshots brittle.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"fix_prompts_list","severity":"medium","title":"Repair prompts/list or stop advertising prompts","why":"Prompt metadata should either work live or be removed from the advertised capability set.","action":"Only advertise prompts if prompts/list works and prompt arguments are documented.","playbook":["Only advertise prompts that are actually accessible.","Add prompt descriptions and argument docs.","Run a live `prompts/list` check after any prompt changes."],"maintainer_context":null},{"code":"fix_resources_list","severity":"medium","title":"Repair resources/list or stop advertising resources","why":"Resource metadata should either work live or be removed from the advertised capability set.","action":"Only advertise resources if resources/list works and resources expose stable URIs/types.","playbook":["Only advertise resources with stable URIs and read semantics.","Add MIME/type hints where possible.","Run a live `resources/list` and `resources/read` check after updates."],"maintainer_context":null},{"code":"repair_session_resume","severity":"medium","title":"Support resumable HTTP sessions cleanly","why":"Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"expand_utility_coverage","severity":"low","title":"Expose modern utility surfaces like completions, pagination, or tasks","why":"Utility coverage improves interoperability with larger clients and long-lived agent workflows.","action":"Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.","playbook":["Advertise `completions`, pagination cursors, and `tasks` only when they are actually supported.","Return `nextCursor` on large list operations when pagination is available.","Document task support and whether it requires step-up auth."],"maintainer_context":null},{"code":"expand_advanced_capabilities","severity":"low","title":"Publish newer MCP capability signals","why":"Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_to_official_registry","severity":"low","title":"Publish or reconcile the server in the official MCP registry","why":"Official registry presence improves discovery confidence and cross-source consistency.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null}],"publisher_claim":{"verified":false,"status":"unclaimed","claim_url":"https://verify.sentinelsignal.io/claim?server=omniologynow-rgb%2Fmcp-server&source=report_json","reason_code":"machine_attention_detected","reason":"Agents and crawlers are already evaluating this server. Claim to publish authoritative owner, security, trust, and integration metadata.","score_neutral":true},"observed_attention":{"schema":"verify.observed_attention.v1","window_days":30,"level":"low","label":"Low observed attention","summary":"Recent machine-readable trust and discovery activity observed for this server.","segments":{"useful_ai_user":{"level":"none","observed":false,"description":"AI-assisted user sessions such as ChatGPT/User or Claude/User."},"machine_trust_evaluator":{"level":"none","observed":false,"description":"Synthetic sessions inspecting multiple trust surfaces such as report, policy, ledger, badge, trust-summary, or compare."},"possible_agent_or_script":{"level":"none","observed":false,"description":"Structured direct sessions with rapid profile, compare, report, policy, badge, or trust-surface fan-out."},"isolated_machine_surface":{"level":"none","observed":false,"description":"Aged-out direct synthetic singleton sessions that touched a machine-readable trust surface without becoming a broader evaluator."},"ai_crawler":{"level":"low","observed":true,"description":"Known AI crawler activity such as ClaudeBot, GPTBot, or similar crawlers."},"search_crawler":{"level":"none","observed":false,"description":"Search and SEO crawler activity."},"browser_like_automation":{"level":"none","observed":false,"description":"Browser-like synthetic sessions with rapid structured endpoint activity."},"confirmed_human":{"level":"none","observed":false,"description":"Confirmed browser-session human activity."}},"surfaces_observed":{"server_profile":true,"compare":false,"compare_json":false,"compare_api":false,"report_json":false,"policy":false,"ledger":false,"badge_metadata":false,"badge_svg":false,"trust_summary":false,"mcp_tool":false},"claim_prompt":{"recommended":true,"reason":"This server has recent machine attention. A verified publisher claim can improve owner, policy, security, and trust metadata available to agents."},"notes":["Observed attention is based on segmented first-party telemetry.","Crawler and evaluator activity is not treated as confirmed human demand.","Public levels are bucketed to avoid exposing raw traffic counts."]},"owner_activation":{"claim_recommended":true,"reason":"ai_discovery_detected","headline":"AI discovery detected","message":"This server is being discovered by AI users, crawlers, or machine trust evaluators on Verify. Claim this profile to add publisher metadata, official links, a security contact, and machine-readable trust details agents can use.","claim_url":"https://verify.sentinelsignal.io/claim?server=omniologynow-rgb%2Fmcp-server&source=report_json","trust_summary_url":"https://verify.sentinelsignal.io/v1/servers/omniologynow-rgb/mcp-server/trust-summary"},"related_machine_surfaces":{"compare_index":"/compare.json","compare_api":"/v1/compare?server=omniologynow-rgb%2Fmcp-server","trust_summary":"/v1/servers/omniologynow-rgb/mcp-server/trust-summary","ledger":"/v1/servers/omniologynow-rgb/mcp-server/ledger","policy":"/v1/servers/omniologynow-rgb/mcp-server/policy","report":"/v1/servers/omniologynow-rgb/mcp-server/report"},"intelligence_api":{"available":true,"signup_url":"https://verify.sentinelsignal.io/verify-intelligence-api","use_case":"Programmatic MCP server trust, comparison, policy, and evidence enrichment."}}