{"schema_version":"verify.report.v1","generated_at":"2026-07-31T10:38:05.377364+00:00","snapshot_id":"trustsnap_4167a6e67c449c8f","server":{"namespace":"ai.bankee","name":"inferventis-mcp","title":"Inferventis MCP Server","description":"Loan & mortgage calculator, compound interest, ROI, crypto prices, FX conversion for AI agents.","homepage_url":"https://mcp-server-295985738387.europe-west1.run.app","docs_url":null,"icon_url":null,"support_url":null,"remote_url":"https://mcp-server-295985738387.europe-west1.run.app/mcp","server_card_url":null,"latest_version":"1.0.2","current_status":"healthy","current_score":69.82,"transport_type":"streamable-http","has_oauth":false,"has_dcr":false,"has_prompts":false,"tool_count":20,"current_validation_schema_version":"16d1d270090d6c8f","last_validated_at":"2026-07-31T05:34:38.788995+00:00","registry_source":"official_registry","registry_identifier":"ai.bankee/inferventis-mcp","canonical_identifier":"ai.bankee/inferventis-mcp","current_score_components":{"auth_operability_score":2.0,"error_contract_score":1.2,"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":1.0,"maintenance_signal_score":3.0,"adoption_signal_score":3.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":2.0,"transport_compliance_score":2.0,"utility_coverage_score":2.0,"advanced_capability_coverage_score":3.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":4.0,"provenance_divergence_score":4.0,"safety_transparency_score":2.0,"tool_capability_clarity_score":4.0,"destructive_operation_safety_score":2.0,"egress_ssrf_resilience_score":2.0,"execution_sandbox_safety_score":1.0,"data_exfiltration_resilience_score":3.7,"least_privilege_scope_score":2.0,"secret_handling_hygiene_score":3.7,"dependency_supply_chain_signal_score":2.5,"input_sanitization_safety_score":3.0,"tool_namespace_clarity_score":4.0},"capability_taxonomy":["development","database","search","communication","read","write","admin","finance","automation","secrets","export","productivity","monitoring","exec","network","web","delete","healthcare","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.","You cannot complete an authenticated client flow."],"requires_auth":true,"supports_oauth":false,"risk_level":"critical"},"taxonomy_tags":["development","database","search","communication"],"score_decomposition":[{"key":"access_protocol","label":"Access & Protocol","score":31.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":2.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.2,"max_score":56.0,"hint":"How well the tool/resource interface communicates and behaves under automation.","components":[{"key":"error_contract_score","score":1.2},{"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":3.0},{"key":"tool_snapshot_churn_score","score":3.0},{"key":"connector_replay_score","score":3.0},{"key":"recovery_semantics_score","score":1.0}]},{"key":"security_posture","label":"Security Posture","score":25.4,"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":2.0},{"key":"egress_ssrf_resilience_score","score":2.0},{"key":"execution_sandbox_safety_score","score":1.0},{"key":"data_exfiltration_resilience_score","score":3.7},{"key":"secret_handling_hygiene_score","score":3.7},{"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":21.5,"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.0},{"key":"safety_transparency_score","score":2.0},{"key":"dependency_supply_chain_signal_score","score":2.5},{"key":"official_registry_presence_score","score":4.0},{"key":"provenance_divergence_score","score":4.0}]},{"key":"adoption_market","label":"Adoption & Market","score":6.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":3.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 80."},{"label":"Generic Streamable HTTP","reason":"Generic Streamable HTTP is marked compatible with score 100."}],"history_summary":{"points":[{"timestamp":"2026-07-31T05:34:38.788995+00:00","score":69.82,"status":"healthy","latency_ms":1311.05,"tool_count":20,"prompt_count":0,"resource_count":0}],"status_counts":{"healthy":1},"score_delta_7d":null,"score_delta_30d":null,"avg_latency_ms":1311.05,"healthy_ratio_recent":1.0,"freshness_hours":5.0,"latest_status":"healthy"},"validation_timeline":[{"timestamp":"2026-07-31T05:34:38.788995+00:00","summary_status":"healthy","score":69.82,"protocol_version":"2025-03-26","auth_mode":"public","tool_count":20,"prompt_count":0,"resource_count":0,"high_risk_tools":4,"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 5.0 hours.","live_check_count":26,"validation_age_hours":5.0},"incident_feed":[{"type":"validation_snapshot","timestamp":"2026-07-31T05:34:38.788995+00:00","title":"Latest validation: healthy","message":"Score 69.8 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_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}],"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":"Add confirmation or dry-run semantics for risky 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://mcp-server-295985738387.europe-west1.run.app/mcp\n# No OAuth metadata detected.\n# Server: ai.bankee/inferventis-mcp"},{"key":"claude_desktop","label":"Claude Desktop","score":100.0,"compatibility":"compatible","missing_requirements":[],"snippet":"{\n  \"mcpServers\": {\n    \"inferventis-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-remote\", \"https://mcp-server-295985738387.europe-west1.run.app/mcp\"]\n    }\n  }\n}"},{"key":"smithery","label":"Smithery","score":80.0,"compatibility":"compatible","missing_requirements":["Machine-readable failure semantics should be present."],"snippet":"smithery mcp add \"https://mcp-server-295985738387.europe-west1.run.app/mcp\""},{"key":"generic_streamable_http","label":"Generic Streamable HTTP","score":100.0,"compatibility":"compatible","missing_requirements":[],"snippet":"curl -sS https://mcp-server-295985738387.europe-west1.run.app/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":"warning","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://mcp-server-295985738387.europe-west1.run.app/mcp\n# No OAuth metadata detected.\n# Server: ai.bankee/inferventis-mcp","claude_desktop":"{\n  \"mcpServers\": {\n    \"inferventis-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-remote\", \"https://mcp-server-295985738387.europe-west1.run.app/mcp\"]\n    }\n  }\n}","smithery":"smithery mcp add \"https://mcp-server-295985738387.europe-west1.run.app/mcp\"","generic_http":"curl -sS https://mcp-server-295985738387.europe-west1.run.app/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":"ai.bankee/inferventis-mcp","registry_source":"official_registry","remote_url":"https://mcp-server-295985738387.europe-west1.run.app/mcp","canonical":true,"score":69.82}],"raw_evidence":{"server_identifier":"ai.bankee/inferventis-mcp","remote_url":"https://mcp-server-295985738387.europe-west1.run.app/mcp","server_card_payload":null,"checks":{"server_card":{"status":"error","latency_ms":128.99,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://mcp-server-295985738387.europe-west1.run.app/.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":120.69,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://mcp-server-295985738387.europe-west1.run.app/.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":103.68,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/mcp","payload":{"result":{"protocolVersion":"2025-03-26","capabilities":{"tools":{}},"serverInfo":{"name":"mcp-server-platform","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":160.15,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/mcp","payload":{"result":{"tools":[{"name":"financial_calculator","description":"Performs precise financial calculations across six calculation types entirely locally with no external API dependency. compound_interest computes the final value and total interest earned on a principal over time at a given annual rate. loan_repayment calculates the monthly payment, total repayable amount, and total interest for a mortgage or loan given the principal, annual rate, and term in months. roi returns return on investment as a percentage and absolute profit or loss, with optional annualised ROI when a holding period is provided. present_value discounts a future cash amount back to its current value using a discount rate. future_value projects a present amount forward at a compounding annual rate. break_even finds the unit volume and revenue at which fixed and variable costs are fully covered by sales. Use this tool when an agent needs to perform any structured financial calculation — loan affordability, investment return, discounted cash flow, or cost analysis. Prefer financial_calculator_lite when only the single headline result is needed rather than a full structured breakdown. Do not use this tool to fetch live market prices or exchange rates — use stock_quote for stock prices, crypto_price for cryptocurrency prices, or currency_convert for FX rates.","inputSchema":{"type":"object","properties":{"calculator_type":{"type":"string","description":"The type of financial calculation to perform. Must be one of: compound_interest, loan_repayment, roi, present_value, future_value, break_even."},"principal":{"type":"number","description":"Starting amount or loan amount in your chosen currency. Used for compound_interest, loan_repayment, and future_value calculations."},"rate":{"type":"number","description":"Annual interest or discount rate expressed as a percentage. Example: 5 for 5% per year. Used for compound_interest, loan_repayment, present_value, and future_value."},"periods":{"type":"number","description":"Number of time periods. For compound_interest and future_value: years. For loan_repayment: months. For roi: years used for annualised ROI."},"initial_value":{"type":"number","description":"Starting value of an investment or asset. Used for roi calculations."},"final_value":{"type":"number","description":"Ending value of an investment or asset. Used for roi and present_value calculations."},"discount_rate":{"type":"number","description":"Annual discount rate as a percentage for present value calculations. Represents the required rate of return or cost of capital."},"future_amount":{"type":"number","description":"The target future cash amount to discount back to present value. Used for present_value calculations."},"fixed_costs":{"type":"number","description":"Total fixed costs of the business or project that do not vary with output volume. Used for break_even calculations."},"variable_cost_per_unit":{"type":"number","description":"The variable cost incurred for each unit produced or sold. Used for break_even calculations."},"price_per_unit":{"type":"number","description":"The selling price per unit of product or service. Used for break_even calculations."}},"required":["calculator_type"]}},{"name":"open_banking_transactions","description":"Retrieves bank account balances and transaction history via PSD2 Open Banking (TrueLayer), covering 300+ UK and European banks. Returns the account balance, ISO 4217 currency code, and up to 100 recent transactions — each with date, merchant description, amount, and category. Supports optional date filtering to narrow the transaction window. Use this tool when an agent needs to inspect a user's spending history, verify a payment has cleared, assess account affordability, categorise recent bank transactions, or produce a financial summary from live bank data. Do not use for payment initiation — this tool is strictly read-only. Do not use for Stripe-specific payment records, subscription billing, or failed charge investigation — use stripe_payments instead. Requires a TrueLayer access token; returns structured mock data if no token is configured.","inputSchema":{"type":"object","properties":{"account_id":{"type":"string","description":"TrueLayer account ID to retrieve transactions for. Obtain from a prior account-listing call. Omit to return data for the first connected account."},"limit":{"type":"number","description":"Maximum number of transactions to return. Integer between 1 and 100. Defaults to 10."},"from_date":{"type":"string","description":"Optional start date for filtering transactions. ISO 8601 date format: YYYY-MM-DD. Example: 2026-01-01 to retrieve transactions from 1 January 2026 onwards."}},"required":[]}},{"name":"currency_convert","description":"Converts a monetary amount from one currency to another using live exchange rates sourced from the Frankfurter API (European Central Bank data). Returns the converted amount, the exact exchange rate applied, and the timestamp of the rate. Supports 30+ currencies including USD, EUR, GBP, JPY, CHF, AUD, CAD, SEK, NOK, DKK, SGD, HKD, and all major ISO 4217 codes. Use currency_convert when an agent needs to convert prices, invoices, salaries, payments, or any financial figure between fiat currencies in real time with full ECB-backed rate metadata. Prefer currency_convert_lite or currency_fx_lite when only the numeric converted amount and rate are needed without metadata. Use currency_rates when the conversion must use a historical rate from a specific past date. Do not use this tool for cryptocurrency conversion — use crypto_fx_rates (amount conversion via CoinAPI) or crypto_price (spot price lookup via CoinGecko).","inputSchema":{"type":"object","properties":{"amount":{"type":"number","description":"The monetary amount to convert. Must be a positive number. Decimals are supported. Example: 1500.50 to convert one thousand five hundred and fifty cents."},"from":{"type":"string","description":"The source currency code in ISO 4217 format. Must be uppercase. Examples: USD, GBP, EUR, JPY, CHF, AUD, CAD."},"to":{"type":"string","description":"The target currency code in ISO 4217 format. Must be uppercase. Examples: EUR, JPY, CHF, SGD, HKD, SEK."}},"required":["amount","from","to"]}},{"name":"stock_price_lite","description":"Retrieves the current trading price for a publicly listed stock by ticker symbol. Returns the current price as a single numeric value. This is a lightweight variant of stock_quote — it omits intraday high/low, percentage change, previous close, company name, sector, and exchange metadata. Use stock_price_lite when only the raw current price is needed for a quick lookup or calculation. Prefer stock_quote when the agent also needs price change, intraday range, company information, or a fully structured response suitable for portfolio reporting. Does not support cryptocurrency prices — use crypto_price for full market data (price, volume, market cap) or crypto_price_lite for a lightweight spot price lookup.","inputSchema":{"type":"object","properties":{"symbol":{"type":"string","description":"Stock ticker symbol in uppercase. Examples: AAPL (Apple), MSFT (Microsoft), TSLA (Tesla), GOOGL (Alphabet), AMZN (Amazon), NVDA (Nvidia). Must be a valid exchange-listed ticker."}},"required":["symbol"]}},{"name":"timezone_convert","description":"Converts time between timezones. Useful for time conversion tasks. Use when you need to convert 3:45 PM EST to Pacific Time for a meeting schedule; or find what time it will be in Tokyo when it's 9 AM in New York; or translate an event time from London timezone to Sydney timezone. Also use to find the equivalent time in Dubai for a 2 PM Central European Time appointment; or find the local time in San Francisco when it's midnight in Berlin. Accepts time, from_tz, to_tz, date. Returns the converted local time in the target timezone.","inputSchema":{"type":"object","properties":{"time":{"type":"string","description":"A string representing the time to convert, formatted in 24-hour or 12-hour notation with optional AM/PM indicator, such as '14:30' or '2:45 PM'."},"from_tz":{"type":"string","description":"Timezone identifier for the source time, accepting IANA standard names like 'America/New_York' or common abbreviations such as 'EST', specifying the original time's geographical context."},"to_tz":{"type":"string","description":"Target timezone identifier where the time will be converted, supporting IANA standard timezone names like 'Europe/London' or abbreviations such as 'GMT', indicating the destination geographical region."},"date":{"type":"string","description":"Calendar date string in standard formats like 'YYYY-MM-DD', 'MM/DD/YYYY', or 'DD.MM.YYYY', representing the specific day for the timezone conversion calculation."}},"required":["time","from_tz","to_tz"]}},{"name":"finnhub_stock_quote","description":"Retrieves real-time stock price quotes and company information for any publicly traded company via the Finnhub API. Returns current price, intraday high and low, percentage change from previous close, previous close price, sector, and exchange. Use stock_quote when an agent needs to look up a stock price, check intraday market performance, retrieve company sector data, monitor equity portfolio values, or answer any question about the current trading price of a publicly listed company. Prefer stock_quote over stock_price_lite when the agent needs price change, intraday range, company name, or sector — stock_price_lite returns only the raw current price with no additional context. Do not use for cryptocurrency prices — use crypto_price (CoinGecko, 10,000+ assets) or crypto_price_lite for a lightweight variant. Do not use for fiat currency conversion — use currency_convert or currency_fx_lite. Requires a Finnhub API key to be configured on the server.","inputSchema":{"type":"object","properties":{"symbol":{"type":"string","description":"Stock ticker symbol in uppercase. Examples: AAPL (Apple), MSFT (Microsoft), TSLA (Tesla), GOOGL (Alphabet), AMZN (Amazon), NVDA (Nvidia). Must be a valid exchange-listed ticker symbol."},"include_company_info":{"type":"boolean","description":"Whether to include company name, sector, and exchange details alongside the price quote. Defaults to true. Set to false for a faster, price-only response."}},"required":["symbol"]}},{"name":"crypto_price","description":"Retrieves real-time price data for any cryptocurrency listed on CoinGecko. Returns the current price in any fiat currency, 24-hour percentage change, market capitalisation, and 24-hour trading volume. Supports all major cryptocurrencies including Bitcoin (BTC), Ethereum (ETH), Solana (SOL), XRP, Cardano (ADA), Dogecoin (DOGE), Polygon (MATIC), Chainlink (LINK), Avalanche (AVAX), and 10,000+ additional coins. Use crypto_price when an agent needs the full market picture for a digital asset — price, change, market cap, and volume in one call. Prefer crypto_price_lite when only the spot price and 24h change are needed and a smaller response payload is preferred. Use crypto_fx_rates (via CoinAPI) when converting a specific amount between a cryptocurrency and fiat, or between two cryptocurrencies. Do not use this tool for fiat-to-fiat currency conversion (e.g. USD to EUR) — use currency_convert instead. Do not use when historical price data for a specific past date is required — this tool returns live spot prices only.","inputSchema":{"type":"object","properties":{"coin":{"type":"string","description":"Cryptocurrency name or ticker symbol. Accepts common symbols (BTC, ETH, SOL, XRP, ADA, DOGE, MATIC, LINK, AVAX) or full names (bitcoin, ethereum, solana). Case-insensitive."},"currency":{"type":"string","description":"Target fiat currency code for the price. Must be a valid ISO 4217 code. Defaults to USD. Examples: usd, eur, gbp, jpy, chf, aud, cad."},"include_market_data":{"type":"boolean","description":"Whether to include market capitalisation and 24-hour trading volume alongside the price. Defaults to true. Set to false for a lighter response when only the price is needed."}},"required":["coin"]}},{"name":"crypto_price_lite","description":"Retrieves the current spot price and 24-hour change for any cryptocurrency using the CoinGecko public API. Returns price, percentage change, and a timestamp. This is a lightweight variant of crypto_price that omits extended market data (market cap, volume) — use it when only the raw price and 24h direction are needed. Prefer crypto_price when the agent also needs market capitalisation, trading volume, or richer structured output. Use crypto_fx_rates when converting a specific amount between a cryptocurrency and fiat (e.g. 'convert 0.5 BTC to USD') rather than looking up a spot price. Supports all major coins including BTC, ETH, SOL, XRP, ADA, DOGE, and 10,000+ CoinGecko-listed assets. Accepts ticker symbols (BTC, ETH) or full names (bitcoin, ethereum). Target currency defaults to USD but accepts any ISO 4217 code.","inputSchema":{"type":"object","properties":{"coin":{"type":"string","description":"Cryptocurrency ticker symbol (BTC, ETH, SOL) or full CoinGecko name (bitcoin, ethereum, solana). Case-insensitive."},"currency":{"type":"string","description":"ISO 4217 fiat currency code for the returned price. Defaults to 'usd'. Examples: usd, eur, gbp, jpy."}},"required":["coin"]}},{"name":"currency_rates","description":"Retrieves live and historical fiat currency exchange rates from the Frankfurter API (sourced from the European Central Bank). Supports both real-time conversion and historical rate lookup for any past date, making it the preferred tool when auditable, ECB-sourced rate data is required. Use currency_rates when a rate from a specific past date is required (e.g. accounting, tax, or audit), or when the ECB source must be documented. Prefer currency_convert when only a live conversion is needed with a richer structured response. Prefer currency_convert_lite for lightweight live ECB conversions without historical requirements. Prefer currency_fx_lite when ECB sourcing is not required and only a lightweight live result is needed. Use currency_convert_open when a non-ECB rate source is acceptable and Frankfurter is unavailable. Does not support cryptocurrency pairs — use crypto_fx_rates for any conversion involving a digital asset.","inputSchema":{"type":"object","properties":{"amount":{"type":"number","description":"Monetary amount to convert. Must be a positive number."},"from":{"type":"string","description":"ISO 4217 source currency code (e.g. 'USD', 'GBP', 'EUR'). Case-insensitive."},"to":{"type":"string","description":"ISO 4217 target currency code (e.g. 'EUR', 'JPY', 'CHF'). Case-insensitive."}},"required":["amount","from","to"]}},{"name":"currency_fx_lite","description":"Converts a foreign exchange (FX) amount between two fiat currencies using live mid-market rates. Returns the converted amount and the exchange rate applied. Use currency_fx_lite when only the numeric result is required and the ECB/Frankfurter data source is not specifically needed. Prefer currency_convert when richer metadata (rate timestamp, ECB-backed Frankfurter source) is needed. Prefer currency_convert_lite for the same minimal output (amount + rate) when ECB/Frankfurter rates are specifically required — both tools return identical fields but draw from different rate providers. Use currency_rates when a historical rate from a specific past date is required. Use currency_convert_open as an alternative open-rate source. Does not support cryptocurrency pairs — use crypto_fx_rates for crypto-to-fiat or crypto-to-crypto conversions, or crypto_price_lite for a spot price lookup. Accepts all major ISO 4217 currency codes.","inputSchema":{"type":"object","properties":{"amount":{"type":"number","description":"Monetary amount to convert. Must be a positive number."},"from":{"type":"string","description":"ISO 4217 source currency code (e.g. 'USD', 'GBP', 'EUR', 'JPY'). Case-insensitive."},"to":{"type":"string","description":"ISO 4217 target currency code (e.g. 'EUR', 'CHF', 'AUD', 'CAD'). Case-insensitive."}},"required":["amount","from","to"]}},{"name":"bank_accounts","description":"Retrieves bank account details and recent transaction history via a connected bank API integration. Returns a list of transactions for the specified account, or for all linked accounts when no account ID is provided. Use bank_accounts when an agent needs to inspect account balances, review recent spending, categorise transactions, or reconcile records against a specific bank account. Prefer open_banking_transactions when the integration uses a PSD2 Open Banking provider (TrueLayer) covering 300+ UK and European banks — open_banking_transactions returns richer transaction metadata including merchant names, categories, and running balances. Prefer stripe_payments when the source of payments is a Stripe merchant account rather than a retail bank account. This tool requires a valid bank API credential to be configured on the server.","inputSchema":{"type":"object","properties":{"account_id":{"type":"string","description":"Identifier of the specific bank account to query. When omitted, transactions across all linked accounts are returned."},"limit":{"type":"number","description":"Maximum number of transactions to return. Defaults to 20. Maximum 100."}},"required":[]}},{"name":"currency_convert_lite","description":"Converts a monetary amount between any two fiat currencies using live exchange rates from the Frankfurter API (European Central Bank data). Returns the converted amount and the exchange rate applied. This is a lightweight variant of currency_convert — minimal response without rate timestamp or source attribution. Use currency_convert_lite when only the converted value and rate are needed and ECB/Frankfurter-sourced rates are preferred. Prefer currency_convert when the agent also needs rate timestamp and richer structured output. Prefer currency_fx_lite for the same minimal output (amount + rate) when the ECB data source is not specifically required — both return identical fields but draw from different rate providers. Use currency_rates when a historical rate from a specific past date is required (e.g. accounting, tax, or audit). Use currency_convert_open as a fallback when Frankfurter is unavailable or rate-limited. Does not support cryptocurrency pairs — use crypto_price or crypto_fx_rates for crypto-to-fiat conversions. Accepts all major ISO 4217 currency codes (USD, EUR, GBP, JPY, CHF, AUD, CAD, SGD, NOK, SEK, DKK, PLN, CZK, HUF, etc.).","inputSchema":{"type":"object","properties":{"amount":{"type":"number","description":"Monetary amount to convert. Must be a positive number."},"from":{"type":"string","description":"ISO 4217 code of the source currency (e.g. 'USD', 'GBP', 'EUR'). Case-insensitive."},"to":{"type":"string","description":"ISO 4217 code of the target currency (e.g. 'EUR', 'JPY', 'CHF'). Case-insensitive."}},"required":["amount","from","to"]}},{"name":"financial_calculator_lite","description":"Performs common financial calculations locally with no external API dependency. Supports compound interest, loan repayment, return on investment (ROI), present value, future value, and break-even analysis. Returns a single numeric result for the requested calculation type. This is a lightweight variant of financial_calculator — it returns only the result number rather than a full structured breakdown (monthly payment, total interest, annualised ROI, etc.). Use financial_calculator_lite when only the headline figure is needed. Prefer financial_calculator when the agent needs a full breakdown, multiple sub-values, or labelled output fields for compound interest earned, total repayable, or annualised returns. Neither this tool nor financial_calculator fetches live market data — for live prices use stock_quote, crypto_price, or currency_convert.","inputSchema":{"type":"object","properties":{"calculator_type":{"type":"string","description":"Type of calculation to perform. Accepted values: 'compound_interest', 'loan_repayment', 'roi', 'present_value', 'future_value', 'break_even'."},"principal":{"type":"number","description":"Starting amount or loan principal in currency units. Required for compound_interest, loan_repayment, present_value, and future_value."},"rate":{"type":"number","description":"Annual interest or discount rate as a decimal (e.g. 0.05 for 5%). Required for compound_interest, loan_repayment, present_value, and future_value."},"periods":{"type":"number","description":"Number of compounding periods (years) or loan term in months depending on calculator_type. Required for compound_interest, loan_repayment, future_value, and present_value."},"initial_value":{"type":"number","description":"Initial investment amount. Required for roi calculations."},"final_value":{"type":"number","description":"Final investment value. Required for roi calculations."}},"required":["calculator_type"]}},{"name":"web_news_headlines","description":"Retrieves the latest real-time news headlines and article summaries from BBC News and The Guardian across nine topic categories. Returns structured articles with headline, description, source name, article URL, and publication date — sorted most recent first. No API key required. Use this tool when an agent needs current news about a specific topic, wants to summarise today's headlines, needs to research recent events, monitor a subject area for new developments, or build a news briefing. Do not use this tool to read the full content of a specific article — use web_url_reader instead, passing the article URL returned by this tool. Do not use when news from sources outside BBC News and The Guardian is required.","inputSchema":{"type":"object","properties":{"topic":{"type":"string","description":"News topic category to retrieve headlines for. Accepted values: 'general' (top stories across all categories), 'technology' (tech industry and digital news), 'business' (markets, economy, and corporate news), 'science' (research, environment, and discoveries), 'health' (medical and public health news), 'politics' (government and political news), 'sport' (sports and athletics), 'ai' (artificial intelligence and machine learning news), 'world' (international and global news). Defaults to 'general' if omitted or unrecognised."},"keyword":{"type":"string","description":"Optional search keyword to filter headlines. Only articles whose title or description contains this keyword will be returned. Case-insensitive. Examples: 'OpenAI', 'interest rates', 'climate change'. Omit to return all headlines for the chosen topic."},"limit":{"type":"number","description":"Maximum number of articles to return. Integer between 1 and 20. Defaults to 10. Use a lower number for a quick briefing and a higher number for comprehensive coverage."}},"required":[]}},{"name":"stripe_payment_records","description":"Retrieves payment and charge records from a Stripe merchant account. Returns a list of payment records filtered by the requested query type. Use stripe_payment_records when an agent needs to review recent charges, refunds, disputes, or subscription payments from a Stripe account. This is a lightweight variant of stripe_payments — it returns a simple records array rather than the full structured Stripe response with customer details, metadata, and pagination cursors. Prefer stripe_payments when the agent needs complete Stripe charge objects including customer IDs, payment method details, metadata fields, and processing status breakdowns. Prefer open_banking_transactions or bank_accounts when the payment data source is a bank account rather than a Stripe merchant account. Requires a Stripe API key to be configured on the server.","inputSchema":{"type":"object","properties":{"query_type":{"type":"string","description":"Type of payment records to retrieve. Accepted values: 'recent_payments' (latest charges), 'refunds' (refund records), 'disputes' (disputed charges), 'subscriptions' (recurring subscription payments)."},"limit":{"type":"number","description":"Maximum number of records to return. Defaults to 10. Maximum 50."}},"required":["query_type"]}},{"name":"crypto_fx_rates","description":"Converts an amount between any cryptocurrency and fiat currency pair, or between two cryptocurrencies, using real-time exchange rates sourced from CoinAPI. Supports all crypto-to-fiat (BTC/USD, ETH/EUR), fiat-to-crypto (USD/BTC), and cross-crypto (BTC/ETH) conversions. Use crypto_fx_rates when the conversion involves at least one cryptocurrency and a specific amount must be converted. Prefer crypto_price when only the spot price of a coin in fiat is needed without converting a specific amount, or prefer crypto_price_lite for the same spot price with a minimal response schema. Prefer currency_convert or currency_fx_lite when both currencies are fiat — those tools use ECB/Frankfurter or mid-market rates and do not consume a CoinAPI quota. Requires a CoinAPI key to be configured on the server.","inputSchema":{"type":"object","properties":{"amount":{"type":"number","description":"Amount to convert. Must be a positive number. Denominated in the 'from' currency."},"from":{"type":"string","description":"Source currency code. Accepts ISO 4217 fiat codes (USD, EUR, GBP) or cryptocurrency ticker symbols (BTC, ETH, SOL, XRP). Case-insensitive."},"to":{"type":"string","description":"Target currency code. Accepts ISO 4217 fiat codes (USD, EUR, GBP) or cryptocurrency ticker symbols (BTC, ETH, SOL, XRP). Case-insensitive."}},"required":["amount","from","to"]}},{"name":"currency_convert_open","description":"Converts a monetary amount between two fiat currencies using live exchange rates from an open currency exchange API. Returns the converted amount and the rate applied. Use currency_convert_open as an alternative live-rate source when currency_convert (Frankfurter/ECB) or currency_fx_lite are unavailable or rate-limited. The underlying source is an open public exchange rate feed suitable for informational use. Prefer currency_convert or currency_rates when ECB-auditable Frankfurter rates are required for accounting or compliance. Prefer currency_convert_lite for the same minimal output (amount + rate) backed by ECB/Frankfurter rates. Prefer currency_fx_lite for lightweight mid-market conversions. Does not support cryptocurrency pairs — use crypto_fx_rates for any conversion involving a digital asset.","inputSchema":{"type":"object","properties":{"amount":{"type":"number","description":"Monetary amount to convert. Must be a positive number."},"from":{"type":"string","description":"ISO 4217 source currency code (e.g. 'USD', 'GBP', 'EUR'). Case-insensitive."},"to":{"type":"string","description":"ISO 4217 target currency code (e.g. 'EUR', 'JPY', 'CHF'). Case-insensitive."}},"required":["amount","from","to"]}},{"name":"stripe_payments","description":"Retrieves live payment data from a Stripe account via the Stripe API. Supports four query types: recent_payments returns the latest payment intents with status, amount, and currency; failed_charges returns declined or failed charges with failure reasons and error codes; customers returns customer records with name, email, and payment method details; subscriptions returns active and cancelled subscription plans with billing interval and status. Use stripe_payments when an agent needs to investigate payment failures, audit recent transaction activity, retrieve customer billing records, or check subscription status within a Stripe account — it returns full Stripe charge objects with customer IDs, metadata, and processing details. Prefer stripe_payment_records for a lighter-weight Stripe query returning only a simple records array without full Stripe object structure. Do not use for bank account transactions or PSD2 Open Banking data — use open_banking_transactions instead. Do not use for generic bank account history — use bank_accounts instead. Requires a Stripe secret key to be configured on the server.","inputSchema":{"type":"object","properties":{"query_type":{"type":"string","description":"The type of Stripe data to retrieve. Must be one of: recent_payments (latest payment intents), failed_charges (declined or failed charges with failure reasons), customers (customer records with contact and payment method info), subscriptions (billing subscriptions with status and plan details)."},"limit":{"type":"number","description":"Number of records to return. Integer between 1 and 25. Defaults to 10."}},"required":["query_type"]}},{"name":"platform_tool_finder","description":"Discovers the most relevant tools available on this MCP server for a given task using local semantic search (MiniLM-L6-v2 embeddings). Accepts a plain-English description of what needs to be accomplished and returns the best matching tools ranked by relevance, along with their input schemas, pricing tier, and exact call instructions. Use this tool first when you are connected to this server but do not know which specific tool to call — describe your goal and let platform_tool_finder identify the right capability. Do not use this tool if you already know the tool name — call that tool directly instead. Returns up to 10 results ranked by semantic similarity score.","inputSchema":{"type":"object","properties":{"intent":{"type":"string","description":"Plain-English description of what you need to accomplish. Be specific about the goal, not the tool name. Example: 'I need to convert 500 dollars to euros at the current exchange rate' or 'get the latest technology news headlines'."},"model_hint":{"type":"string","description":"Optional: the name of the calling LLM model. Examples: claude, gpt-4, gemini. Used to apply model-specific manifest variant ranking when available. Omit if unknown."},"top_k":{"type":"number","description":"How many ranked results to return. Integer between 1 and 10. Defaults to 3. Use a higher value when the best tool is ambiguous."}},"required":["intent"]}},{"name":"web_url_reader","description":"Fetches any public web page and returns clean, readable plain text stripped of HTML, navigation, scripts, advertisements, and boilerplate. Returns the page title, meta description, word count, and main body text ready for analysis or summarisation. Use this tool when an agent needs to read the content of a specific web page or article URL — for example to summarise an article, extract facts from a page, verify a claim by reading the source, or convert a web page into plain text to pass to another tool. Pass article URLs returned by web_news_headlines to this tool to read full article content. Do not use this tool to discover current news headlines — use web_news_headlines instead. Does not execute JavaScript — best suited for standard HTML content pages. Will not work with paywalled, login-protected, or JavaScript-rendered single-page applications.","inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"The full public URL to fetch and read. Must include the scheme. Examples: 'https://en.wikipedia.org/wiki/Artificial_intelligence', 'https://www.bbc.com/news/technology-12345678'. Only HTTP and HTTPS URLs are supported."},"max_chars":{"type":"number","description":"Maximum number of characters to return from the page body text. Defaults to 8000. Set higher (up to 50000) for long articles or documents. Set lower for quick headline extraction. The response indicates whether content was truncated."},"include_links":{"type":"boolean","description":"Whether to include a list of hyperlinks found on the page alongside the text content. Defaults to false. Set to true when the agent needs to discover further URLs to follow, such as when crawling a site or finding references."}},"required":["url"]}}]},"jsonrpc":"2.0","id":2},"http_status":200,"headers":{"content-type":"text/event-stream"}}},"prompts_list":{"status":"auth_required","latency_ms":101.92,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/mcp","error":"Client error '401 Unauthorized' for url 'https://mcp-server-295985738387.europe-west1.run.app/mcp'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401","http_status":401,"payload":{},"headers":{"content-type":"application/json; charset=utf-8"},"reason":"auth_required"}},"prompt_get":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"resources_list":{"status":"auth_required","latency_ms":101.58,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/mcp","error":"Client error '401 Unauthorized' for url 'https://mcp-server-295985738387.europe-west1.run.app/mcp'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401","http_status":401,"payload":{},"headers":{"content-type":"application/json; charset=utf-8"},"reason":"auth_required"}},"resource_read":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"probe_noise_resilience":{"status":"ok","latency_ms":101.66,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/robots.txt","http_status":404,"headers":{"content-type":"application/json; charset=utf-8"}}},"determinism_probe":{"status":"ok","latency_ms":141.12,"details":{"attempts":2,"successful":2,"matches":2,"stable_ratio":1.0,"baseline_signature":"3d2d7b44a853fa4e31421e69ec06f0953bb5eb45b0301b068adb970df332bce1","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":"warning","latency_ms":null,"details":{"oauth_present":false,"auth_required_checks":["prompts_list","resources_list"],"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":103.7,"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":"ok","latency_ms":90.62,"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":"auth_required","http_status":401},"initialize_capability_keys":["tools"]}},"advanced_capabilities_probe":{"status":"warning","latency_ms":null,"details":{"capabilities":{"prompts":true,"resources":true,"completions":false,"roots":false,"sampling":false,"elicitation":false,"structured_outputs":false,"resource_links":false},"enabled_count":2,"enabled":["prompts","resources"],"initialize_capability_keys":["tools"]}},"tool_snapshot_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot","current_tool_count":20}},"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":["login"],"oauth_supported":false,"prompt_available":false}},"action_safety_probe":{"status":"error","latency_ms":null,"details":{"summary":{"tool_count":20,"high_risk_tools":4,"destructive_tools":1,"exec_tools":4,"egress_tools":1,"secret_tools":3,"bulk_access_tools":5,"risk_distribution":{"low":4,"medium":12,"high":1,"critical":3},"capability_distribution":{"read":20,"write":12,"admin":3,"secrets":3,"export":5,"exec":4,"network":4,"delete":1}},"auth_present":false,"safeguard_count":2,"confirmation_signals":[]}},"official_registry_probe":{"status":"ok","latency_ms":null,"details":{"registry_source":"official_registry","registry_identifier":"ai.bankee/inferventis-mcp","direct_match":true,"official_peer_count":1}},"provenance_divergence_probe":{"status":"ok","latency_ms":null,"details":{"direct_official_match":true,"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":2}},"connector_publishability_probe":{"status":"warning","latency_ms":null,"details":{"transport":"streamable-http","tool_count":20,"high_risk_tools":4,"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://mcp-server-295985738387.europe-west1.run.app/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://mcp-server-295985738387.europe-west1.run.app/.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://mcp-server-295985738387.europe-west1.run.app/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://mcp-server-295985738387.europe-west1.run.app/.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":1311.05,"healthy_run_ratio_recent":1.0,"registry_presence_count":1,"active_alert_count":0,"watcher_count":0,"verified_claim":false,"taxonomy_tags":["development","database","search","communication"],"score_trend":[69.82],"remediation_count":16,"high_risk_tool_count":4,"destructive_tool_count":1,"exec_tool_count":4},"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":16.67,"signals":{"verified_maintainer_claim":false,"support_contact_present":false,"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":20,"high_risk_tools":4,"destructive_tools":1,"exec_tools":4,"egress_tools":1,"secret_tools":3,"bulk_access_tools":5,"risk_distribution":{"low":4,"medium":12,"high":1,"critical":3},"capability_distribution":{"read":20,"write":12,"admin":3,"secrets":3,"export":5,"exec":4,"network":4,"delete":1}},"tool_security_inventory":[{"name":"financial_calculator","description":"Performs precise financial calculations across six calculation types entirely locally with no external API dependency. compound_interest computes the final value and total interest earned on a principal over time at a given annual rate. loan_repayment calculates the monthly payment, total repayable amount, and total interest for a mortgage or loan given the principal, annual rate, and term in months. roi returns return on investment as a percentage and absolute profit or loss, with optional annualised ROI when a holding period is provided. present_value discounts a future cash amount back to its current value using a discount rate. future_value projects a present amount forward at a compounding annual rate. break_even finds the unit volume and revenue at which fixed and variable costs are fully covered by sales. Use this tool when an agent needs to perform any structured financial calculation — loan affordability, investment return, discounted cash flow, or cost analysis. Prefer financial_calculator_lite when only the single headline result is needed rather than a full structured breakdown. Do not use this tool to fetch live market prices or exchange rates — use stock_quote for stock prices, crypto_price for cryptocurrency prices, or currency_convert for FX rates.","capabilities":["read","write","admin"],"risk_flags":["admin_mutation"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","admin","development","finance","automation"]},{"name":"open_banking_transactions","description":"Retrieves bank account balances and transaction history via PSD2 Open Banking (TrueLayer), covering 300+ UK and European banks. Returns the account balance, ISO 4217 currency code, and up to 100 recent transactions — each with date, merchant description, amount, and category. Supports optional date filtering to narrow the transaction window. Use this tool when an agent needs to inspect a user's spending history, verify a payment has cleared, assess account affordability, categorise recent bank transactions, or produce a financial summary from live bank data. Do not use for payment initiation — this tool is strictly read-only. Do not use for Stripe-specific payment records, subscription billing, or failed charge investigation — use stripe_payments instead. Requires a TrueLayer access token; returns structured mock data if no token is configured.","capabilities":["read","admin","secrets","export"],"risk_flags":["bulk_data_access","secret_material_access"],"risk_level":"medium","has_safeguards":true,"capability_taxonomy":["read","admin","secrets","export","development","finance","automation"]},{"name":"currency_convert","description":"Converts a monetary amount from one currency to another using live exchange rates sourced from the Frankfurter API (European Central Bank data). Returns the converted amount, the exact exchange rate applied, and the timestamp of the rate. Supports 30+ currencies including USD, EUR, GBP, JPY, CHF, AUD, CAD, SEK, NOK, DKK, SGD, HKD, and all major ISO 4217 codes. Use currency_convert when an agent needs to convert prices, invoices, salaries, payments, or any financial figure between fiat currencies in real time with full ECB-backed rate metadata. Prefer currency_convert_lite or currency_fx_lite when only the numeric converted amount and rate are needed without metadata. Use currency_rates when the conversion must use a historical rate from a specific past date. Do not use this tool for cryptocurrency conversion — use crypto_fx_rates (amount conversion via CoinAPI) or crypto_price (spot price lookup via CoinGecko).","capabilities":["read"],"risk_flags":[],"risk_level":"low","has_safeguards":false,"capability_taxonomy":["read","development","finance","automation"]},{"name":"stock_price_lite","description":"Retrieves the current trading price for a publicly listed stock by ticker symbol. Returns the current price as a single numeric value. This is a lightweight variant of stock_quote — it omits intraday high/low, percentage change, previous close, company name, sector, and exchange metadata. Use stock_price_lite when only the raw current price is needed for a quick lookup or calculation. Prefer stock_quote when the agent also needs price change, intraday range, company information, or a fully structured response suitable for portfolio reporting. Does not support cryptocurrency prices — use crypto_price for full market data (price, volume, market cap) or crypto_price_lite for a lightweight spot price lookup.","capabilities":["read"],"risk_flags":[],"risk_level":"low","has_safeguards":false,"capability_taxonomy":["read","automation"]},{"name":"timezone_convert","description":"Converts time between timezones. Useful for time conversion tasks. Use when you need to convert 3:45 PM EST to Pacific Time for a meeting schedule; or find what time it will be in Tokyo when it's 9 AM in New York; or translate an event time from London timezone to Sydney timezone. Also use to find the equivalent time in Dubai for a 2 PM Central European Time appointment; or find the local time in San Francisco when it's midnight in Berlin. Accepts time, from_tz, to_tz, date. Returns the converted local time in the target timezone.","capabilities":["read"],"risk_flags":[],"risk_level":"low","has_safeguards":false,"capability_taxonomy":["read","development","communication","productivity"]},{"name":"finnhub_stock_quote","description":"Retrieves real-time stock price quotes and company information for any publicly traded company via the Finnhub API. Returns current price, intraday high and low, percentage change from previous close, previous close price, sector, and exchange. Use stock_quote when an agent needs to look up a stock price, check intraday market performance, retrieve company sector data, monitor equity portfolio values, or answer any question about the current trading price of a publicly listed company. Prefer stock_quote over stock_price_lite when the agent needs price change, intraday range, company name, or sector — stock_price_lite returns only the raw current price with no additional context. Do not use for cryptocurrency prices — use crypto_price (CoinGecko, 10,000+ assets) or crypto_price_lite for a lightweight variant. Do not use for fiat currency conversion — use currency_convert or currency_fx_lite. Requires a Finnhub API key to be configured on the server.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","automation","monitoring"]},{"name":"crypto_price","description":"Retrieves real-time price data for any cryptocurrency listed on CoinGecko. Returns the current price in any fiat currency, 24-hour percentage change, market capitalisation, and 24-hour trading volume. Supports all major cryptocurrencies including Bitcoin (BTC), Ethereum (ETH), Solana (SOL), XRP, Cardano (ADA), Dogecoin (DOGE), Polygon (MATIC), Chainlink (LINK), Avalanche (AVAX), and 10,000+ additional coins. Use crypto_price when an agent needs the full market picture for a digital asset — price, change, market cap, and volume in one call. Prefer crypto_price_lite when only the spot price and 24h change are needed and a smaller response payload is preferred. Use crypto_fx_rates (via CoinAPI) when converting a specific amount between a cryptocurrency and fiat, or between two cryptocurrencies. Do not use this tool for fiat-to-fiat currency conversion (e.g. USD to EUR) — use currency_convert instead. Do not use when historical price data for a specific past date is required — this tool returns live spot prices only.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","development","automation"]},{"name":"crypto_price_lite","description":"Retrieves the current spot price and 24-hour change for any cryptocurrency using the CoinGecko public API. Returns price, percentage change, and a timestamp. This is a lightweight variant of crypto_price that omits extended market data (market cap, volume) — use it when only the raw price and 24h direction are needed. Prefer crypto_price when the agent also needs market capitalisation, trading volume, or richer structured output. Use crypto_fx_rates when converting a specific amount between a cryptocurrency and fiat (e.g. 'convert 0.5 BTC to USD') rather than looking up a spot price. Supports all major coins including BTC, ETH, SOL, XRP, ADA, DOGE, and 10,000+ CoinGecko-listed assets. Accepts ticker symbols (BTC, ETH) or full names (bitcoin, ethereum). Target currency defaults to USD but accepts any ISO 4217 code.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","development","automation"]},{"name":"currency_rates","description":"Retrieves live and historical fiat currency exchange rates from the Frankfurter API (sourced from the European Central Bank). Supports both real-time conversion and historical rate lookup for any past date, making it the preferred tool when auditable, ECB-sourced rate data is required. Use currency_rates when a rate from a specific past date is required (e.g. accounting, tax, or audit), or when the ECB source must be documented. Prefer currency_convert when only a live conversion is needed with a richer structured response. Prefer currency_convert_lite for lightweight live ECB conversions without historical requirements. Prefer currency_fx_lite when ECB sourcing is not required and only a lightweight live result is needed. Use currency_convert_open when a non-ECB rate source is acceptable and Frankfurter is unavailable. Does not support cryptocurrency pairs — use crypto_fx_rates for any conversion involving a digital asset.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","development","productivity","finance"]},{"name":"currency_fx_lite","description":"Converts a foreign exchange (FX) amount between two fiat currencies using live mid-market rates. Returns the converted amount and the exchange rate applied. Use currency_fx_lite when only the numeric result is required and the ECB/Frankfurter data source is not specifically needed. Prefer currency_convert when richer metadata (rate timestamp, ECB-backed Frankfurter source) is needed. Prefer currency_convert_lite for the same minimal output (amount + rate) when ECB/Frankfurter rates are specifically required — both tools return identical fields but draw from different rate providers. Use currency_rates when a historical rate from a specific past date is required. Use currency_convert_open as an alternative open-rate source. Does not support cryptocurrency pairs — use crypto_fx_rates for crypto-to-fiat or crypto-to-crypto conversions, or crypto_price_lite for a spot price lookup. Accepts all major ISO 4217 currency codes.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","development"]},{"name":"bank_accounts","description":"Retrieves bank account details and recent transaction history via a connected bank API integration. Returns a list of transactions for the specified account, or for all linked accounts when no account ID is provided. Use bank_accounts when an agent needs to inspect account balances, review recent spending, categorise transactions, or reconcile records against a specific bank account. Prefer open_banking_transactions when the integration uses a PSD2 Open Banking provider (TrueLayer) covering 300+ UK and European banks — open_banking_transactions returns richer transaction metadata including merchant names, categories, and running balances. Prefer stripe_payments when the source of payments is a Stripe merchant account rather than a retail bank account. This tool requires a valid bank API credential to be configured on the server.","capabilities":["read","exec","secrets","export"],"risk_flags":["command_execution","bulk_data_access","secret_material_access"],"risk_level":"critical","has_safeguards":false,"capability_taxonomy":["read","exec","secrets","export","development","finance","automation"]},{"name":"currency_convert_lite","description":"Converts a monetary amount between any two fiat currencies using live exchange rates from the Frankfurter API (European Central Bank data). Returns the converted amount and the exchange rate applied. This is a lightweight variant of currency_convert — minimal response without rate timestamp or source attribution. Use currency_convert_lite when only the converted value and rate are needed and ECB/Frankfurter-sourced rates are preferred. Prefer currency_convert when the agent also needs rate timestamp and richer structured output. Prefer currency_fx_lite for the same minimal output (amount + rate) when the ECB data source is not specifically required — both return identical fields but draw from different rate providers. Use currency_rates when a historical rate from a specific past date is required (e.g. accounting, tax, or audit). Use currency_convert_open as a fallback when Frankfurter is unavailable or rate-limited. Does not support cryptocurrency pairs — use crypto_price or crypto_fx_rates for crypto-to-fiat conversions. Accepts all major ISO 4217 currency codes (USD, EUR, GBP, JPY, CHF, AUD, CAD, SGD, NOK, SEK, DKK, PLN, CZK, HUF, etc.).","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","development","finance","automation"]},{"name":"financial_calculator_lite","description":"Performs common financial calculations locally with no external API dependency. Supports compound interest, loan repayment, return on investment (ROI), present value, future value, and break-even analysis. Returns a single numeric result for the requested calculation type. This is a lightweight variant of financial_calculator — it returns only the result number rather than a full structured breakdown (monthly payment, total interest, annualised ROI, etc.). Use financial_calculator_lite when only the headline figure is needed. Prefer financial_calculator when the agent needs a full breakdown, multiple sub-values, or labelled output fields for compound interest earned, total repayable, or annualised returns. Neither this tool nor financial_calculator fetches live market data — for live prices use stock_quote, crypto_price, or currency_convert.","capabilities":["read","write","network"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","network","development","finance","automation"]},{"name":"web_news_headlines","description":"Retrieves the latest real-time news headlines and article summaries from BBC News and The Guardian across nine topic categories. Returns structured articles with headline, description, source name, article URL, and publication date — sorted most recent first. No API key required. Use this tool when an agent needs current news about a specific topic, wants to summarise today's headlines, needs to research recent events, monitor a subject area for new developments, or build a news briefing. Do not use this tool to read the full content of a specific article — use web_url_reader instead, passing the article URL returned by this tool. Do not use when news from sources outside BBC News and The Guardian is required.","capabilities":["read","network","export"],"risk_flags":["bulk_data_access"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","network","export","development","search","web","automation","monitoring"]},{"name":"stripe_payment_records","description":"Retrieves payment and charge records from a Stripe merchant account. Returns a list of payment records filtered by the requested query type. Use stripe_payment_records when an agent needs to review recent charges, refunds, disputes, or subscription payments from a Stripe account. This is a lightweight variant of stripe_payments — it returns a simple records array rather than the full structured Stripe response with customer details, metadata, and pagination cursors. Prefer stripe_payments when the agent needs complete Stripe charge objects including customer IDs, payment method details, metadata fields, and processing status breakdowns. Prefer open_banking_transactions or bank_accounts when the payment data source is a bank account rather than a Stripe merchant account. Requires a Stripe API key to be configured on the server.","capabilities":["read","write","exec","network","export"],"risk_flags":["command_execution","bulk_data_access","freeform_input_surface"],"risk_level":"high","has_safeguards":true,"capability_taxonomy":["read","write","exec","network","export","database","finance","automation"]},{"name":"crypto_fx_rates","description":"Converts an amount between any cryptocurrency and fiat currency pair, or between two cryptocurrencies, using real-time exchange rates sourced from CoinAPI. Supports all crypto-to-fiat (BTC/USD, ETH/EUR), fiat-to-crypto (USD/BTC), and cross-crypto (BTC/ETH) conversions. Use crypto_fx_rates when the conversion involves at least one cryptocurrency and a specific amount must be converted. Prefer crypto_price when only the spot price of a coin in fiat is needed without converting a specific amount, or prefer crypto_price_lite for the same spot price with a minimal response schema. Prefer currency_convert or currency_fx_lite when both currencies are fiat — those tools use ECB/Frankfurter or mid-market rates and do not consume a CoinAPI quota. Requires a CoinAPI key to be configured on the server.","capabilities":["read"],"risk_flags":[],"risk_level":"low","has_safeguards":false,"capability_taxonomy":["read","development"]},{"name":"currency_convert_open","description":"Converts a monetary amount between two fiat currencies using live exchange rates from an open currency exchange API. Returns the converted amount and the rate applied. Use currency_convert_open as an alternative live-rate source when currency_convert (Frankfurter/ECB) or currency_fx_lite are unavailable or rate-limited. The underlying source is an open public exchange rate feed suitable for informational use. Prefer currency_convert or currency_rates when ECB-auditable Frankfurter rates are required for accounting or compliance. Prefer currency_convert_lite for the same minimal output (amount + rate) backed by ECB/Frankfurter rates. Prefer currency_fx_lite for lightweight mid-market conversions. Does not support cryptocurrency pairs — use crypto_fx_rates for any conversion involving a digital asset.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","development"]},{"name":"stripe_payments","description":"Retrieves live payment data from a Stripe account via the Stripe API. Supports four query types: recent_payments returns the latest payment intents with status, amount, and currency; failed_charges returns declined or failed charges with failure reasons and error codes; customers returns customer records with name, email, and payment method details; subscriptions returns active and cancelled subscription plans with billing interval and status. Use stripe_payments when an agent needs to investigate payment failures, audit recent transaction activity, retrieve customer billing records, or check subscription status within a Stripe account — it returns full Stripe charge objects with customer IDs, metadata, and processing details. Prefer stripe_payment_records for a lighter-weight Stripe query returning only a simple records array without full Stripe object structure. Do not use for bank account transactions or PSD2 Open Banking data — use open_banking_transactions instead. Do not use for generic bank account history — use bank_accounts instead. Requires a Stripe secret key to be configured on the server.","capabilities":["read","exec","admin","secrets","export"],"risk_flags":["command_execution","bulk_data_access","secret_material_access","freeform_input_surface"],"risk_level":"critical","has_safeguards":false,"capability_taxonomy":["read","exec","admin","secrets","export","development","database","communication","finance","automation"]},{"name":"platform_tool_finder","description":"Discovers the most relevant tools available on this MCP server for a given task using local semantic search (MiniLM-L6-v2 embeddings). Accepts a plain-English description of what needs to be accomplished and returns the best matching tools ranked by relevance, along with their input schemas, pricing tier, and exact call instructions. Use this tool first when you are connected to this server but do not know which specific tool to call — describe your goal and let platform_tool_finder identify the right capability. Do not use this tool if you already know the tool name — call that tool directly instead. Returns up to 10 results ranked by semantic similarity score.","capabilities":["read","write"],"risk_flags":[],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","development","search","productivity"]},{"name":"web_url_reader","description":"Fetches any public web page and returns clean, readable plain text stripped of HTML, navigation, scripts, advertisements, and boilerplate. Returns the page title, meta description, word count, and main body text ready for analysis or summarisation. Use this tool when an agent needs to read the content of a specific web page or article URL — for example to summarise an article, extract facts from a page, verify a claim by reading the source, or convert a web page into plain text to pass to another tool. Pass article URLs returned by web_news_headlines to this tool to read full article content. Do not use this tool to discover current news headlines — use web_news_headlines instead. Does not execute JavaScript — best suited for standard HTML content pages. Will not work with paywalled, login-protected, or JavaScript-rendered single-page applications.","capabilities":["read","write","delete","exec","network"],"risk_flags":["destructive_operation","command_execution","arbitrary_network_egress","freeform_input_surface"],"risk_level":"critical","has_safeguards":false,"capability_taxonomy":["read","write","delete","exec","network","development","search","web","healthcare","automation","monitoring"]}],"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":"ok","completions":{"advertised":false,"sample_target":null,"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"auth_required","http_status":401},"initialize_capability_keys":["tools"]},"write_action_governance":{"status":"error","safe_to_publish":false,"auth_boundary":"public_or_unclear","blast_radius":"high","summary":{"tool_count":20,"high_risk_tools":4,"destructive_tools":1,"exec_tools":4,"egress_tools":1,"secret_tools":3,"bulk_access_tools":5,"risk_distribution":{"low":4,"medium":12,"high":1,"critical":3},"capability_distribution":{"read":20,"write":12,"admin":3,"secrets":3,"export":5,"exec":4,"network":4,"delete":1}},"high_risk_tools":[{"name":"bank_accounts","risk_level":"critical","risk_flags":["command_execution","bulk_data_access","secret_material_access"],"has_safeguards":false},{"name":"stripe_payment_records","risk_level":"high","risk_flags":["command_execution","bulk_data_access","freeform_input_surface"],"has_safeguards":true},{"name":"stripe_payments","risk_level":"critical","risk_flags":["command_execution","bulk_data_access","secret_material_access","freeform_input_surface"],"has_safeguards":false},{"name":"web_url_reader","risk_level":"critical","risk_flags":["destructive_operation","command_execution","arbitrary_network_egress","freeform_input_surface"],"has_safeguards":false}],"confirmation_signals":[],"safeguard_count":2},"provenance_divergence":{"status":"ok","direct_official_match":true,"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":"ai.bankee/inferventis-mcp","duplicate_count":0,"registry_sources":["official_registry"],"registry_identifiers":["ai.bankee/inferventis-mcp"],"remote_urls":["https://mcp-server-295985738387.europe-west1.run.app/mcp"],"homepages":["https://mcp-server-295985738387.europe-west1.run.app"],"source_disagreements":[],"source_disagreement_details":{}},"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":"ai.bankee/inferventis-mcp","tier":"community","readiness":{"allowed_to_activate":false,"blockers":["score_below_hosting_threshold"],"score":69.82,"min_score":70.0,"freshness_hours":5.002898092222222,"max_freshness_hours":168.0,"latest_validation_run_id":"75f0ccab-8816-4c57-9018-3660806c22ed"},"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":"warning","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":20,"prompt_count":0,"resource_count":0},"point_loss_breakdown":[{"key":"recovery_semantics_score","label":"Recovery Semantics","score":1.0,"max_score":4.0,"gap":3.0},{"key":"execution_sandbox_safety_score","label":"Execution Sandbox Safety","score":1.0,"max_score":4.0,"gap":3.0},{"key":"error_contract_score","label":"Error Contract","score":1.2,"max_score":4.0,"gap":2.8},{"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":"step_up_auth_score","label":"Step Up Auth","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}],"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_4167a6e67c449c8f","generated_at":"2026-07-31T10:34:51.043791+00:00","source":"current_snapshot","server":"ai.bankee/inferventis-mcp","last_validated_at":"2026-07-31T05:34:38.788995+00:00","validation_age_hours":5.0,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T05:34:38.788995+00:00","age_hours":5.0,"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":69.82,"raw_score":69.82,"confidence_score":76.2,"confidence_weighted_score":53.2,"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":69.82,"display_score":69.82,"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":5.0,"live_check_count":26},"active_alerts":[]},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_4167a6e67c449c8f","generated_at":"2026-07-31T10:34:51.043791+00:00","source":"current_snapshot","server":"ai.bankee/inferventis-mcp","last_validated_at":"2026-07-31T05:34:38.788995+00:00","validation_age_hours":5.0,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T05:34:38.788995+00:00","age_hours":5.0,"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":69.82,"raw_score":69.82,"confidence_score":76.2,"confidence_weighted_score":53.2,"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":69.82,"display_score":69.82,"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":5.0,"live_check_count":26},"active_alerts":[]},"agent_commerce":{"status":"beta","commerce_signal":"strong","payment_execution_detected":"yes","billing_or_usage_detected":"yes","quote_or_pricing_detected":"yes","numeric_price_context":"yes","commercial_quote_context":"yes","checkout_or_charge_detected":"yes","checkout_term_observed":"no","payment_capable":"observed","payment_rails":["Stripe","crypto"],"purchase_stage_supported":["quote","charge","usage_metering"],"human_confirmation_required":"unknown","spending_policy_supported":"yes","receipt_supported":"unknown","refund_policy_present":"yes","operator_identity":"declared","auth_required":"partial","auth_scheme":"api_key","tool_risk_level":"financial_action","tool_risk_score":85,"pricing_transparency":"clear","schema_change_detected":"unknown","delegation_level":"unknown_high_risk","evidence_level":"observed","confidence":"high","highest_risk_tools":[{"name":"open_banking_transactions","risk_level":"financial_action"},{"name":"bank_accounts","risk_level":"private_data"},{"name":"stripe_payment_records","risk_level":"financial_action"},{"name":"stripe_payments","risk_level":"financial_action"}],"skipped_unsafe_tools":["open_banking_transactions","finnhub_stock_quote","bank_accounts","web_news_headlines","stripe_payment_records","crypto_fx_rates","stripe_payments","web_url_reader"],"last_checked_at":"2026-07-31T10:34:50.279761+00:00","evidence":[{"field":"commerce_signal","value":"strong","evidence_level":"observed","source":"tool_schema","matched_terms":["charge","payment","refund","subscription","billing","limit","quota","amount"],"sample":"financial_calculator","confidence":"high","last_checked_at":"2026-07-31T10:34:50.279761+00:00"},{"field":"refund_policy_present","value":"yes","evidence_level":"observed","source":"tool_schema","matched_terms":["refund"],"sample":"refund","confidence":"medium","last_checked_at":"2026-07-31T10:34:50.279761+00:00"},{"field":"payment_rails","value":"Stripe, crypto","evidence_level":"observed","source":"tool_schema","matched_terms":["stripe","crypto"],"sample":"Stripe, crypto","confidence":"medium","last_checked_at":"2026-07-31T10:34:50.279761+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":40,"tool_risk_score":85,"payment_readiness_score":100,"agent_delegation_safety_score":65,"overall_agent_commerce_score":63},"warnings":["Verify did not observe a required human-confirmation step. Autonomous use should be restricted by client-side policy."],"recommended_fixes":["Require OAuth or equivalent auth for protected tools.","Separate quote/cart tools from charge/settlement tools.","Require explicit user confirmation for payment execution.","Return amount, currency, merchant, and receipt identifiers.","Publish pricing and refund/cancellation policy.","Add operator identity metadata.","Add spending policy support or mandate constraints."]},"latest_claim":null,"maintainer_profile_slug":null,"watch_summary":{"count":0,"teams":[],"emails":[]}},"latest_validation":{"id":"75f0ccab-8816-4c57-9018-3660806c22ed","validation_profile":"remote_mcp","status":"completed","summary_status":"healthy","transport_type":"streamable-http","latency_ms":1311.05,"failures":{"server_card":{"url":"https://mcp-server-295985738387.europe-west1.run.app/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://mcp-server-295985738387.europe-west1.run.app/.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://mcp-server-295985738387.europe-west1.run.app/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://mcp-server-295985738387.europe-west1.run.app/.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":128.99,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://mcp-server-295985738387.europe-west1.run.app/.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":120.69,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://mcp-server-295985738387.europe-west1.run.app/.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":103.68,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/mcp","payload":{"result":{"protocolVersion":"2025-03-26","capabilities":{"tools":{}},"serverInfo":{"name":"mcp-server-platform","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":160.15,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/mcp","payload":{"result":{"tools":[{"name":"financial_calculator","description":"Performs precise financial calculations across six calculation types entirely locally with no external API dependency. compound_interest computes the final value and total interest earned on a principal over time at a given annual rate. loan_repayment calculates the monthly payment, total repayable amount, and total interest for a mortgage or loan given the principal, annual rate, and term in months. roi returns return on investment as a percentage and absolute profit or loss, with optional annualised ROI when a holding period is provided. present_value discounts a future cash amount back to its current value using a discount rate. future_value projects a present amount forward at a compounding annual rate. break_even finds the unit volume and revenue at which fixed and variable costs are fully covered by sales. Use this tool when an agent needs to perform any structured financial calculation — loan affordability, investment return, discounted cash flow, or cost analysis. Prefer financial_calculator_lite when only the single headline result is needed rather than a full structured breakdown. Do not use this tool to fetch live market prices or exchange rates — use stock_quote for stock prices, crypto_price for cryptocurrency prices, or currency_convert for FX rates.","inputSchema":{"type":"object","properties":{"calculator_type":{"type":"string","description":"The type of financial calculation to perform. Must be one of: compound_interest, loan_repayment, roi, present_value, future_value, break_even."},"principal":{"type":"number","description":"Starting amount or loan amount in your chosen currency. Used for compound_interest, loan_repayment, and future_value calculations."},"rate":{"type":"number","description":"Annual interest or discount rate expressed as a percentage. Example: 5 for 5% per year. Used for compound_interest, loan_repayment, present_value, and future_value."},"periods":{"type":"number","description":"Number of time periods. For compound_interest and future_value: years. For loan_repayment: months. For roi: years used for annualised ROI."},"initial_value":{"type":"number","description":"Starting value of an investment or asset. Used for roi calculations."},"final_value":{"type":"number","description":"Ending value of an investment or asset. Used for roi and present_value calculations."},"discount_rate":{"type":"number","description":"Annual discount rate as a percentage for present value calculations. Represents the required rate of return or cost of capital."},"future_amount":{"type":"number","description":"The target future cash amount to discount back to present value. Used for present_value calculations."},"fixed_costs":{"type":"number","description":"Total fixed costs of the business or project that do not vary with output volume. Used for break_even calculations."},"variable_cost_per_unit":{"type":"number","description":"The variable cost incurred for each unit produced or sold. Used for break_even calculations."},"price_per_unit":{"type":"number","description":"The selling price per unit of product or service. Used for break_even calculations."}},"required":["calculator_type"]}},{"name":"open_banking_transactions","description":"Retrieves bank account balances and transaction history via PSD2 Open Banking (TrueLayer), covering 300+ UK and European banks. Returns the account balance, ISO 4217 currency code, and up to 100 recent transactions — each with date, merchant description, amount, and category. Supports optional date filtering to narrow the transaction window. Use this tool when an agent needs to inspect a user's spending history, verify a payment has cleared, assess account affordability, categorise recent bank transactions, or produce a financial summary from live bank data. Do not use for payment initiation — this tool is strictly read-only. Do not use for Stripe-specific payment records, subscription billing, or failed charge investigation — use stripe_payments instead. Requires a TrueLayer access token; returns structured mock data if no token is configured.","inputSchema":{"type":"object","properties":{"account_id":{"type":"string","description":"TrueLayer account ID to retrieve transactions for. Obtain from a prior account-listing call. Omit to return data for the first connected account."},"limit":{"type":"number","description":"Maximum number of transactions to return. Integer between 1 and 100. Defaults to 10."},"from_date":{"type":"string","description":"Optional start date for filtering transactions. ISO 8601 date format: YYYY-MM-DD. Example: 2026-01-01 to retrieve transactions from 1 January 2026 onwards."}},"required":[]}},{"name":"currency_convert","description":"Converts a monetary amount from one currency to another using live exchange rates sourced from the Frankfurter API (European Central Bank data). Returns the converted amount, the exact exchange rate applied, and the timestamp of the rate. Supports 30+ currencies including USD, EUR, GBP, JPY, CHF, AUD, CAD, SEK, NOK, DKK, SGD, HKD, and all major ISO 4217 codes. Use currency_convert when an agent needs to convert prices, invoices, salaries, payments, or any financial figure between fiat currencies in real time with full ECB-backed rate metadata. Prefer currency_convert_lite or currency_fx_lite when only the numeric converted amount and rate are needed without metadata. Use currency_rates when the conversion must use a historical rate from a specific past date. Do not use this tool for cryptocurrency conversion — use crypto_fx_rates (amount conversion via CoinAPI) or crypto_price (spot price lookup via CoinGecko).","inputSchema":{"type":"object","properties":{"amount":{"type":"number","description":"The monetary amount to convert. Must be a positive number. Decimals are supported. Example: 1500.50 to convert one thousand five hundred and fifty cents."},"from":{"type":"string","description":"The source currency code in ISO 4217 format. Must be uppercase. Examples: USD, GBP, EUR, JPY, CHF, AUD, CAD."},"to":{"type":"string","description":"The target currency code in ISO 4217 format. Must be uppercase. Examples: EUR, JPY, CHF, SGD, HKD, SEK."}},"required":["amount","from","to"]}},{"name":"stock_price_lite","description":"Retrieves the current trading price for a publicly listed stock by ticker symbol. Returns the current price as a single numeric value. This is a lightweight variant of stock_quote — it omits intraday high/low, percentage change, previous close, company name, sector, and exchange metadata. Use stock_price_lite when only the raw current price is needed for a quick lookup or calculation. Prefer stock_quote when the agent also needs price change, intraday range, company information, or a fully structured response suitable for portfolio reporting. Does not support cryptocurrency prices — use crypto_price for full market data (price, volume, market cap) or crypto_price_lite for a lightweight spot price lookup.","inputSchema":{"type":"object","properties":{"symbol":{"type":"string","description":"Stock ticker symbol in uppercase. Examples: AAPL (Apple), MSFT (Microsoft), TSLA (Tesla), GOOGL (Alphabet), AMZN (Amazon), NVDA (Nvidia). Must be a valid exchange-listed ticker."}},"required":["symbol"]}},{"name":"timezone_convert","description":"Converts time between timezones. Useful for time conversion tasks. Use when you need to convert 3:45 PM EST to Pacific Time for a meeting schedule; or find what time it will be in Tokyo when it's 9 AM in New York; or translate an event time from London timezone to Sydney timezone. Also use to find the equivalent time in Dubai for a 2 PM Central European Time appointment; or find the local time in San Francisco when it's midnight in Berlin. Accepts time, from_tz, to_tz, date. Returns the converted local time in the target timezone.","inputSchema":{"type":"object","properties":{"time":{"type":"string","description":"A string representing the time to convert, formatted in 24-hour or 12-hour notation with optional AM/PM indicator, such as '14:30' or '2:45 PM'."},"from_tz":{"type":"string","description":"Timezone identifier for the source time, accepting IANA standard names like 'America/New_York' or common abbreviations such as 'EST', specifying the original time's geographical context."},"to_tz":{"type":"string","description":"Target timezone identifier where the time will be converted, supporting IANA standard timezone names like 'Europe/London' or abbreviations such as 'GMT', indicating the destination geographical region."},"date":{"type":"string","description":"Calendar date string in standard formats like 'YYYY-MM-DD', 'MM/DD/YYYY', or 'DD.MM.YYYY', representing the specific day for the timezone conversion calculation."}},"required":["time","from_tz","to_tz"]}},{"name":"finnhub_stock_quote","description":"Retrieves real-time stock price quotes and company information for any publicly traded company via the Finnhub API. Returns current price, intraday high and low, percentage change from previous close, previous close price, sector, and exchange. Use stock_quote when an agent needs to look up a stock price, check intraday market performance, retrieve company sector data, monitor equity portfolio values, or answer any question about the current trading price of a publicly listed company. Prefer stock_quote over stock_price_lite when the agent needs price change, intraday range, company name, or sector — stock_price_lite returns only the raw current price with no additional context. Do not use for cryptocurrency prices — use crypto_price (CoinGecko, 10,000+ assets) or crypto_price_lite for a lightweight variant. Do not use for fiat currency conversion — use currency_convert or currency_fx_lite. Requires a Finnhub API key to be configured on the server.","inputSchema":{"type":"object","properties":{"symbol":{"type":"string","description":"Stock ticker symbol in uppercase. Examples: AAPL (Apple), MSFT (Microsoft), TSLA (Tesla), GOOGL (Alphabet), AMZN (Amazon), NVDA (Nvidia). Must be a valid exchange-listed ticker symbol."},"include_company_info":{"type":"boolean","description":"Whether to include company name, sector, and exchange details alongside the price quote. Defaults to true. Set to false for a faster, price-only response."}},"required":["symbol"]}},{"name":"crypto_price","description":"Retrieves real-time price data for any cryptocurrency listed on CoinGecko. Returns the current price in any fiat currency, 24-hour percentage change, market capitalisation, and 24-hour trading volume. Supports all major cryptocurrencies including Bitcoin (BTC), Ethereum (ETH), Solana (SOL), XRP, Cardano (ADA), Dogecoin (DOGE), Polygon (MATIC), Chainlink (LINK), Avalanche (AVAX), and 10,000+ additional coins. Use crypto_price when an agent needs the full market picture for a digital asset — price, change, market cap, and volume in one call. Prefer crypto_price_lite when only the spot price and 24h change are needed and a smaller response payload is preferred. Use crypto_fx_rates (via CoinAPI) when converting a specific amount between a cryptocurrency and fiat, or between two cryptocurrencies. Do not use this tool for fiat-to-fiat currency conversion (e.g. USD to EUR) — use currency_convert instead. Do not use when historical price data for a specific past date is required — this tool returns live spot prices only.","inputSchema":{"type":"object","properties":{"coin":{"type":"string","description":"Cryptocurrency name or ticker symbol. Accepts common symbols (BTC, ETH, SOL, XRP, ADA, DOGE, MATIC, LINK, AVAX) or full names (bitcoin, ethereum, solana). Case-insensitive."},"currency":{"type":"string","description":"Target fiat currency code for the price. Must be a valid ISO 4217 code. Defaults to USD. Examples: usd, eur, gbp, jpy, chf, aud, cad."},"include_market_data":{"type":"boolean","description":"Whether to include market capitalisation and 24-hour trading volume alongside the price. Defaults to true. Set to false for a lighter response when only the price is needed."}},"required":["coin"]}},{"name":"crypto_price_lite","description":"Retrieves the current spot price and 24-hour change for any cryptocurrency using the CoinGecko public API. Returns price, percentage change, and a timestamp. This is a lightweight variant of crypto_price that omits extended market data (market cap, volume) — use it when only the raw price and 24h direction are needed. Prefer crypto_price when the agent also needs market capitalisation, trading volume, or richer structured output. Use crypto_fx_rates when converting a specific amount between a cryptocurrency and fiat (e.g. 'convert 0.5 BTC to USD') rather than looking up a spot price. Supports all major coins including BTC, ETH, SOL, XRP, ADA, DOGE, and 10,000+ CoinGecko-listed assets. Accepts ticker symbols (BTC, ETH) or full names (bitcoin, ethereum). Target currency defaults to USD but accepts any ISO 4217 code.","inputSchema":{"type":"object","properties":{"coin":{"type":"string","description":"Cryptocurrency ticker symbol (BTC, ETH, SOL) or full CoinGecko name (bitcoin, ethereum, solana). Case-insensitive."},"currency":{"type":"string","description":"ISO 4217 fiat currency code for the returned price. Defaults to 'usd'. Examples: usd, eur, gbp, jpy."}},"required":["coin"]}},{"name":"currency_rates","description":"Retrieves live and historical fiat currency exchange rates from the Frankfurter API (sourced from the European Central Bank). Supports both real-time conversion and historical rate lookup for any past date, making it the preferred tool when auditable, ECB-sourced rate data is required. Use currency_rates when a rate from a specific past date is required (e.g. accounting, tax, or audit), or when the ECB source must be documented. Prefer currency_convert when only a live conversion is needed with a richer structured response. Prefer currency_convert_lite for lightweight live ECB conversions without historical requirements. Prefer currency_fx_lite when ECB sourcing is not required and only a lightweight live result is needed. Use currency_convert_open when a non-ECB rate source is acceptable and Frankfurter is unavailable. Does not support cryptocurrency pairs — use crypto_fx_rates for any conversion involving a digital asset.","inputSchema":{"type":"object","properties":{"amount":{"type":"number","description":"Monetary amount to convert. Must be a positive number."},"from":{"type":"string","description":"ISO 4217 source currency code (e.g. 'USD', 'GBP', 'EUR'). Case-insensitive."},"to":{"type":"string","description":"ISO 4217 target currency code (e.g. 'EUR', 'JPY', 'CHF'). Case-insensitive."}},"required":["amount","from","to"]}},{"name":"currency_fx_lite","description":"Converts a foreign exchange (FX) amount between two fiat currencies using live mid-market rates. Returns the converted amount and the exchange rate applied. Use currency_fx_lite when only the numeric result is required and the ECB/Frankfurter data source is not specifically needed. Prefer currency_convert when richer metadata (rate timestamp, ECB-backed Frankfurter source) is needed. Prefer currency_convert_lite for the same minimal output (amount + rate) when ECB/Frankfurter rates are specifically required — both tools return identical fields but draw from different rate providers. Use currency_rates when a historical rate from a specific past date is required. Use currency_convert_open as an alternative open-rate source. Does not support cryptocurrency pairs — use crypto_fx_rates for crypto-to-fiat or crypto-to-crypto conversions, or crypto_price_lite for a spot price lookup. Accepts all major ISO 4217 currency codes.","inputSchema":{"type":"object","properties":{"amount":{"type":"number","description":"Monetary amount to convert. Must be a positive number."},"from":{"type":"string","description":"ISO 4217 source currency code (e.g. 'USD', 'GBP', 'EUR', 'JPY'). Case-insensitive."},"to":{"type":"string","description":"ISO 4217 target currency code (e.g. 'EUR', 'CHF', 'AUD', 'CAD'). Case-insensitive."}},"required":["amount","from","to"]}},{"name":"bank_accounts","description":"Retrieves bank account details and recent transaction history via a connected bank API integration. Returns a list of transactions for the specified account, or for all linked accounts when no account ID is provided. Use bank_accounts when an agent needs to inspect account balances, review recent spending, categorise transactions, or reconcile records against a specific bank account. Prefer open_banking_transactions when the integration uses a PSD2 Open Banking provider (TrueLayer) covering 300+ UK and European banks — open_banking_transactions returns richer transaction metadata including merchant names, categories, and running balances. Prefer stripe_payments when the source of payments is a Stripe merchant account rather than a retail bank account. This tool requires a valid bank API credential to be configured on the server.","inputSchema":{"type":"object","properties":{"account_id":{"type":"string","description":"Identifier of the specific bank account to query. When omitted, transactions across all linked accounts are returned."},"limit":{"type":"number","description":"Maximum number of transactions to return. Defaults to 20. Maximum 100."}},"required":[]}},{"name":"currency_convert_lite","description":"Converts a monetary amount between any two fiat currencies using live exchange rates from the Frankfurter API (European Central Bank data). Returns the converted amount and the exchange rate applied. This is a lightweight variant of currency_convert — minimal response without rate timestamp or source attribution. Use currency_convert_lite when only the converted value and rate are needed and ECB/Frankfurter-sourced rates are preferred. Prefer currency_convert when the agent also needs rate timestamp and richer structured output. Prefer currency_fx_lite for the same minimal output (amount + rate) when the ECB data source is not specifically required — both return identical fields but draw from different rate providers. Use currency_rates when a historical rate from a specific past date is required (e.g. accounting, tax, or audit). Use currency_convert_open as a fallback when Frankfurter is unavailable or rate-limited. Does not support cryptocurrency pairs — use crypto_price or crypto_fx_rates for crypto-to-fiat conversions. Accepts all major ISO 4217 currency codes (USD, EUR, GBP, JPY, CHF, AUD, CAD, SGD, NOK, SEK, DKK, PLN, CZK, HUF, etc.).","inputSchema":{"type":"object","properties":{"amount":{"type":"number","description":"Monetary amount to convert. Must be a positive number."},"from":{"type":"string","description":"ISO 4217 code of the source currency (e.g. 'USD', 'GBP', 'EUR'). Case-insensitive."},"to":{"type":"string","description":"ISO 4217 code of the target currency (e.g. 'EUR', 'JPY', 'CHF'). Case-insensitive."}},"required":["amount","from","to"]}},{"name":"financial_calculator_lite","description":"Performs common financial calculations locally with no external API dependency. Supports compound interest, loan repayment, return on investment (ROI), present value, future value, and break-even analysis. Returns a single numeric result for the requested calculation type. This is a lightweight variant of financial_calculator — it returns only the result number rather than a full structured breakdown (monthly payment, total interest, annualised ROI, etc.). Use financial_calculator_lite when only the headline figure is needed. Prefer financial_calculator when the agent needs a full breakdown, multiple sub-values, or labelled output fields for compound interest earned, total repayable, or annualised returns. Neither this tool nor financial_calculator fetches live market data — for live prices use stock_quote, crypto_price, or currency_convert.","inputSchema":{"type":"object","properties":{"calculator_type":{"type":"string","description":"Type of calculation to perform. Accepted values: 'compound_interest', 'loan_repayment', 'roi', 'present_value', 'future_value', 'break_even'."},"principal":{"type":"number","description":"Starting amount or loan principal in currency units. Required for compound_interest, loan_repayment, present_value, and future_value."},"rate":{"type":"number","description":"Annual interest or discount rate as a decimal (e.g. 0.05 for 5%). Required for compound_interest, loan_repayment, present_value, and future_value."},"periods":{"type":"number","description":"Number of compounding periods (years) or loan term in months depending on calculator_type. Required for compound_interest, loan_repayment, future_value, and present_value."},"initial_value":{"type":"number","description":"Initial investment amount. Required for roi calculations."},"final_value":{"type":"number","description":"Final investment value. Required for roi calculations."}},"required":["calculator_type"]}},{"name":"web_news_headlines","description":"Retrieves the latest real-time news headlines and article summaries from BBC News and The Guardian across nine topic categories. Returns structured articles with headline, description, source name, article URL, and publication date — sorted most recent first. No API key required. Use this tool when an agent needs current news about a specific topic, wants to summarise today's headlines, needs to research recent events, monitor a subject area for new developments, or build a news briefing. Do not use this tool to read the full content of a specific article — use web_url_reader instead, passing the article URL returned by this tool. Do not use when news from sources outside BBC News and The Guardian is required.","inputSchema":{"type":"object","properties":{"topic":{"type":"string","description":"News topic category to retrieve headlines for. Accepted values: 'general' (top stories across all categories), 'technology' (tech industry and digital news), 'business' (markets, economy, and corporate news), 'science' (research, environment, and discoveries), 'health' (medical and public health news), 'politics' (government and political news), 'sport' (sports and athletics), 'ai' (artificial intelligence and machine learning news), 'world' (international and global news). Defaults to 'general' if omitted or unrecognised."},"keyword":{"type":"string","description":"Optional search keyword to filter headlines. Only articles whose title or description contains this keyword will be returned. Case-insensitive. Examples: 'OpenAI', 'interest rates', 'climate change'. Omit to return all headlines for the chosen topic."},"limit":{"type":"number","description":"Maximum number of articles to return. Integer between 1 and 20. Defaults to 10. Use a lower number for a quick briefing and a higher number for comprehensive coverage."}},"required":[]}},{"name":"stripe_payment_records","description":"Retrieves payment and charge records from a Stripe merchant account. Returns a list of payment records filtered by the requested query type. Use stripe_payment_records when an agent needs to review recent charges, refunds, disputes, or subscription payments from a Stripe account. This is a lightweight variant of stripe_payments — it returns a simple records array rather than the full structured Stripe response with customer details, metadata, and pagination cursors. Prefer stripe_payments when the agent needs complete Stripe charge objects including customer IDs, payment method details, metadata fields, and processing status breakdowns. Prefer open_banking_transactions or bank_accounts when the payment data source is a bank account rather than a Stripe merchant account. Requires a Stripe API key to be configured on the server.","inputSchema":{"type":"object","properties":{"query_type":{"type":"string","description":"Type of payment records to retrieve. Accepted values: 'recent_payments' (latest charges), 'refunds' (refund records), 'disputes' (disputed charges), 'subscriptions' (recurring subscription payments)."},"limit":{"type":"number","description":"Maximum number of records to return. Defaults to 10. Maximum 50."}},"required":["query_type"]}},{"name":"crypto_fx_rates","description":"Converts an amount between any cryptocurrency and fiat currency pair, or between two cryptocurrencies, using real-time exchange rates sourced from CoinAPI. Supports all crypto-to-fiat (BTC/USD, ETH/EUR), fiat-to-crypto (USD/BTC), and cross-crypto (BTC/ETH) conversions. Use crypto_fx_rates when the conversion involves at least one cryptocurrency and a specific amount must be converted. Prefer crypto_price when only the spot price of a coin in fiat is needed without converting a specific amount, or prefer crypto_price_lite for the same spot price with a minimal response schema. Prefer currency_convert or currency_fx_lite when both currencies are fiat — those tools use ECB/Frankfurter or mid-market rates and do not consume a CoinAPI quota. Requires a CoinAPI key to be configured on the server.","inputSchema":{"type":"object","properties":{"amount":{"type":"number","description":"Amount to convert. Must be a positive number. Denominated in the 'from' currency."},"from":{"type":"string","description":"Source currency code. Accepts ISO 4217 fiat codes (USD, EUR, GBP) or cryptocurrency ticker symbols (BTC, ETH, SOL, XRP). Case-insensitive."},"to":{"type":"string","description":"Target currency code. Accepts ISO 4217 fiat codes (USD, EUR, GBP) or cryptocurrency ticker symbols (BTC, ETH, SOL, XRP). Case-insensitive."}},"required":["amount","from","to"]}},{"name":"currency_convert_open","description":"Converts a monetary amount between two fiat currencies using live exchange rates from an open currency exchange API. Returns the converted amount and the rate applied. Use currency_convert_open as an alternative live-rate source when currency_convert (Frankfurter/ECB) or currency_fx_lite are unavailable or rate-limited. The underlying source is an open public exchange rate feed suitable for informational use. Prefer currency_convert or currency_rates when ECB-auditable Frankfurter rates are required for accounting or compliance. Prefer currency_convert_lite for the same minimal output (amount + rate) backed by ECB/Frankfurter rates. Prefer currency_fx_lite for lightweight mid-market conversions. Does not support cryptocurrency pairs — use crypto_fx_rates for any conversion involving a digital asset.","inputSchema":{"type":"object","properties":{"amount":{"type":"number","description":"Monetary amount to convert. Must be a positive number."},"from":{"type":"string","description":"ISO 4217 source currency code (e.g. 'USD', 'GBP', 'EUR'). Case-insensitive."},"to":{"type":"string","description":"ISO 4217 target currency code (e.g. 'EUR', 'JPY', 'CHF'). Case-insensitive."}},"required":["amount","from","to"]}},{"name":"stripe_payments","description":"Retrieves live payment data from a Stripe account via the Stripe API. Supports four query types: recent_payments returns the latest payment intents with status, amount, and currency; failed_charges returns declined or failed charges with failure reasons and error codes; customers returns customer records with name, email, and payment method details; subscriptions returns active and cancelled subscription plans with billing interval and status. Use stripe_payments when an agent needs to investigate payment failures, audit recent transaction activity, retrieve customer billing records, or check subscription status within a Stripe account — it returns full Stripe charge objects with customer IDs, metadata, and processing details. Prefer stripe_payment_records for a lighter-weight Stripe query returning only a simple records array without full Stripe object structure. Do not use for bank account transactions or PSD2 Open Banking data — use open_banking_transactions instead. Do not use for generic bank account history — use bank_accounts instead. Requires a Stripe secret key to be configured on the server.","inputSchema":{"type":"object","properties":{"query_type":{"type":"string","description":"The type of Stripe data to retrieve. Must be one of: recent_payments (latest payment intents), failed_charges (declined or failed charges with failure reasons), customers (customer records with contact and payment method info), subscriptions (billing subscriptions with status and plan details)."},"limit":{"type":"number","description":"Number of records to return. Integer between 1 and 25. Defaults to 10."}},"required":["query_type"]}},{"name":"platform_tool_finder","description":"Discovers the most relevant tools available on this MCP server for a given task using local semantic search (MiniLM-L6-v2 embeddings). Accepts a plain-English description of what needs to be accomplished and returns the best matching tools ranked by relevance, along with their input schemas, pricing tier, and exact call instructions. Use this tool first when you are connected to this server but do not know which specific tool to call — describe your goal and let platform_tool_finder identify the right capability. Do not use this tool if you already know the tool name — call that tool directly instead. Returns up to 10 results ranked by semantic similarity score.","inputSchema":{"type":"object","properties":{"intent":{"type":"string","description":"Plain-English description of what you need to accomplish. Be specific about the goal, not the tool name. Example: 'I need to convert 500 dollars to euros at the current exchange rate' or 'get the latest technology news headlines'."},"model_hint":{"type":"string","description":"Optional: the name of the calling LLM model. Examples: claude, gpt-4, gemini. Used to apply model-specific manifest variant ranking when available. Omit if unknown."},"top_k":{"type":"number","description":"How many ranked results to return. Integer between 1 and 10. Defaults to 3. Use a higher value when the best tool is ambiguous."}},"required":["intent"]}},{"name":"web_url_reader","description":"Fetches any public web page and returns clean, readable plain text stripped of HTML, navigation, scripts, advertisements, and boilerplate. Returns the page title, meta description, word count, and main body text ready for analysis or summarisation. Use this tool when an agent needs to read the content of a specific web page or article URL — for example to summarise an article, extract facts from a page, verify a claim by reading the source, or convert a web page into plain text to pass to another tool. Pass article URLs returned by web_news_headlines to this tool to read full article content. Do not use this tool to discover current news headlines — use web_news_headlines instead. Does not execute JavaScript — best suited for standard HTML content pages. Will not work with paywalled, login-protected, or JavaScript-rendered single-page applications.","inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"The full public URL to fetch and read. Must include the scheme. Examples: 'https://en.wikipedia.org/wiki/Artificial_intelligence', 'https://www.bbc.com/news/technology-12345678'. Only HTTP and HTTPS URLs are supported."},"max_chars":{"type":"number","description":"Maximum number of characters to return from the page body text. Defaults to 8000. Set higher (up to 50000) for long articles or documents. Set lower for quick headline extraction. The response indicates whether content was truncated."},"include_links":{"type":"boolean","description":"Whether to include a list of hyperlinks found on the page alongside the text content. Defaults to false. Set to true when the agent needs to discover further URLs to follow, such as when crawling a site or finding references."}},"required":["url"]}}]},"jsonrpc":"2.0","id":2},"http_status":200,"headers":{"content-type":"text/event-stream"}}},"prompts_list":{"status":"auth_required","latency_ms":101.92,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/mcp","error":"Client error '401 Unauthorized' for url 'https://mcp-server-295985738387.europe-west1.run.app/mcp'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401","http_status":401,"payload":{},"headers":{"content-type":"application/json; charset=utf-8"},"reason":"auth_required"}},"prompt_get":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"resources_list":{"status":"auth_required","latency_ms":101.58,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/mcp","error":"Client error '401 Unauthorized' for url 'https://mcp-server-295985738387.europe-west1.run.app/mcp'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401","http_status":401,"payload":{},"headers":{"content-type":"application/json; charset=utf-8"},"reason":"auth_required"}},"resource_read":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"probe_noise_resilience":{"status":"ok","latency_ms":101.66,"details":{"url":"https://mcp-server-295985738387.europe-west1.run.app/robots.txt","http_status":404,"headers":{"content-type":"application/json; charset=utf-8"}}},"determinism_probe":{"status":"ok","latency_ms":141.12,"details":{"attempts":2,"successful":2,"matches":2,"stable_ratio":1.0,"baseline_signature":"3d2d7b44a853fa4e31421e69ec06f0953bb5eb45b0301b068adb970df332bce1","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":"warning","latency_ms":null,"details":{"oauth_present":false,"auth_required_checks":["prompts_list","resources_list"],"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":103.7,"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":"ok","latency_ms":90.62,"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":"auth_required","http_status":401},"initialize_capability_keys":["tools"]}},"advanced_capabilities_probe":{"status":"warning","latency_ms":null,"details":{"capabilities":{"prompts":true,"resources":true,"completions":false,"roots":false,"sampling":false,"elicitation":false,"structured_outputs":false,"resource_links":false},"enabled_count":2,"enabled":["prompts","resources"],"initialize_capability_keys":["tools"]}},"tool_snapshot_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot","current_tool_count":20}},"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":["login"],"oauth_supported":false,"prompt_available":false}},"action_safety_probe":{"status":"error","latency_ms":null,"details":{"summary":{"tool_count":20,"high_risk_tools":4,"destructive_tools":1,"exec_tools":4,"egress_tools":1,"secret_tools":3,"bulk_access_tools":5,"risk_distribution":{"low":4,"medium":12,"high":1,"critical":3},"capability_distribution":{"read":20,"write":12,"admin":3,"secrets":3,"export":5,"exec":4,"network":4,"delete":1}},"auth_present":false,"safeguard_count":2,"confirmation_signals":[]}},"official_registry_probe":{"status":"ok","latency_ms":null,"details":{"registry_source":"official_registry","registry_identifier":"ai.bankee/inferventis-mcp","direct_match":true,"official_peer_count":1}},"provenance_divergence_probe":{"status":"ok","latency_ms":null,"details":{"direct_official_match":true,"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":2}},"connector_publishability_probe":{"status":"warning","latency_ms":null,"details":{"transport":"streamable-http","tool_count":20,"high_risk_tools":4,"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":1.2,"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":1.0,"maintenance_signal_score":3.0,"adoption_signal_score":3.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":2.0,"transport_compliance_score":2.0,"utility_coverage_score":2.0,"advanced_capability_coverage_score":3.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":4.0,"provenance_divergence_score":4.0,"safety_transparency_score":2.0,"tool_capability_clarity_score":4.0,"destructive_operation_safety_score":2.0,"egress_ssrf_resilience_score":2.0,"execution_sandbox_safety_score":1.0,"data_exfiltration_resilience_score":3.7,"least_privilege_scope_score":2.0,"secret_handling_hygiene_score":3.7,"dependency_supply_chain_signal_score":2.5,"input_sanitization_safety_score":3.0,"tool_namespace_clarity_score":4.0},"validation_schema_version":"16d1d270090d6c8f","started_at":"2026-07-31T05:34:37.476826+00:00","completed_at":"2026-07-31T05:34:38.788995+00:00"},"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_4167a6e67c449c8f","generated_at":"2026-07-31T10:34:51.043791+00:00","source":"current_snapshot","server":"ai.bankee/inferventis-mcp","last_validated_at":"2026-07-31T05:34:38.788995+00:00","validation_age_hours":5.0,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T05:34:38.788995+00:00","age_hours":5.0,"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":69.82,"raw_score":69.82,"confidence_score":76.2,"confidence_weighted_score":53.2,"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":69.82,"display_score":69.82,"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":5.0,"live_check_count":26},"active_alerts":[]},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_4167a6e67c449c8f","generated_at":"2026-07-31T10:34:51.043791+00:00","source":"current_snapshot","server":"ai.bankee/inferventis-mcp","last_validated_at":"2026-07-31T05:34:38.788995+00:00","validation_age_hours":5.0,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T05:34:38.788995+00:00","age_hours":5.0,"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":69.82,"raw_score":69.82,"confidence_score":76.2,"confidence_weighted_score":53.2,"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":69.82,"display_score":69.82,"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":5.0,"live_check_count":26},"active_alerts":[]},"snapshot_invariant":{"schema_version":"verify.snapshot_invariant.v1","server":"ai.bankee/inferventis-mcp","ok":true,"surface_snapshot_ids":{"page":"trustsnap_4167a6e67c449c8f","badge":null,"report":"trustsnap_4167a6e67c449c8f","policy":null},"checked_at":"2026-07-31T10:38:05.378827+00:00"},"history":{"points":[{"timestamp":"2026-07-31T05:34:38.788995+00:00","score":69.82,"status":"healthy","latency_ms":1311.05,"tool_count":20,"prompt_count":0,"resource_count":0}],"status_counts":{"healthy":1},"score_delta_7d":null,"score_delta_30d":null,"avg_latency_ms":1311.05,"healthy_ratio_recent":1.0,"freshness_hours":5.0,"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":"strong","payment_execution_detected":"yes","billing_or_usage_detected":"yes","quote_or_pricing_detected":"yes","numeric_price_context":"yes","commercial_quote_context":"yes","checkout_or_charge_detected":"yes","checkout_term_observed":"no","payment_capable":"observed","payment_rails":["Stripe","crypto"],"purchase_stage_supported":["quote","charge","usage_metering"],"human_confirmation_required":"unknown","spending_policy_supported":"yes","receipt_supported":"unknown","refund_policy_present":"yes","operator_identity":"declared","auth_required":"partial","auth_scheme":"api_key","tool_risk_level":"financial_action","tool_risk_score":85,"pricing_transparency":"clear","schema_change_detected":"unknown","delegation_level":"unknown_high_risk","evidence_level":"observed","confidence":"high","highest_risk_tools":[{"name":"open_banking_transactions","risk_level":"financial_action"},{"name":"bank_accounts","risk_level":"private_data"},{"name":"stripe_payment_records","risk_level":"financial_action"},{"name":"stripe_payments","risk_level":"financial_action"}],"skipped_unsafe_tools":["open_banking_transactions","finnhub_stock_quote","bank_accounts","web_news_headlines","stripe_payment_records","crypto_fx_rates","stripe_payments","web_url_reader"],"last_checked_at":"2026-07-31T10:34:50.279761+00:00","evidence":[{"field":"commerce_signal","value":"strong","evidence_level":"observed","source":"tool_schema","matched_terms":["charge","payment","refund","subscription","billing","limit","quota","amount"],"sample":"financial_calculator","confidence":"high","last_checked_at":"2026-07-31T10:34:50.279761+00:00"},{"field":"refund_policy_present","value":"yes","evidence_level":"observed","source":"tool_schema","matched_terms":["refund"],"sample":"refund","confidence":"medium","last_checked_at":"2026-07-31T10:34:50.279761+00:00"},{"field":"payment_rails","value":"Stripe, crypto","evidence_level":"observed","source":"tool_schema","matched_terms":["stripe","crypto"],"sample":"Stripe, crypto","confidence":"medium","last_checked_at":"2026-07-31T10:34:50.279761+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":40,"tool_risk_score":85,"payment_readiness_score":100,"agent_delegation_safety_score":65,"overall_agent_commerce_score":63},"warnings":["Verify did not observe a required human-confirmation step. Autonomous use should be restricted by client-side policy."],"recommended_fixes":["Require OAuth or equivalent auth for protected tools.","Separate quote/cart tools from charge/settlement tools.","Require explicit user confirmation for payment execution.","Return amount, currency, merchant, and receipt identifiers.","Publish pricing and refund/cancellation policy.","Add operator identity metadata.","Add spending policy support or mandate constraints."]},"evidence_confidence":{"score":76.25,"label":"high","reason":"Based on 1 recent validations, 26 captured checks, and validation age of 5.0 hours.","live_check_count":26,"validation_age_hours":5.0},"recommended_for":[{"label":"Claude Desktop","reason":"Claude Desktop is marked compatible with score 100."},{"label":"Smithery","reason":"Smithery is marked compatible with score 80."},{"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_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}],"publisher_claim":{"verified":false,"status":"unclaimed","claim_url":"https://verify.sentinelsignal.io/claim?server=ai.bankee%2Finferventis-mcp&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":"moderate","label":"Moderate 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":"low","observed":true,"description":"Synthetic sessions inspecting multiple trust surfaces such as report, policy, ledger, badge, trust-summary, or compare."},"possible_agent_or_script":{"level":"low","observed":true,"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":"moderate","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":true,"compare_json":false,"compare_api":false,"report_json":true,"policy":true,"ledger":true,"badge_metadata":true,"badge_svg":false,"trust_summary":true,"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=ai.bankee%2Finferventis-mcp&source=report_json","trust_summary_url":"https://verify.sentinelsignal.io/v1/servers/ai.bankee/inferventis-mcp/trust-summary"},"related_machine_surfaces":{"compare_index":"/compare.json","compare_api":"/v1/compare?server=ai.bankee%2Finferventis-mcp","trust_summary":"/v1/servers/ai.bankee/inferventis-mcp/trust-summary","ledger":"/v1/servers/ai.bankee/inferventis-mcp/ledger","policy":"/v1/servers/ai.bankee/inferventis-mcp/policy","report":"/v1/servers/ai.bankee/inferventis-mcp/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."}}