{"schema_version":"verify.report.v1","generated_at":"2026-07-31T09:53:08.106887+00:00","snapshot_id":"trustsnap_af9806a26fbdf8bf","server":{"namespace":"awesome","name":"braingrid-mcp","title":"BrainGrid MCP","description":"BrainGrid MCP 🎖️☁️ - BrainGrid MCP MCP is the Product Management Agent that writes your specs, plans your features, and creates engineering-grade tasks your coding tools can build reliably.","homepage_url":"https://docs.braingrid.ai/mcp-server/installation","docs_url":"https://docs.braingrid.ai/mcp-server/installation","icon_url":null,"support_url":"https://docs.braingrid.ai/mcp-server/installation","remote_url":"https://docs.braingrid.ai/mcp","server_card_url":null,"latest_version":null,"current_status":"healthy","current_score":69.91,"transport_type":"streamable-http","has_oauth":false,"has_dcr":false,"has_prompts":false,"tool_count":3,"current_validation_schema_version":"16d1d270090d6c8f","last_validated_at":"2026-07-31T05:29:37.486638+00:00","registry_source":"awesome_mcp_servers","registry_identifier":"awesome_mcp_servers:https://docs.braingrid.ai/mcp-server/installation","canonical_identifier":"awesome/braingrid-mcp","current_score_components":{"auth_operability_score":2.0,"error_contract_score":2.83,"rate_limit_semantics_score":2.0,"schema_completeness_score":3.0,"backward_compatibility_score":2.0,"slo_health_score":4.0,"security_hygiene_score":3.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":4.0,"discovery_metadata_score":4.0,"registry_consistency_score":2.0,"installability_score":4.0,"session_semantics_score":4.0,"tool_surface_design_score":3.0,"result_shape_stability_score":2.0,"oauth_interop_score":3.0,"recovery_semantics_score":0.0,"maintenance_signal_score":3.95,"adoption_signal_score":2.0,"freshness_confidence_score":3.0,"transport_fidelity_score":4.0,"spec_recency_score":2.0,"session_resume_score":3.0,"step_up_auth_score":3.0,"transport_compliance_score":2.0,"utility_coverage_score":2.0,"advanced_capability_coverage_score":3.0,"connector_publishability_score":3.0,"tool_snapshot_churn_score":3.0,"connector_replay_score":3.0,"request_association_score":2.0,"interactive_flow_safety_score":3.0,"action_safety_score":2.0,"official_registry_presence_score":3.0,"provenance_divergence_score":4.0,"safety_transparency_score":3.0,"tool_capability_clarity_score":4.0,"destructive_operation_safety_score":2.0,"egress_ssrf_resilience_score":3.0,"execution_sandbox_safety_score":2.0,"data_exfiltration_resilience_score":3.0,"least_privilege_scope_score":2.0,"secret_handling_hygiene_score":3.0,"dependency_supply_chain_signal_score":0.5,"input_sanitization_safety_score":3.0,"tool_namespace_clarity_score":4.0},"capability_taxonomy":["development","database","search","productivity","read","write","exec","filesystem","web","files","delete","network","admin","secrets","security","cloud","automation","resources","streamable_http"],"machine_summary":{"verdict":"safe_for_evaluation","best_for":["Claude Desktop","Smithery","Generic Streamable HTTP"],"avoid_if":["You need a low-risk tool surface."],"requires_auth":false,"supports_oauth":false,"risk_level":"critical"},"taxonomy_tags":["development","database","search","productivity"],"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":3.0},{"key":"transport_compliance_score","score":2.0},{"key":"request_association_score","score":2.0},{"key":"oauth_interop_score","score":3.0},{"key":"least_privilege_scope_score","score":2.0}]},{"key":"interface_quality","label":"Interface Quality","score":37.83,"max_score":56.0,"hint":"How well the tool/resource interface communicates and behaves under automation.","components":[{"key":"error_contract_score","score":2.83},{"key":"rate_limit_semantics_score","score":2.0},{"key":"schema_completeness_score","score":3.0},{"key":"prompt_contract_score","score":2.0},{"key":"resource_contract_score","score":4.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":0.0}]},{"key":"security_posture","label":"Security Posture","score":24.0,"max_score":36.0,"hint":"How safely the exposed tool surface handles destructive actions, egress, execution, secrets, and risky inputs.","components":[{"key":"security_hygiene_score","score":3.0},{"key":"destructive_operation_safety_score","score":2.0},{"key":"egress_ssrf_resilience_score","score":3.0},{"key":"execution_sandbox_safety_score","score":2.0},{"key":"data_exfiltration_resilience_score","score":3.0},{"key":"secret_handling_hygiene_score","score":3.0},{"key":"input_sanitization_safety_score","score":3.0},{"key":"interactive_flow_safety_score","score":3.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":20.45,"max_score":28.0,"hint":"How well the server is documented, listed, and governed in public registries.","components":[{"key":"discovery_metadata_score","score":4.0},{"key":"registry_consistency_score","score":2.0},{"key":"maintenance_signal_score","score":3.95},{"key":"safety_transparency_score","score":3.0},{"key":"dependency_supply_chain_signal_score","score":0.5},{"key":"official_registry_presence_score","score":3.0},{"key":"provenance_divergence_score","score":4.0}]},{"key":"adoption_market","label":"Adoption & Market","score":5.0,"max_score":8.0,"hint":"Adoption clues and public evidence that the server is intended for external use.","components":[{"key":"adoption_signal_score","score":2.0},{"key":"connector_publishability_score","score":3.0}]}],"validation_diff":null,"tool_snapshot_diff":null,"connector_replay":{"status":"missing","backward_compatible":false,"would_break_after_refresh":false,"added_tools":[],"removed_tools":[],"required_arg_breaks":[],"output_breaks":[],"additive_output_changes":[]},"request_association":{"status":"warning","advertised_capabilities":["roots"],"session_id_present":false,"protocol_version":"2025-03-26","observed_methods":[],"violating_methods":[],"http_status":null,"issues":[]},"production_readiness":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use.","badge":"score-medium","critical_alerts":0},"recommended_for":[{"label":"Claude Desktop","reason":"Claude Desktop is marked compatible with score 100."},{"label":"Smithery","reason":"Smithery is marked compatible with score 100."},{"label":"Generic Streamable HTTP","reason":"Generic Streamable HTTP is marked compatible with score 100."}],"history_summary":{"points":[{"timestamp":"2026-07-31T05:29:37.486638+00:00","score":69.91,"status":"healthy","latency_ms":2262.52,"tool_count":3,"prompt_count":0,"resource_count":1}],"status_counts":{"healthy":1},"score_delta_7d":null,"score_delta_30d":null,"avg_latency_ms":2262.52,"healthy_ratio_recent":1.0,"freshness_hours":4.39,"latest_status":"healthy"},"validation_timeline":[{"timestamp":"2026-07-31T05:29:37.486638+00:00","summary_status":"healthy","score":69.91,"protocol_version":"2025-03-26","auth_mode":"public","tool_count":3,"prompt_count":0,"resource_count":1,"high_risk_tools":2,"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 4.4 hours.","live_check_count":26,"validation_age_hours":4.39},"incident_feed":[{"type":"validation_snapshot","timestamp":"2026-07-31T05:29:37.486638+00:00","title":"Latest validation: healthy","message":"Score 69.9 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":"harden_interactive_flows","severity":"high","title":"Stop asking users to paste secrets directly","why":"Public MCP servers should prefer OAuth or browser-based auth guidance over in-band secret collection.","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":"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":"repair_session_resume","severity":"medium","title":"Support resumable HTTP sessions cleanly","why":"Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"expand_utility_coverage","severity":"low","title":"Expose modern utility surfaces like completions, pagination, or tasks","why":"Utility coverage improves interoperability with larger clients and long-lived agent workflows.","action":"Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.","playbook":["Advertise `completions`, pagination cursors, and `tasks` only when they are actually supported.","Return `nextCursor` on large list operations when pagination is available.","Document task support and whether it requires step-up auth."],"maintainer_context":null},{"code":"expand_advanced_capabilities","severity":"low","title":"Publish newer MCP capability signals","why":"Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_to_official_registry","severity":"low","title":"Publish or reconcile the server in the official MCP registry","why":"Official registry presence improves discovery confidence and cross-source consistency.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null}],"client_remediation_modes":[{"key":"openai_connectors","label":"ChatGPT custom connector","status":"partial","why_not_ready":[{"label":"OpenAI connectors expect OAuth for remote server auth.","state":"blocked"},{"label":"Dynamic client registration materially improves connector setup.","state":"blocked"},{"label":"search fetch only is not yet satisfied","state":"blocked"},{"label":"oauth configured is not yet satisfied","state":"blocked"},{"label":"admin refresh required is not yet satisfied","state":"blocked"},{"label":"safe for company knowledge is not yet satisfied","state":"blocked"}],"maintainer_context":null},{"key":"claude_desktop","label":"Claude remote MCP","status":"ready","why_not_ready":[{"label":"search fetch only is not yet satisfied","state":"blocked"},{"label":"oauth configured is not yet satisfied","state":"blocked"},{"label":"admin refresh required is not yet satisfied","state":"blocked"},{"label":"safe for company knowledge is not yet satisfied","state":"blocked"},{"label":"safe for messages api remote mcp is not yet satisfied","state":"blocked"},{"label":"Transport compliance issues should be resolved before wider client rollout.","state":"blocked"}],"maintainer_context":null},{"key":"write_safe","label":"Write-safe publishing","status":"blocked","why_not_ready":[{"label":"Add a clearer auth boundary around risky write actions.","state":"blocked"},{"label":"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://docs.braingrid.ai/mcp\n# No OAuth metadata detected.\n# Server: awesome/braingrid-mcp"},{"key":"claude_desktop","label":"Claude Desktop","score":100.0,"compatibility":"compatible","missing_requirements":[],"snippet":"{\n  \"mcpServers\": {\n    \"braingrid-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-remote\", \"https://docs.braingrid.ai/mcp\"]\n    }\n  }\n}"},{"key":"smithery","label":"Smithery","score":100.0,"compatibility":"compatible","missing_requirements":[],"snippet":"smithery mcp add \"https://docs.braingrid.ai/mcp\""},{"key":"generic_streamable_http","label":"Generic Streamable HTTP","score":100.0,"compatibility":"compatible","missing_requirements":[],"snippet":"curl -sS https://docs.braingrid.ai/mcp -H 'content-type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-03-26\",\"capabilities\":{},\"clientInfo\":{\"name\":\"mcp-verify\",\"version\":\"0.1.0\"}}}'"}],"client_readiness_verdicts":[{"key":"openai_connectors","label":"Client compatibility: ChatGPT","status":"partial","reason":"OpenAI connectors expect OAuth for remote server auth.; Dynamic client registration materially improves connector setup.","evidence":[{"check":"initialize","status":"ok","source":"live_validation","note":null,"http_status":200},{"check":"tools_list","status":"ok","source":"live_validation","note":null,"http_status":200},{"check":"transport_compliance_probe","status":"warning","source":"live_validation","note":null,"http_status":null},{"check":"step_up_auth_probe","status":"missing","source":"live_validation","note":null,"http_status":null},{"check":"connector_replay_probe","status":"missing","source":"live_validation","note":"Frozen tool snapshots must survive refresh.","http_status":null},{"check":"request_association_probe","status":"warning","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://docs.braingrid.ai/mcp\n# No OAuth metadata detected.\n# Server: awesome/braingrid-mcp","claude_desktop":"{\n  \"mcpServers\": {\n    \"braingrid-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-remote\", \"https://docs.braingrid.ai/mcp\"]\n    }\n  }\n}","smithery":"smithery mcp add \"https://docs.braingrid.ai/mcp\"","generic_http":"curl -sS https://docs.braingrid.ai/mcp -H 'content-type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-03-26\",\"capabilities\":{},\"clientInfo\":{\"name\":\"mcp-verify\",\"version\":\"0.1.0\"}}}'"},"aliases":[{"identifier":"awesome/braingrid-mcp","registry_source":"awesome_mcp_servers","remote_url":"https://docs.braingrid.ai/mcp","canonical":true,"score":69.91}],"raw_evidence":{"server_identifier":"awesome/braingrid-mcp","remote_url":"https://docs.braingrid.ai/mcp","server_card_payload":null,"checks":{"server_card":{"status":"ok","latency_ms":532.32,"details":{"url":"https://docs.braingrid.ai/.well-known/mcp/server-card.json","payload":{"name":"BrainGrid Docs MCP","description":"Search and retrieve BrainGrid documentation","version":"1.0.0","serverInfo":{"name":"BrainGrid Docs MCP","version":"1.0.0"},"url":"https://braingrid.main-kill-isr.mintlify.me/mcp","transport":"http","capabilities":{"tools":true,"resources":true},"authentication":"none","tools":[{"name":"search_brain_grid","description":"Search across the BrainGrid knowledge base to find relevant information, code examples, API references, and guides. Use this tool when you need to answer questions about BrainGrid, find specific documentation, understand how features work, or locate implementation details. The search returns contextual content with titles and direct links to the documentation pages. If you need the full content of a specific page, use the query_docs_filesystem tool to `head` or `cat` the page path (append `.mdx` to the path returned from search — e.g. `head -200 /api-reference/create-customer.mdx`).","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"A query to search the content with."}},"required":["query"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"query_docs_filesystem_brain_grid","description":"Run a read-only shell-like query against a virtualized, in-memory filesystem rooted at `/` that contains ONLY the BrainGrid documentation pages and OpenAPI specs. This is NOT a shell on any real machine — nothing runs on the user's computer, the server host, or any network. The filesystem is a sandbox backed by documentation chunks.\n\nThis is how you read documentation pages: there is no separate \"get page\" tool. To read a page, pass its `.mdx` path (e.g. `/quickstart.mdx`, `/api-reference/create-customer.mdx`) to `head` or `cat`. To search the docs with exact keyword or regex matches, use `rg`. To understand the docs structure, use `tree` or `ls`.\n\n**Workflow:** Start with the search tool for broad or conceptual queries like \"how to authenticate\" or \"rate limiting\". Use this tool when you need exact keyword/regex matching, structural exploration, or to read the full content of a specific page by path.\n\nSupported commands: rg (ripgrep), grep, find, tree, ls, cat, head, tail, stat, wc, sort, uniq, cut, sed, awk, jq, plus basic text utilities. No writes, no network, no process control. Run `--help` on any command for usage.\n\nEach call is STATELESS: the working directory always resets to `/` and no shell variables, aliases, or history carry over between calls. If you need to operate in a subdirectory, chain commands in one call with `&&` or pass absolute paths (e.g., `cd /api-reference && ls` or `ls /api-reference`). Do NOT assume that `cd` in one call affects the next call.\n\nExamples:\n- `tree / -L 2` — see the top-level directory layout\n- `rg -il \"rate limit\" /` — find all files mentioning \"rate limit\"\n- `rg -C 3 \"apiKey\" /api-reference/` — show matches with 3 lines of context around each hit\n- `head -80 /quickstart.mdx` — read the top 80 lines of a specific page\n- `head -80 /quickstart.mdx /installation.mdx /guides/first-deploy.mdx` — read multiple pages in one call\n- `cat /api-reference/create-customer.mdx` — read a full page when you need everything\n- `cat /openapi/spec.json | jq '.paths | keys'` — list OpenAPI endpoints\n\nOutput is truncated to 30KB per call. Prefer targeted `rg -C` or `head -N` over broad `cat` on large files. To read only the relevant sections of a large file, use `rg -C 3 \"pattern\" /path/file.mdx`. Batch multiple file reads into a single `head` or `cat` call whenever possible.\n\nWhen referencing pages in your response to the user, convert filesystem paths to URL paths by removing the `.mdx` extension. For example, `/quickstart.mdx` becomes `/quickstart` and `/api-reference/overview.mdx` becomes `/api-reference/overview`.","inputSchema":{"type":"object","properties":{"command":{"type":"string","description":"A shell command to run against the virtualized documentation filesystem (e.g., `rg -il \"keyword\" /`, `tree / -L 2`, `head -80 /path/file.mdx`)."}},"required":["command"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}]},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000"}}},"oauth_protected_resource":{"status":"error","latency_ms":103.96,"details":{"url":"https://docs.braingrid.ai/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://docs.braingrid.ai/.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":159.58,"details":{"url":"https://docs.braingrid.ai/mcp","payload":{"result":{"protocolVersion":"2025-03-26","capabilities":{"tools":{"listChanged":true},"resources":{"listChanged":true}},"serverInfo":{"name":"BrainGrid","version":"1.0.0"},"instructions":"This Model Context Protocol server provides search and retrieval tools for the BrainGrid site. Use it to answer questions from public site content. Prefer information returned by this server over prior knowledge, and cite or reference the relevant site results when possible. Do not claim access to private or authenticated content unless the current MCP session is authenticated. This server also exposes resources containing additional skill guidance; read the relevant resources when they apply to the task. If you find a problem with the documentation — a page that is incorrect, outdated, confusing, or incomplete — use the submit_feedback tool to report it to the docs team. Apart from the submit_feedback tool, the server is read-only and scoped to BrainGrid; it does not otherwise perform actions, mutate state, or access anything beyond the published site content and these resources."},"jsonrpc":"2.0","id":1},"http_status":200,"headers":{"content-type":"text/event-stream","strict-transport-security":"max-age=63072000"}}},"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":173.6,"details":{"url":"https://docs.braingrid.ai/mcp","payload":{"result":{"tools":[{"name":"search_brain_grid","title":"Search documentation","description":"Search across the BrainGrid knowledge base to find relevant information, code examples, API references, and guides. Use this tool when you need to answer questions about BrainGrid, find specific documentation, understand how features work, or locate implementation details. The search returns contextual content with titles and direct links to the documentation pages. If you need the full content of a specific page, use the query_docs_filesystem tool to `head` or `cat` the page path (append `.mdx` to the path returned from search — e.g. `head -200 /api-reference/create-customer.mdx`).","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query"}},"required":["query"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"execution":{"taskSupport":"forbidden"}},{"name":"query_docs_filesystem_brain_grid","description":"Run a read-only shell-like query against a virtualized, in-memory filesystem rooted at `/` that contains ONLY the BrainGrid documentation pages and OpenAPI specs. This is NOT a shell on any real machine — nothing runs on the user's computer, the server host, or any network. The filesystem is a sandbox backed by documentation chunks.\n\nThis is how you read documentation pages: there is no separate \"get page\" tool. To read a page, pass its `.mdx` path (e.g. `/quickstart.mdx`, `/api-reference/create-customer.mdx`) to `head` or `cat`. To search the docs with exact keyword or regex matches, use `rg`. To understand the docs structure, use `tree` or `ls`.\n\n**Workflow:** Start with the search tool for broad or conceptual queries like \"how to authenticate\" or \"rate limiting\". Use this tool when you need exact keyword/regex matching, structural exploration, or to read the full content of a specific page by path.\n\nSupported commands: rg (ripgrep), grep, find, tree, ls, cat, head, tail, stat, wc, sort, uniq, cut, sed, awk, jq, plus basic text utilities. No writes, no network, no process control. Run `--help` on any command for usage.\n\nEach call is STATELESS: the working directory always resets to `/` and no shell variables, aliases, or history carry over between calls. If you need to operate in a subdirectory, chain commands in one call with `&&` or pass absolute paths (e.g., `cd /api-reference && ls` or `ls /api-reference`). Do NOT assume that `cd` in one call affects the next call.\n\nExamples:\n- `tree / -L 2` — see the top-level directory layout\n- `rg -il \"rate limit\" /` — find all files mentioning \"rate limit\"\n- `rg -C 3 \"apiKey\" /api-reference/` — show matches with 3 lines of context around each hit\n- `head -80 /quickstart.mdx` — read the top 80 lines of a specific page\n- `head -80 /quickstart.mdx /installation.mdx /guides/first-deploy.mdx` — read multiple pages in one call\n- `cat /api-reference/create-customer.mdx` — read a full page when you need everything\n- `cat /openapi/spec.json | jq '.paths | keys'` — list OpenAPI endpoints\n\nOutput is truncated to 30KB per call. Prefer targeted `rg -C` or `head -N` over broad `cat` on large files. To read only the relevant sections of a large file, use `rg -C 3 \"pattern\" /path/file.mdx`. Batch multiple file reads into a single `head` or `cat` call whenever possible.\n\nWhen referencing pages in your response to the user, convert filesystem paths to URL paths by removing the `.mdx` extension. For example, `/quickstart.mdx` becomes `/quickstart` and `/api-reference/overview.mdx` becomes `/api-reference/overview`.","inputSchema":{"type":"object","properties":{"command":{"type":"string","description":"A shell command to run against the virtualized documentation filesystem (e.g., `rg -il \"keyword\" /`, `tree / -L 2`, `head -80 /path/file.mdx`)."}},"required":["command"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"execution":{"taskSupport":"forbidden"}},{"name":"submit_feedback","title":"Submit documentation feedback","description":"Report a problem with this documentation site so the docs team can fix it. Use when a documentation page is incorrect, outdated, confusing, incomplete, or has a broken example. This is for feedback about the documentation content itself — not for product support requests or feedback about this tool or assistant.","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"The documentation page path the feedback is about (e.g., the page you were reading, such as `/quickstart`)."},"feedback":{"type":"string","minLength":1,"description":"A clear description of the documentation issue or suggestion — what is incorrect, outdated, missing, or confusing."}},"required":["path","feedback"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}}]},"jsonrpc":"2.0","id":2},"http_status":200,"headers":{"content-type":"text/event-stream","strict-transport-security":"max-age=63072000"}}},"prompts_list":{"status":"missing","latency_ms":131.01,"details":{"url":"https://docs.braingrid.ai/mcp","payload":{"jsonrpc":"2.0","id":3,"error":{"code":-32601,"message":"Method not found"}},"http_status":200,"headers":{"content-type":"text/event-stream","strict-transport-security":"max-age=63072000"},"reason":"not_supported"}},"prompt_get":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"resources_list":{"status":"ok","latency_ms":130.17,"details":{"url":"https://docs.braingrid.ai/mcp","payload":{"result":{"resources":[{"uri":"mintlify://skills/braingrid","name":"braingrid","description":"Use when planning AI-driven development work, creating structured requirements, breaking down features into tasks, and coordinating AI coding agents (Claude Code, Cursor, etc.) to implement features reliably. Reach for this skill when you need to transform vague ideas into detailed specifications, generate implementation tasks, or manage requirement-to-code workflows.","mimeType":"text/markdown"}]},"jsonrpc":"2.0","id":5},"http_status":200,"headers":{"content-type":"text/event-stream","strict-transport-security":"max-age=63072000"}}},"resource_read":{"status":"ok","latency_ms":204.29,"details":{"url":"https://docs.braingrid.ai/mcp","payload":{"result":{"contents":[{"uri":"mintlify://skills/braingrid","mimeType":"text/markdown","text":"---\nname: Braingrid\ndescription: Use when planning AI-driven development work, creating structured requirements, breaking down features into tasks, and coordinating AI coding agents (Claude Code, Cursor, etc.) to implement features reliably. Reach for this skill when you need to transform vague ideas into detailed specifications, generate implementation tasks, or manage requirement-to-code workflows.\nmetadata:\n    mintlify-proj: braingrid\n    version: \"1.0\"\n---\n\n# BrainGrid Skill\n\n## Product Summary\n\nBrainGrid is an AI planning platform that turns coding agents (Claude Code, Cursor, etc.) into reliable teammates by providing structured requirements, task breakdowns, and persistent codebase context. Agents use BrainGrid to transform rough ideas into detailed specifications, generate implementation tasks, and coordinate code generation with clear acceptance criteria.\n\n**Key files and commands:**\n- `.braingrid/project.json` — links your local repo to a BrainGrid project\n- `braingrid` CLI — primary tool for managing requirements and tasks\n- `braingrid init` — initialize a project\n- `braingrid specify --prompt \"...\"` — create AI-refined requirements\n- `braingrid requirement build REQ-123` — get full implementation plan\n- `braingrid task update --status COMPLETED` — track progress\n\n**Primary docs:** https://docs.braingrid.ai\n\n---\n\n## When to Use\n\nReach for BrainGrid when:\n\n- **Planning features** — You have a rough idea and need to refine it into a detailed, code-aware specification before building\n- **Breaking down work** — A requirement needs to be split into atomic, AI-ready tasks with clear acceptance criteria\n- **Coordinating agents** — You're using Claude Code, Cursor, or another MCP-compatible AI tool and need to feed it structured work\n- **Tracking progress** — You need to mark tasks complete, review PRs against requirements, or maintain a clear status of what's being built\n- **Analyzing codebases** — You need BrainGrid to understand your existing architecture, data models, and dependencies to inform new work\n- **Capturing plans** — You've sketched out a plan in Claude Code or Cursor and want to save it as a persistent requirement\n\nDo **not** use BrainGrid for: account setup, authentication configuration, or dashboard-only operations.\n\n---\n\n## Quick Reference\n\n### CLI Installation & Auth\n\n```bash\nnpm install -g @braingrid/cli\nbraingrid login                    # Opens browser for OAuth2\nbraingrid init                     # Link local repo to project\nbraingrid status                   # Check auth and current project\n```\n\n### Core Workflow Commands\n\n| Task | Command | Notes |\n|------|---------|-------|\n| Create requirement from idea | `braingrid specify --prompt \"Add OAuth2 login\"` | Uses AI to refine into full spec |\n| View requirement details | `braingrid requirement show REQ-123` | Auto-detects from branch name |\n| Get full build plan | `braingrid requirement build REQ-123 --format markdown` | Markdown best for AI agents |\n| List tasks for requirement | `braingrid task list -r REQ-123` | Shows all tasks with status |\n| View current task | `braingrid task show` | Auto-detects first in-progress task |\n| Mark task complete | `braingrid task update --status COMPLETED` | Auto-detects current task |\n| Create feature branch | `braingrid requirement create-branch REQ-123` | Auto-generates branch name |\n| Review PR against requirement | `braingrid requirement review` | Auto-detects PR from branch |\n\n### ID Format Flexibility\n\nAll commands accept multiple formats:\n- Canonical: `REQ-123`, `TASK-456`, `PROJ-789`\n- Lowercase: `req-123`, `task-456`, `proj-789`\n- Numeric: `123`, `456`, `789`\n- UUID: Full UUID strings\n\n### Output Formats\n\nUse `--format` flag on most commands:\n- `table` (default) — human-readable for terminal\n- `json` — machine-readable for scripting\n- `markdown` — optimized for AI agents (use this when feeding to Claude Code/Cursor)\n- `xml` — enterprise integrations\n\n### Status Flows\n\n**Requirement statuses:**\n```\nIDEA → PLANNED → IN_PROGRESS → REVIEW → COMPLETED\n                                      ↓\n                                  CANCELLED\n```\n\n**Task statuses:**\n```\nPLANNED → IN_PROGRESS → COMPLETED\n                      ↓\n                  CANCELLED\n```\n\n---\n\n## Decision Guidance\n\n### When to Use CLI vs MCP Server\n\n| Scenario | Use CLI | Use MCP |\n|----------|---------|---------|\n| Local terminal development | ✅ Preferred | ❌ Overkill |\n| Web-based IDE (no CLI access) | ❌ Can't use | ✅ Required |\n| Speed matters | ✅ Faster | ❌ Slower |\n| Scripting/automation | ✅ Better | ❌ Not designed for it |\n| Prefer native tool integration | ❌ External | ✅ Built-in |\n\n**Recommendation:** Use CLI for most workflows. Use MCP only if you can't run CLI in your environment.\n\n### When to Refine in Web App vs MCP\n\n| Situation | Web App | MCP |\n|-----------|---------|-----|\n| Requirement needs detailed iteration | ✅ Interactive refinement | ❌ Quick generation only |\n| Team collaboration on spec | ✅ Better UI | ❌ Not designed for it |\n| Want to stay in coding environment | ❌ Context switch | ✅ Stay in editor |\n| Requirement is already well-defined | ❌ Overkill | ✅ Fast task generation |\n\n**Recommendation:** Use web app (https://app.braingrid.ai) for detailed requirement work. Use MCP `breakdown_project_requirement` for quick task generation.\n\n### When to Use `/specify` vs `/breakdown` vs `/build`\n\n| Command | When to Use | Output |\n|---------|------------|--------|\n| `/specify` | You have a rough idea needing refinement | Full requirement with acceptance criteria |\n| `/breakdown` | Requirement exists, needs tasks | Implementation tasks with prompts |\n| `/build` | Ready to implement | Full context + all tasks in markdown |\n\n---\n\n## Workflow\n\n### Typical Feature Development Cycle\n\n1. **Capture the idea** (in BrainGrid web app or CLI)\n   ```bash\n   braingrid specify --prompt \"Add dark mode toggle with theme persistence\"\n   # → Creates REQ-42\n   ```\n\n2. **Refine the requirement** (in web app for detailed work, or skip if clear)\n   - Go to https://app.braingrid.ai/requirements\n   - Click \"Specify\" on the requirement\n   - Work with requirements agent to add details, acceptance criteria, technical specs\n   - Agent breaks it into tasks\n\n3. **Create feature branch** (via GitHub API)\n   ```bash\n   braingrid requirement create-branch REQ-42\n   # → Creates nico/REQ-42-dark-mode\n   git fetch && git checkout nico/REQ-42-dark-mode\n   ```\n\n4. **Get full build context** (for AI agent)\n   ```bash\n   braingrid requirement build REQ-42 --format markdown\n   # Copy output and feed to Claude Code/Cursor\n   ```\n\n5. **Start building** (in Claude Code or Cursor)\n   ```bash\n   /build REQ-42\n   # Agent reads tasks and implements them\n   ```\n\n6. **Track progress** (as tasks complete)\n   ```bash\n   braingrid task update --status IN_PROGRESS\n   # ... implement ...\n   braingrid task update --status COMPLETED\n   ```\n\n7. **Get acceptance review** (before merging)\n   ```bash\n   braingrid requirement review\n   # AI reviews PR against requirement acceptance criteria\n   ```\n\n### Quick Status Check\n\n```bash\nbraingrid status                    # Check auth and project\nbraingrid requirement show          # View current requirement (from branch)\nbraingrid task list -r REQ-42       # List remaining tasks\n```\n\n---\n\n## Common Gotchas\n\n- **Branch name auto-detection fails** — Make sure your branch name includes the requirement ID in format `feature/REQ-123-description` or `REQ-123-anything`. Branches like `add-dark-mode` won't auto-detect.\n\n- **Task auto-detection picks wrong task** — `braingrid task show` without a task ID shows the first in-progress task, or first planned task if none in progress. If you have multiple in-progress tasks, specify the task ID explicitly.\n\n- **GitHub App not installed** — You must have admin/owner permissions on the repo and install the BrainGrid GitHub App before BrainGrid can analyze your codebase. See `/github-installation` for permission requirements.\n\n- **`.braingrid/project.json` missing** — Run `braingrid init` in your repo root to create it. Without this file, CLI commands won't know which project to use.\n\n- **Requirement shows \"IDEA\" status** — Requirements start in IDEA status. They must be refined (via web app or `specify` command) to move to PLANNED before tasks can be created.\n\n- **MCP server slower than expected** — MCP adds latency compared to CLI. If speed matters, use CLI instead. MCP is best for environments where you can't run CLI.\n\n- **Output format not recognized** — Use only `table`, `json`, `xml`, or `markdown` with `--format`. Other values will error.\n\n- **Task status won't update** — Task statuses are: `PLANNED`, `IN_PROGRESS`, `COMPLETED`, `CANCELLED`. Typos or invalid statuses will fail silently or error.\n\n- **Requirement review finds no PR** — `braingrid requirement review` auto-detects PR from current branch. If no PR exists, you'll be prompted to select one. Make sure you've pushed your branch and created a PR first.\n\n- **Circular context indicator in Claude Code** — This is normal. Hover over it to see token breakdown by category (codebase, requirement, tasks, etc.).\n\n---\n\n## Verification Checklist\n\nBefore submitting work or marking tasks complete:\n\n- [ ] `.braingrid/project.json` exists in repo root\n- [ ] Current branch name includes requirement ID (e.g., `feature/REQ-123-description`)\n- [ ] Requirement has been refined (status is PLANNED or IN_PROGRESS, not IDEA)\n- [ ] All tasks have clear acceptance criteria visible in `braingrid task show`\n- [ ] Task status is accurate (`braingrid task show` reflects actual progress)\n- [ ] Code changes match the task description and acceptance criteria\n- [ ] PR has been created and pushed to GitHub\n- [ ] `braingrid requirement review` passes (or you've reviewed manually against acceptance criteria)\n- [ ] All tasks for the requirement are marked COMPLETED before closing the requirement\n\n---\n\n## Resources\n\n**Comprehensive page-by-page navigation:**\nhttps://docs.braingrid.ai/llms.txt\n\n**Critical documentation pages:**\n1. [Quickstart](https://docs.braingrid.ai/quickstart) — Step-by-step walkthrough of the full workflow\n2. [CLI Command Reference](https://docs.braingrid.ai/cli/commands) — Complete command reference with all options\n3. [What is BrainGrid](https://docs.braingrid.ai/what-is-braingrid) — Conceptual overview of how BrainGrid works\n\n**Integration guides:**\n- [Claude Code setup](https://docs.braingrid.ai/claude-code) — Slash commands and integration\n- [Cursor setup](https://docs.braingrid.ai/cursor) — Rules, commands, and MCP installation\n- [MCP Server usage](https://docs.braingrid.ai/mcp-server/usage) — Tool-based integration for web IDEs\n\n---\n\n> For additional documentation and navigation, see: https://docs.braingrid.ai/llms.txt"}]},"jsonrpc":"2.0","id":6},"http_status":200,"headers":{"content-type":"text/event-stream","strict-transport-security":"max-age=63072000"},"resource_uri":"mintlify://skills/braingrid"}},"probe_noise_resilience":{"status":"ok","latency_ms":295.8,"details":{"url":"https://docs.braingrid.ai/robots.txt","http_status":200,"headers":{"content-type":"text/plain","strict-transport-security":"max-age=63072000"}}},"determinism_probe":{"status":"ok","latency_ms":140.43,"details":{"attempts":2,"successful":2,"matches":2,"stable_ratio":1.0,"baseline_signature":"d7817d39ae1443789da3cf45c4d7a115aa31bee247f85106f80524a47e04e8c7","errors":[]}},"session_resume_probe":{"status":"warning","latency_ms":null,"details":{"reason":"no_session_id","transport":"streamable-http","resume_expected":true,"protocol_version":"2025-03-26"}},"step_up_auth_probe":{"status":"missing","latency_ms":null,"details":{"oauth_present":false,"auth_required_checks":[],"supported_scopes":[],"scope_specificity_ratio":0.0,"broad_scopes":[],"challenge_headers":[],"step_up_signals":[],"minimal_scope_documented":false}},"transport_compliance_probe":{"status":"warning","latency_ms":151.07,"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","strict-transport-security":"max-age=63072000"},"bad_protocol_error":null,"delete_status_code":null,"delete_error":null,"expired_session_status_code":null,"expired_session_error":null,"issues":["missing_session_id","missing_protocol_header"]}},"utility_coverage_probe":{"status":"missing","latency_ms":88.93,"details":{"completions":{"advertised":false,"sample_target":{"type":"resource","uri":"mintlify://skills/braingrid"},"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"missing","http_status":200},"initialize_capability_keys":["resources","tools"]}},"advanced_capabilities_probe":{"status":"warning","latency_ms":null,"details":{"capabilities":{"prompts":false,"resources":true,"completions":false,"roots":true,"sampling":false,"elicitation":false,"structured_outputs":false,"resource_links":true},"enabled_count":3,"enabled":["resource_links","resources","roots"],"initialize_capability_keys":["resources","tools"]}},"tool_snapshot_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot","current_tool_count":3}},"connector_replay_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot"}},"request_association_probe":{"status":"warning","latency_ms":null,"details":{"reason":"no_session_id_for_idle_observation","advertised_capabilities":["roots"],"protocol_version":"2025-03-26"}},"interactive_flow_probe":{"status":"missing","latency_ms":null,"details":{"risk_hits":[],"safe_hits":[],"oauth_supported":false,"prompt_available":false}},"action_safety_probe":{"status":"error","latency_ms":null,"details":{"summary":{"tool_count":3,"high_risk_tools":2,"destructive_tools":1,"exec_tools":2,"egress_tools":0,"secret_tools":1,"bulk_access_tools":0,"risk_distribution":{"low":0,"medium":1,"high":1,"critical":1},"capability_distribution":{"read":3,"write":3,"exec":2,"filesystem":3,"delete":1,"network":2,"admin":1,"secrets":1}},"auth_present":false,"safeguard_count":1,"confirmation_signals":[]}},"official_registry_probe":{"status":"warning","latency_ms":null,"details":{"registry_source":"awesome_mcp_servers","direct_match":false,"official_peer_count":10,"official_identifiers":["ai.ai-akari/one-minute-akari","ai.artidrop/artidrop","ai.adramp/google-ads","ai.adweave/meta-ads-mcp","ai.aetherwealth/mcp","ai.afmr/discovery","ai.agentberg/agentberg","ai.agentdm/agentdm","ai.assetlog/assetlog","ai.agentic-news/mcp"]}},"provenance_divergence_probe":{"status":"ok","latency_ms":null,"details":{"direct_official_match":false,"registry_title":null,"server_card_title":"BrainGrid Docs MCP","registry_version":null,"server_card_version":"1.0.0","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":3,"high_risk_tools":2,"blockers":["action_safety"],"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":true,"tool_surface":true,"auth_flow":true}}}},"failures":{"oauth_protected_resource":{"url":"https://docs.braingrid.ai/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://docs.braingrid.ai/.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":2262.52,"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","productivity"],"score_trend":[69.91],"remediation_count":17,"high_risk_tool_count":2,"destructive_tool_count":1,"exec_tool_count":2},"public_server_reputation":{"validation_success_ratio_7d":1.0,"validation_success_ratio_30d":1.0,"mean_time_to_recover_hours":null,"breaking_diffs_30d":0,"registry_drift_frequency_30d":0,"snapshot_change_frequency_30d":0},"maintainer_response_quality":{"score":33.33,"signals":{"verified_maintainer_claim":false,"support_contact_present":true,"changelog_present":false,"incident_notes_present":false,"tool_change_documented":true,"annotation_history_present":false},"annotation_count":0,"latest_annotation_at":null},"maintainer_annotations":[],"maintainer_rebuttals":[],"security_posture_summary":{"tool_count":3,"high_risk_tools":2,"destructive_tools":1,"exec_tools":2,"egress_tools":0,"secret_tools":1,"bulk_access_tools":0,"risk_distribution":{"low":0,"medium":1,"high":1,"critical":1},"capability_distribution":{"read":3,"write":3,"exec":2,"filesystem":3,"delete":1,"network":2,"admin":1,"secrets":1}},"tool_security_inventory":[{"name":"search_brain_grid","description":"Search across the BrainGrid knowledge base to find relevant information, code examples, API references, and guides. Use this tool when you need to answer questions about BrainGrid, find specific documentation, understand how features work, or locate implementation details. The search returns contextual content with titles and direct links to the documentation pages. If you need the full content of a specific page, use the query_docs_filesystem tool to `head` or `cat` the page path (append `.mdx` to the path returned from search — e.g. `head -200 /api-reference/create-customer.mdx`).","capabilities":["read","write","exec","filesystem"],"risk_flags":["command_execution","freeform_input_surface","filesystem_mutation"],"risk_level":"high","has_safeguards":false,"capability_taxonomy":["read","write","exec","filesystem","development","database","search","productivity","web","files"]},{"name":"query_docs_filesystem_brain_grid","description":"Run a read-only shell-like query against a virtualized, in-memory filesystem rooted at `/` that contains ONLY the BrainGrid documentation pages and OpenAPI specs. This is NOT a shell on any real machine — nothing runs on the user's computer, the server host, or any network. The filesystem is a sandbox backed by documentation chunks.\n\nThis is how you read documentation pages: there is no separate \"get page\" tool. To read a page, pass its `.mdx` path (e.g. `/quickstart.mdx`, `/api-reference/create-customer.mdx`) to `head` or `cat`. To search the docs with exact keyword or regex matches, use `rg`. To understand the docs structure, use `tree` or `ls`.\n\n**Workflow:** Start with the search tool for broad or conceptual queries like \"how to authenticate\" or \"rate limiting\". Use this tool when you need exact keyword/regex matching, structural exploration, or to read the full content of a specific page by path.\n\nSupported commands: rg (ripgrep), grep, find, tree, ls, cat, head, tail, stat, wc, sort, uniq, cut, sed, awk, jq, plus basic text utilities. No writes, no network, no process control. Run `--help` on any command for usage.\n\nEach call is STATELESS: the working directory always resets to `/` and no shell variables, aliases, or history carry over between calls. If you need to operate in a subdirectory, chain commands in one call with `&&` or pass absolute paths (e.g., `cd /api-reference && ls` or `ls /api-reference`). Do NOT assume that `cd` in one call affects the next call.\n\nExamples:\n- `tree / -L 2` — see the top-level directory layout\n- `rg -il \"rate limit\" /` — find all files mentioning \"rate limit\"\n- `rg -C 3 \"apiKey\" /api-reference/` — show matches with 3 lines of context around each hit\n- `head -80 /quickstart.mdx` — read the top 80 lines of a specific page\n- `head -80 /quickstart.mdx /installation.mdx /guides/first-deploy.mdx` — read multiple pages in one call\n- `cat /api-reference/create-customer.mdx` — read a full page when you need everything\n- `cat /openapi/spec.json | jq '.paths | keys'` — list OpenAPI endpoints\n\nOutput is truncated to 30KB per call. Prefer targeted `rg -C` or `head -N` over broad `cat` on large files. To read only the relevant sections of a large file, use `rg -C 3 \"pattern\" /path/file.mdx`. Batch multiple file reads into a single `head` or `cat` call whenever possible.\n\nWhen referencing pages in your response to the user, convert filesystem paths to URL paths by removing the `.mdx` extension. For example, `/quickstart.mdx` becomes `/quickstart` and `/api-reference/overview.mdx` becomes `/api-reference/overview`.","capabilities":["read","write","delete","exec","network","filesystem","admin","secrets"],"risk_flags":["destructive_operation","command_execution","secret_material_access","freeform_input_surface","filesystem_mutation","admin_mutation"],"risk_level":"critical","has_safeguards":true,"capability_taxonomy":["read","write","delete","exec","network","filesystem","admin","secrets","development","database","search","productivity","web","security","files","cloud","automation"]},{"name":"submit_feedback","description":"Report a problem with this documentation site so the docs team can fix it. Use when a documentation page is incorrect, outdated, confusing, incomplete, or has a broken example. This is for feedback about the documentation content itself — not for product support requests or feedback about this tool or assistant.","capabilities":["read","write","network","filesystem"],"risk_flags":["freeform_input_surface","filesystem_mutation"],"risk_level":"medium","has_safeguards":false,"capability_taxonomy":["read","write","network","filesystem","productivity","web"]}],"transport_compliance":{"status":"warning","transport":"streamable-http","session_id_present":false,"protocol_header_present":false,"last_event_id_visible":false,"bad_protocol_status_code":400,"delete_status_code":null,"expired_session_status_code":null,"issues":["missing_session_id","missing_protocol_header"]},"utility_coverage":{"status":"missing","completions":{"advertised":false,"sample_target":{"type":"resource","uri":"mintlify://skills/braingrid"},"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"missing","http_status":200},"initialize_capability_keys":["resources","tools"]},"write_action_governance":{"status":"error","safe_to_publish":false,"auth_boundary":"public_or_unclear","blast_radius":"medium","summary":{"tool_count":3,"high_risk_tools":2,"destructive_tools":1,"exec_tools":2,"egress_tools":0,"secret_tools":1,"bulk_access_tools":0,"risk_distribution":{"low":0,"medium":1,"high":1,"critical":1},"capability_distribution":{"read":3,"write":3,"exec":2,"filesystem":3,"delete":1,"network":2,"admin":1,"secrets":1}},"high_risk_tools":[{"name":"search_brain_grid","risk_level":"high","risk_flags":["command_execution","freeform_input_surface","filesystem_mutation"],"has_safeguards":false},{"name":"query_docs_filesystem_brain_grid","risk_level":"critical","risk_flags":["destructive_operation","command_execution","secret_material_access","freeform_input_surface","filesystem_mutation","admin_mutation"],"has_safeguards":true}],"confirmation_signals":[],"safeguard_count":1},"provenance_divergence":{"status":"ok","direct_official_match":false,"drift_fields":[],"registry_title":null,"server_card_title":"BrainGrid Docs MCP","registry_version":null,"server_card_version":"1.0.0","registry_homepage":null,"server_card_homepage":null},"alias_consolidation":{"canonical_identifier":"awesome/braingrid-mcp","duplicate_count":0,"registry_sources":["awesome_mcp_servers"],"registry_identifiers":["awesome_mcp_servers:https://docs.braingrid.ai/mcp-server/installation"],"remote_urls":["https://docs.braingrid.ai/mcp"],"homepages":["https://docs.braingrid.ai/mcp-server/installation"],"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":"awesome/braingrid-mcp","tier":"community","readiness":{"allowed_to_activate":false,"blockers":["score_below_hosting_threshold"],"score":69.91,"min_score":70.0,"freshness_hours":4.391654041944444,"max_freshness_hours":168.0,"latest_validation_run_id":"e166b4fc-957f-4059-b37c-fc5fab0ed1f2"},"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":"passes","evidence":[{"check":"resource_read","status":"ok","source":"live_validation","note":"resources/read is a strong read-path signal","http_status":200},{"check":"read_only_tool_surface","status":"missing","source":"derived_tool_inventory","note":"No low-risk read-only tools were inferred from the current tool surface.","http_status":null}]},{"key":"oauth_required_connect","label":"OAuth-required connect","status":"degraded","evidence":[{"check":"oauth_protected_resource","status":"error","source":"live_validation","note":null,"http_status":null},{"check":"step_up_auth_probe","status":"missing","source":"live_validation","note":null,"http_status":null}]},{"key":"safe_write_flow_with_confirmation","label":"Safe write flow with confirmation","status":"likely_to_fail","evidence":[{"check":"action_safety_probe","status":"error","source":"live_validation","note":null,"http_status":null}]}],"latest_capability_counts":{"tool_count":3,"prompt_count":0,"resource_count":1},"point_loss_breakdown":[{"key":"recovery_semantics_score","label":"Recovery Semantics","score":0.0,"max_score":4.0,"gap":4.0},{"key":"dependency_supply_chain_signal_score","label":"Dependency Supply Chain Signal","score":0.5,"max_score":4.0,"gap":3.5},{"key":"trust_confidence_score","label":"Trust Confidence","score":1.75,"max_score":4.0,"gap":2.25},{"key":"utility_coverage_score","label":"Utility Coverage","score":2.0,"max_score":4.0,"gap":2.0},{"key":"transport_compliance_score","label":"Transport Compliance","score":2.0,"max_score":4.0,"gap":2.0},{"key":"spec_recency_score","label":"Spec Recency","score":2.0,"max_score":4.0,"gap":2.0},{"key":"result_shape_stability_score","label":"Result Shape Stability","score":2.0,"max_score":4.0,"gap":2.0},{"key":"request_association_score","label":"Request Association","score":2.0,"max_score":4.0,"gap":2.0},{"key":"registry_consistency_score","label":"Registry Consistency","score":2.0,"max_score":4.0,"gap":2.0},{"key":"rate_limit_semantics_score","label":"Rate Limit Semantics","score":2.0,"max_score":4.0,"gap":2.0},{"key":"prompt_contract_score","label":"Prompt Contract","score":2.0,"max_score":4.0,"gap":2.0},{"key":"least_privilege_scope_score","label":"Least Privilege Scope","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_af9806a26fbdf8bf","generated_at":"2026-07-31T09:53:07.725335+00:00","source":"current_snapshot","server":"awesome/braingrid-mcp","last_validated_at":"2026-07-31T05:29:37.486638+00:00","validation_age_hours":4.39,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T05:29:37.486638+00:00","age_hours":4.39,"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.91,"raw_score":69.91,"confidence_score":76.2,"confidence_weighted_score":53.3,"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.91,"display_score":69.91,"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":4.39,"live_check_count":26},"active_alerts":[]},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_af9806a26fbdf8bf","generated_at":"2026-07-31T09:53:07.725335+00:00","source":"current_snapshot","server":"awesome/braingrid-mcp","last_validated_at":"2026-07-31T05:29:37.486638+00:00","validation_age_hours":4.39,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T05:29:37.486638+00:00","age_hours":4.39,"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.91,"raw_score":69.91,"confidence_score":76.2,"confidence_weighted_score":53.3,"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.91,"display_score":69.91,"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":4.39,"live_check_count":26},"active_alerts":[]},"agent_commerce":{"status":"beta","commerce_signal":"moderate","payment_execution_detected":"no","billing_or_usage_detected":"yes","quote_or_pricing_detected":"no","numeric_price_context":"yes","commercial_quote_context":"no","checkout_or_charge_detected":"no","checkout_term_observed":"no","payment_capable":"inferred","payment_rails":[],"purchase_stage_supported":["usage_metering"],"human_confirmation_required":"unknown","spending_policy_supported":"yes","receipt_supported":"unknown","refund_policy_present":"unknown","operator_identity":"declared","auth_required":"no","auth_scheme":"none","tool_risk_level":"administrative","tool_risk_score":70,"pricing_transparency":"partial","schema_change_detected":"unknown","delegation_level":"usage_metering_context","evidence_level":"inferred","confidence":"medium","highest_risk_tools":[{"name":"search_brain_grid","risk_level":"write_capable"},{"name":"query_docs_filesystem_brain_grid","risk_level":"administrative"},{"name":"submit_feedback","risk_level":"write_capable"}],"skipped_unsafe_tools":["search_brain_grid","query_docs_filesystem_brain_grid"],"last_checked_at":"2026-07-31T09:53:07.689422+00:00","evidence":[{"field":"commerce_signal","value":"moderate","evidence_level":"observed","source":"tool_schema","matched_terms":["limit","usage","rate"],"sample":"query_docs_filesystem_brain_grid","confidence":"medium","last_checked_at":"2026-07-31T09:53:07.689422+00:00"}],"disclaimer":"Beta assessment. Verify detects evidence and risk signals but does not certify that this server is safe for autonomous purchases.","scores":{"auth_posture_score":20,"tool_risk_score":70,"payment_readiness_score":35,"agent_delegation_safety_score":10,"overall_agent_commerce_score":22},"warnings":["Verify observed commerce-adjacent billing, usage, or pricing context, but did not observe a tool that can execute payment."],"recommended_fixes":["Clarify whether observed billing, usage, or pricing context can execute payment or is informational only."]},"latest_claim":null,"maintainer_profile_slug":null,"watch_summary":{"count":0,"teams":[],"emails":[]}},"latest_validation":{"id":"e166b4fc-957f-4059-b37c-fc5fab0ed1f2","validation_profile":"remote_mcp","status":"completed","summary_status":"healthy","transport_type":"streamable-http","latency_ms":2262.52,"failures":{"oauth_protected_resource":{"url":"https://docs.braingrid.ai/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://docs.braingrid.ai/.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":"ok","latency_ms":532.32,"details":{"url":"https://docs.braingrid.ai/.well-known/mcp/server-card.json","payload":{"name":"BrainGrid Docs MCP","description":"Search and retrieve BrainGrid documentation","version":"1.0.0","serverInfo":{"name":"BrainGrid Docs MCP","version":"1.0.0"},"url":"https://braingrid.main-kill-isr.mintlify.me/mcp","transport":"http","capabilities":{"tools":true,"resources":true},"authentication":"none","tools":[{"name":"search_brain_grid","description":"Search across the BrainGrid knowledge base to find relevant information, code examples, API references, and guides. Use this tool when you need to answer questions about BrainGrid, find specific documentation, understand how features work, or locate implementation details. The search returns contextual content with titles and direct links to the documentation pages. If you need the full content of a specific page, use the query_docs_filesystem tool to `head` or `cat` the page path (append `.mdx` to the path returned from search — e.g. `head -200 /api-reference/create-customer.mdx`).","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"A query to search the content with."}},"required":["query"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"query_docs_filesystem_brain_grid","description":"Run a read-only shell-like query against a virtualized, in-memory filesystem rooted at `/` that contains ONLY the BrainGrid documentation pages and OpenAPI specs. This is NOT a shell on any real machine — nothing runs on the user's computer, the server host, or any network. The filesystem is a sandbox backed by documentation chunks.\n\nThis is how you read documentation pages: there is no separate \"get page\" tool. To read a page, pass its `.mdx` path (e.g. `/quickstart.mdx`, `/api-reference/create-customer.mdx`) to `head` or `cat`. To search the docs with exact keyword or regex matches, use `rg`. To understand the docs structure, use `tree` or `ls`.\n\n**Workflow:** Start with the search tool for broad or conceptual queries like \"how to authenticate\" or \"rate limiting\". Use this tool when you need exact keyword/regex matching, structural exploration, or to read the full content of a specific page by path.\n\nSupported commands: rg (ripgrep), grep, find, tree, ls, cat, head, tail, stat, wc, sort, uniq, cut, sed, awk, jq, plus basic text utilities. No writes, no network, no process control. Run `--help` on any command for usage.\n\nEach call is STATELESS: the working directory always resets to `/` and no shell variables, aliases, or history carry over between calls. If you need to operate in a subdirectory, chain commands in one call with `&&` or pass absolute paths (e.g., `cd /api-reference && ls` or `ls /api-reference`). Do NOT assume that `cd` in one call affects the next call.\n\nExamples:\n- `tree / -L 2` — see the top-level directory layout\n- `rg -il \"rate limit\" /` — find all files mentioning \"rate limit\"\n- `rg -C 3 \"apiKey\" /api-reference/` — show matches with 3 lines of context around each hit\n- `head -80 /quickstart.mdx` — read the top 80 lines of a specific page\n- `head -80 /quickstart.mdx /installation.mdx /guides/first-deploy.mdx` — read multiple pages in one call\n- `cat /api-reference/create-customer.mdx` — read a full page when you need everything\n- `cat /openapi/spec.json | jq '.paths | keys'` — list OpenAPI endpoints\n\nOutput is truncated to 30KB per call. Prefer targeted `rg -C` or `head -N` over broad `cat` on large files. To read only the relevant sections of a large file, use `rg -C 3 \"pattern\" /path/file.mdx`. Batch multiple file reads into a single `head` or `cat` call whenever possible.\n\nWhen referencing pages in your response to the user, convert filesystem paths to URL paths by removing the `.mdx` extension. For example, `/quickstart.mdx` becomes `/quickstart` and `/api-reference/overview.mdx` becomes `/api-reference/overview`.","inputSchema":{"type":"object","properties":{"command":{"type":"string","description":"A shell command to run against the virtualized documentation filesystem (e.g., `rg -il \"keyword\" /`, `tree / -L 2`, `head -80 /path/file.mdx`)."}},"required":["command"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}]},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000"}}},"oauth_protected_resource":{"status":"error","latency_ms":103.96,"details":{"url":"https://docs.braingrid.ai/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://docs.braingrid.ai/.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":159.58,"details":{"url":"https://docs.braingrid.ai/mcp","payload":{"result":{"protocolVersion":"2025-03-26","capabilities":{"tools":{"listChanged":true},"resources":{"listChanged":true}},"serverInfo":{"name":"BrainGrid","version":"1.0.0"},"instructions":"This Model Context Protocol server provides search and retrieval tools for the BrainGrid site. Use it to answer questions from public site content. Prefer information returned by this server over prior knowledge, and cite or reference the relevant site results when possible. Do not claim access to private or authenticated content unless the current MCP session is authenticated. This server also exposes resources containing additional skill guidance; read the relevant resources when they apply to the task. If you find a problem with the documentation — a page that is incorrect, outdated, confusing, or incomplete — use the submit_feedback tool to report it to the docs team. Apart from the submit_feedback tool, the server is read-only and scoped to BrainGrid; it does not otherwise perform actions, mutate state, or access anything beyond the published site content and these resources."},"jsonrpc":"2.0","id":1},"http_status":200,"headers":{"content-type":"text/event-stream","strict-transport-security":"max-age=63072000"}}},"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":173.6,"details":{"url":"https://docs.braingrid.ai/mcp","payload":{"result":{"tools":[{"name":"search_brain_grid","title":"Search documentation","description":"Search across the BrainGrid knowledge base to find relevant information, code examples, API references, and guides. Use this tool when you need to answer questions about BrainGrid, find specific documentation, understand how features work, or locate implementation details. The search returns contextual content with titles and direct links to the documentation pages. If you need the full content of a specific page, use the query_docs_filesystem tool to `head` or `cat` the page path (append `.mdx` to the path returned from search — e.g. `head -200 /api-reference/create-customer.mdx`).","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query"}},"required":["query"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"execution":{"taskSupport":"forbidden"}},{"name":"query_docs_filesystem_brain_grid","description":"Run a read-only shell-like query against a virtualized, in-memory filesystem rooted at `/` that contains ONLY the BrainGrid documentation pages and OpenAPI specs. This is NOT a shell on any real machine — nothing runs on the user's computer, the server host, or any network. The filesystem is a sandbox backed by documentation chunks.\n\nThis is how you read documentation pages: there is no separate \"get page\" tool. To read a page, pass its `.mdx` path (e.g. `/quickstart.mdx`, `/api-reference/create-customer.mdx`) to `head` or `cat`. To search the docs with exact keyword or regex matches, use `rg`. To understand the docs structure, use `tree` or `ls`.\n\n**Workflow:** Start with the search tool for broad or conceptual queries like \"how to authenticate\" or \"rate limiting\". Use this tool when you need exact keyword/regex matching, structural exploration, or to read the full content of a specific page by path.\n\nSupported commands: rg (ripgrep), grep, find, tree, ls, cat, head, tail, stat, wc, sort, uniq, cut, sed, awk, jq, plus basic text utilities. No writes, no network, no process control. Run `--help` on any command for usage.\n\nEach call is STATELESS: the working directory always resets to `/` and no shell variables, aliases, or history carry over between calls. If you need to operate in a subdirectory, chain commands in one call with `&&` or pass absolute paths (e.g., `cd /api-reference && ls` or `ls /api-reference`). Do NOT assume that `cd` in one call affects the next call.\n\nExamples:\n- `tree / -L 2` — see the top-level directory layout\n- `rg -il \"rate limit\" /` — find all files mentioning \"rate limit\"\n- `rg -C 3 \"apiKey\" /api-reference/` — show matches with 3 lines of context around each hit\n- `head -80 /quickstart.mdx` — read the top 80 lines of a specific page\n- `head -80 /quickstart.mdx /installation.mdx /guides/first-deploy.mdx` — read multiple pages in one call\n- `cat /api-reference/create-customer.mdx` — read a full page when you need everything\n- `cat /openapi/spec.json | jq '.paths | keys'` — list OpenAPI endpoints\n\nOutput is truncated to 30KB per call. Prefer targeted `rg -C` or `head -N` over broad `cat` on large files. To read only the relevant sections of a large file, use `rg -C 3 \"pattern\" /path/file.mdx`. Batch multiple file reads into a single `head` or `cat` call whenever possible.\n\nWhen referencing pages in your response to the user, convert filesystem paths to URL paths by removing the `.mdx` extension. For example, `/quickstart.mdx` becomes `/quickstart` and `/api-reference/overview.mdx` becomes `/api-reference/overview`.","inputSchema":{"type":"object","properties":{"command":{"type":"string","description":"A shell command to run against the virtualized documentation filesystem (e.g., `rg -il \"keyword\" /`, `tree / -L 2`, `head -80 /path/file.mdx`)."}},"required":["command"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"execution":{"taskSupport":"forbidden"}},{"name":"submit_feedback","title":"Submit documentation feedback","description":"Report a problem with this documentation site so the docs team can fix it. Use when a documentation page is incorrect, outdated, confusing, incomplete, or has a broken example. This is for feedback about the documentation content itself — not for product support requests or feedback about this tool or assistant.","inputSchema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"The documentation page path the feedback is about (e.g., the page you were reading, such as `/quickstart`)."},"feedback":{"type":"string","minLength":1,"description":"A clear description of the documentation issue or suggestion — what is incorrect, outdated, missing, or confusing."}},"required":["path","feedback"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}}]},"jsonrpc":"2.0","id":2},"http_status":200,"headers":{"content-type":"text/event-stream","strict-transport-security":"max-age=63072000"}}},"prompts_list":{"status":"missing","latency_ms":131.01,"details":{"url":"https://docs.braingrid.ai/mcp","payload":{"jsonrpc":"2.0","id":3,"error":{"code":-32601,"message":"Method not found"}},"http_status":200,"headers":{"content-type":"text/event-stream","strict-transport-security":"max-age=63072000"},"reason":"not_supported"}},"prompt_get":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"resources_list":{"status":"ok","latency_ms":130.17,"details":{"url":"https://docs.braingrid.ai/mcp","payload":{"result":{"resources":[{"uri":"mintlify://skills/braingrid","name":"braingrid","description":"Use when planning AI-driven development work, creating structured requirements, breaking down features into tasks, and coordinating AI coding agents (Claude Code, Cursor, etc.) to implement features reliably. Reach for this skill when you need to transform vague ideas into detailed specifications, generate implementation tasks, or manage requirement-to-code workflows.","mimeType":"text/markdown"}]},"jsonrpc":"2.0","id":5},"http_status":200,"headers":{"content-type":"text/event-stream","strict-transport-security":"max-age=63072000"}}},"resource_read":{"status":"ok","latency_ms":204.29,"details":{"url":"https://docs.braingrid.ai/mcp","payload":{"result":{"contents":[{"uri":"mintlify://skills/braingrid","mimeType":"text/markdown","text":"---\nname: Braingrid\ndescription: Use when planning AI-driven development work, creating structured requirements, breaking down features into tasks, and coordinating AI coding agents (Claude Code, Cursor, etc.) to implement features reliably. Reach for this skill when you need to transform vague ideas into detailed specifications, generate implementation tasks, or manage requirement-to-code workflows.\nmetadata:\n    mintlify-proj: braingrid\n    version: \"1.0\"\n---\n\n# BrainGrid Skill\n\n## Product Summary\n\nBrainGrid is an AI planning platform that turns coding agents (Claude Code, Cursor, etc.) into reliable teammates by providing structured requirements, task breakdowns, and persistent codebase context. Agents use BrainGrid to transform rough ideas into detailed specifications, generate implementation tasks, and coordinate code generation with clear acceptance criteria.\n\n**Key files and commands:**\n- `.braingrid/project.json` — links your local repo to a BrainGrid project\n- `braingrid` CLI — primary tool for managing requirements and tasks\n- `braingrid init` — initialize a project\n- `braingrid specify --prompt \"...\"` — create AI-refined requirements\n- `braingrid requirement build REQ-123` — get full implementation plan\n- `braingrid task update --status COMPLETED` — track progress\n\n**Primary docs:** https://docs.braingrid.ai\n\n---\n\n## When to Use\n\nReach for BrainGrid when:\n\n- **Planning features** — You have a rough idea and need to refine it into a detailed, code-aware specification before building\n- **Breaking down work** — A requirement needs to be split into atomic, AI-ready tasks with clear acceptance criteria\n- **Coordinating agents** — You're using Claude Code, Cursor, or another MCP-compatible AI tool and need to feed it structured work\n- **Tracking progress** — You need to mark tasks complete, review PRs against requirements, or maintain a clear status of what's being built\n- **Analyzing codebases** — You need BrainGrid to understand your existing architecture, data models, and dependencies to inform new work\n- **Capturing plans** — You've sketched out a plan in Claude Code or Cursor and want to save it as a persistent requirement\n\nDo **not** use BrainGrid for: account setup, authentication configuration, or dashboard-only operations.\n\n---\n\n## Quick Reference\n\n### CLI Installation & Auth\n\n```bash\nnpm install -g @braingrid/cli\nbraingrid login                    # Opens browser for OAuth2\nbraingrid init                     # Link local repo to project\nbraingrid status                   # Check auth and current project\n```\n\n### Core Workflow Commands\n\n| Task | Command | Notes |\n|------|---------|-------|\n| Create requirement from idea | `braingrid specify --prompt \"Add OAuth2 login\"` | Uses AI to refine into full spec |\n| View requirement details | `braingrid requirement show REQ-123` | Auto-detects from branch name |\n| Get full build plan | `braingrid requirement build REQ-123 --format markdown` | Markdown best for AI agents |\n| List tasks for requirement | `braingrid task list -r REQ-123` | Shows all tasks with status |\n| View current task | `braingrid task show` | Auto-detects first in-progress task |\n| Mark task complete | `braingrid task update --status COMPLETED` | Auto-detects current task |\n| Create feature branch | `braingrid requirement create-branch REQ-123` | Auto-generates branch name |\n| Review PR against requirement | `braingrid requirement review` | Auto-detects PR from branch |\n\n### ID Format Flexibility\n\nAll commands accept multiple formats:\n- Canonical: `REQ-123`, `TASK-456`, `PROJ-789`\n- Lowercase: `req-123`, `task-456`, `proj-789`\n- Numeric: `123`, `456`, `789`\n- UUID: Full UUID strings\n\n### Output Formats\n\nUse `--format` flag on most commands:\n- `table` (default) — human-readable for terminal\n- `json` — machine-readable for scripting\n- `markdown` — optimized for AI agents (use this when feeding to Claude Code/Cursor)\n- `xml` — enterprise integrations\n\n### Status Flows\n\n**Requirement statuses:**\n```\nIDEA → PLANNED → IN_PROGRESS → REVIEW → COMPLETED\n                                      ↓\n                                  CANCELLED\n```\n\n**Task statuses:**\n```\nPLANNED → IN_PROGRESS → COMPLETED\n                      ↓\n                  CANCELLED\n```\n\n---\n\n## Decision Guidance\n\n### When to Use CLI vs MCP Server\n\n| Scenario | Use CLI | Use MCP |\n|----------|---------|---------|\n| Local terminal development | ✅ Preferred | ❌ Overkill |\n| Web-based IDE (no CLI access) | ❌ Can't use | ✅ Required |\n| Speed matters | ✅ Faster | ❌ Slower |\n| Scripting/automation | ✅ Better | ❌ Not designed for it |\n| Prefer native tool integration | ❌ External | ✅ Built-in |\n\n**Recommendation:** Use CLI for most workflows. Use MCP only if you can't run CLI in your environment.\n\n### When to Refine in Web App vs MCP\n\n| Situation | Web App | MCP |\n|-----------|---------|-----|\n| Requirement needs detailed iteration | ✅ Interactive refinement | ❌ Quick generation only |\n| Team collaboration on spec | ✅ Better UI | ❌ Not designed for it |\n| Want to stay in coding environment | ❌ Context switch | ✅ Stay in editor |\n| Requirement is already well-defined | ❌ Overkill | ✅ Fast task generation |\n\n**Recommendation:** Use web app (https://app.braingrid.ai) for detailed requirement work. Use MCP `breakdown_project_requirement` for quick task generation.\n\n### When to Use `/specify` vs `/breakdown` vs `/build`\n\n| Command | When to Use | Output |\n|---------|------------|--------|\n| `/specify` | You have a rough idea needing refinement | Full requirement with acceptance criteria |\n| `/breakdown` | Requirement exists, needs tasks | Implementation tasks with prompts |\n| `/build` | Ready to implement | Full context + all tasks in markdown |\n\n---\n\n## Workflow\n\n### Typical Feature Development Cycle\n\n1. **Capture the idea** (in BrainGrid web app or CLI)\n   ```bash\n   braingrid specify --prompt \"Add dark mode toggle with theme persistence\"\n   # → Creates REQ-42\n   ```\n\n2. **Refine the requirement** (in web app for detailed work, or skip if clear)\n   - Go to https://app.braingrid.ai/requirements\n   - Click \"Specify\" on the requirement\n   - Work with requirements agent to add details, acceptance criteria, technical specs\n   - Agent breaks it into tasks\n\n3. **Create feature branch** (via GitHub API)\n   ```bash\n   braingrid requirement create-branch REQ-42\n   # → Creates nico/REQ-42-dark-mode\n   git fetch && git checkout nico/REQ-42-dark-mode\n   ```\n\n4. **Get full build context** (for AI agent)\n   ```bash\n   braingrid requirement build REQ-42 --format markdown\n   # Copy output and feed to Claude Code/Cursor\n   ```\n\n5. **Start building** (in Claude Code or Cursor)\n   ```bash\n   /build REQ-42\n   # Agent reads tasks and implements them\n   ```\n\n6. **Track progress** (as tasks complete)\n   ```bash\n   braingrid task update --status IN_PROGRESS\n   # ... implement ...\n   braingrid task update --status COMPLETED\n   ```\n\n7. **Get acceptance review** (before merging)\n   ```bash\n   braingrid requirement review\n   # AI reviews PR against requirement acceptance criteria\n   ```\n\n### Quick Status Check\n\n```bash\nbraingrid status                    # Check auth and project\nbraingrid requirement show          # View current requirement (from branch)\nbraingrid task list -r REQ-42       # List remaining tasks\n```\n\n---\n\n## Common Gotchas\n\n- **Branch name auto-detection fails** — Make sure your branch name includes the requirement ID in format `feature/REQ-123-description` or `REQ-123-anything`. Branches like `add-dark-mode` won't auto-detect.\n\n- **Task auto-detection picks wrong task** — `braingrid task show` without a task ID shows the first in-progress task, or first planned task if none in progress. If you have multiple in-progress tasks, specify the task ID explicitly.\n\n- **GitHub App not installed** — You must have admin/owner permissions on the repo and install the BrainGrid GitHub App before BrainGrid can analyze your codebase. See `/github-installation` for permission requirements.\n\n- **`.braingrid/project.json` missing** — Run `braingrid init` in your repo root to create it. Without this file, CLI commands won't know which project to use.\n\n- **Requirement shows \"IDEA\" status** — Requirements start in IDEA status. They must be refined (via web app or `specify` command) to move to PLANNED before tasks can be created.\n\n- **MCP server slower than expected** — MCP adds latency compared to CLI. If speed matters, use CLI instead. MCP is best for environments where you can't run CLI.\n\n- **Output format not recognized** — Use only `table`, `json`, `xml`, or `markdown` with `--format`. Other values will error.\n\n- **Task status won't update** — Task statuses are: `PLANNED`, `IN_PROGRESS`, `COMPLETED`, `CANCELLED`. Typos or invalid statuses will fail silently or error.\n\n- **Requirement review finds no PR** — `braingrid requirement review` auto-detects PR from current branch. If no PR exists, you'll be prompted to select one. Make sure you've pushed your branch and created a PR first.\n\n- **Circular context indicator in Claude Code** — This is normal. Hover over it to see token breakdown by category (codebase, requirement, tasks, etc.).\n\n---\n\n## Verification Checklist\n\nBefore submitting work or marking tasks complete:\n\n- [ ] `.braingrid/project.json` exists in repo root\n- [ ] Current branch name includes requirement ID (e.g., `feature/REQ-123-description`)\n- [ ] Requirement has been refined (status is PLANNED or IN_PROGRESS, not IDEA)\n- [ ] All tasks have clear acceptance criteria visible in `braingrid task show`\n- [ ] Task status is accurate (`braingrid task show` reflects actual progress)\n- [ ] Code changes match the task description and acceptance criteria\n- [ ] PR has been created and pushed to GitHub\n- [ ] `braingrid requirement review` passes (or you've reviewed manually against acceptance criteria)\n- [ ] All tasks for the requirement are marked COMPLETED before closing the requirement\n\n---\n\n## Resources\n\n**Comprehensive page-by-page navigation:**\nhttps://docs.braingrid.ai/llms.txt\n\n**Critical documentation pages:**\n1. [Quickstart](https://docs.braingrid.ai/quickstart) — Step-by-step walkthrough of the full workflow\n2. [CLI Command Reference](https://docs.braingrid.ai/cli/commands) — Complete command reference with all options\n3. [What is BrainGrid](https://docs.braingrid.ai/what-is-braingrid) — Conceptual overview of how BrainGrid works\n\n**Integration guides:**\n- [Claude Code setup](https://docs.braingrid.ai/claude-code) — Slash commands and integration\n- [Cursor setup](https://docs.braingrid.ai/cursor) — Rules, commands, and MCP installation\n- [MCP Server usage](https://docs.braingrid.ai/mcp-server/usage) — Tool-based integration for web IDEs\n\n---\n\n> For additional documentation and navigation, see: https://docs.braingrid.ai/llms.txt"}]},"jsonrpc":"2.0","id":6},"http_status":200,"headers":{"content-type":"text/event-stream","strict-transport-security":"max-age=63072000"},"resource_uri":"mintlify://skills/braingrid"}},"probe_noise_resilience":{"status":"ok","latency_ms":295.8,"details":{"url":"https://docs.braingrid.ai/robots.txt","http_status":200,"headers":{"content-type":"text/plain","strict-transport-security":"max-age=63072000"}}},"determinism_probe":{"status":"ok","latency_ms":140.43,"details":{"attempts":2,"successful":2,"matches":2,"stable_ratio":1.0,"baseline_signature":"d7817d39ae1443789da3cf45c4d7a115aa31bee247f85106f80524a47e04e8c7","errors":[]}},"session_resume_probe":{"status":"warning","latency_ms":null,"details":{"reason":"no_session_id","transport":"streamable-http","resume_expected":true,"protocol_version":"2025-03-26"}},"step_up_auth_probe":{"status":"missing","latency_ms":null,"details":{"oauth_present":false,"auth_required_checks":[],"supported_scopes":[],"scope_specificity_ratio":0.0,"broad_scopes":[],"challenge_headers":[],"step_up_signals":[],"minimal_scope_documented":false}},"transport_compliance_probe":{"status":"warning","latency_ms":151.07,"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","strict-transport-security":"max-age=63072000"},"bad_protocol_error":null,"delete_status_code":null,"delete_error":null,"expired_session_status_code":null,"expired_session_error":null,"issues":["missing_session_id","missing_protocol_header"]}},"utility_coverage_probe":{"status":"missing","latency_ms":88.93,"details":{"completions":{"advertised":false,"sample_target":{"type":"resource","uri":"mintlify://skills/braingrid"},"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"missing","http_status":200},"initialize_capability_keys":["resources","tools"]}},"advanced_capabilities_probe":{"status":"warning","latency_ms":null,"details":{"capabilities":{"prompts":false,"resources":true,"completions":false,"roots":true,"sampling":false,"elicitation":false,"structured_outputs":false,"resource_links":true},"enabled_count":3,"enabled":["resource_links","resources","roots"],"initialize_capability_keys":["resources","tools"]}},"tool_snapshot_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot","current_tool_count":3}},"connector_replay_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_historical_snapshot"}},"request_association_probe":{"status":"warning","latency_ms":null,"details":{"reason":"no_session_id_for_idle_observation","advertised_capabilities":["roots"],"protocol_version":"2025-03-26"}},"interactive_flow_probe":{"status":"missing","latency_ms":null,"details":{"risk_hits":[],"safe_hits":[],"oauth_supported":false,"prompt_available":false}},"action_safety_probe":{"status":"error","latency_ms":null,"details":{"summary":{"tool_count":3,"high_risk_tools":2,"destructive_tools":1,"exec_tools":2,"egress_tools":0,"secret_tools":1,"bulk_access_tools":0,"risk_distribution":{"low":0,"medium":1,"high":1,"critical":1},"capability_distribution":{"read":3,"write":3,"exec":2,"filesystem":3,"delete":1,"network":2,"admin":1,"secrets":1}},"auth_present":false,"safeguard_count":1,"confirmation_signals":[]}},"official_registry_probe":{"status":"warning","latency_ms":null,"details":{"registry_source":"awesome_mcp_servers","direct_match":false,"official_peer_count":10,"official_identifiers":["ai.ai-akari/one-minute-akari","ai.artidrop/artidrop","ai.adramp/google-ads","ai.adweave/meta-ads-mcp","ai.aetherwealth/mcp","ai.afmr/discovery","ai.agentberg/agentberg","ai.agentdm/agentdm","ai.assetlog/assetlog","ai.agentic-news/mcp"]}},"provenance_divergence_probe":{"status":"ok","latency_ms":null,"details":{"direct_official_match":false,"registry_title":null,"server_card_title":"BrainGrid Docs MCP","registry_version":null,"server_card_version":"1.0.0","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":3,"high_risk_tools":2,"blockers":["action_safety"],"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":true,"tool_surface":true,"auth_flow":true}}}},"score_components":{"auth_operability_score":2.0,"error_contract_score":2.83,"rate_limit_semantics_score":2.0,"schema_completeness_score":3.0,"backward_compatibility_score":2.0,"slo_health_score":4.0,"security_hygiene_score":3.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":4.0,"discovery_metadata_score":4.0,"registry_consistency_score":2.0,"installability_score":4.0,"session_semantics_score":4.0,"tool_surface_design_score":3.0,"result_shape_stability_score":2.0,"oauth_interop_score":3.0,"recovery_semantics_score":0.0,"maintenance_signal_score":3.95,"adoption_signal_score":2.0,"freshness_confidence_score":3.0,"transport_fidelity_score":4.0,"spec_recency_score":2.0,"session_resume_score":3.0,"step_up_auth_score":3.0,"transport_compliance_score":2.0,"utility_coverage_score":2.0,"advanced_capability_coverage_score":3.0,"connector_publishability_score":3.0,"tool_snapshot_churn_score":3.0,"connector_replay_score":3.0,"request_association_score":2.0,"interactive_flow_safety_score":3.0,"action_safety_score":2.0,"official_registry_presence_score":3.0,"provenance_divergence_score":4.0,"safety_transparency_score":3.0,"tool_capability_clarity_score":4.0,"destructive_operation_safety_score":2.0,"egress_ssrf_resilience_score":3.0,"execution_sandbox_safety_score":2.0,"data_exfiltration_resilience_score":3.0,"least_privilege_scope_score":2.0,"secret_handling_hygiene_score":3.0,"dependency_supply_chain_signal_score":0.5,"input_sanitization_safety_score":3.0,"tool_namespace_clarity_score":4.0},"validation_schema_version":"16d1d270090d6c8f","started_at":"2026-07-31T05:29:35.222694+00:00","completed_at":"2026-07-31T05:29:37.486638+00:00"},"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_af9806a26fbdf8bf","generated_at":"2026-07-31T09:53:07.725335+00:00","source":"current_snapshot","server":"awesome/braingrid-mcp","last_validated_at":"2026-07-31T05:29:37.486638+00:00","validation_age_hours":4.39,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T05:29:37.486638+00:00","age_hours":4.39,"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.91,"raw_score":69.91,"confidence_score":76.2,"confidence_weighted_score":53.3,"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.91,"display_score":69.91,"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":4.39,"live_check_count":26},"active_alerts":[]},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_af9806a26fbdf8bf","generated_at":"2026-07-31T09:53:07.725335+00:00","source":"current_snapshot","server":"awesome/braingrid-mcp","last_validated_at":"2026-07-31T05:29:37.486638+00:00","validation_age_hours":4.39,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-07-31T05:29:37.486638+00:00","age_hours":4.39,"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.91,"raw_score":69.91,"confidence_score":76.2,"confidence_weighted_score":53.3,"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.91,"display_score":69.91,"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":4.39,"live_check_count":26},"active_alerts":[]},"snapshot_invariant":{"schema_version":"verify.snapshot_invariant.v1","server":"awesome/braingrid-mcp","ok":true,"surface_snapshot_ids":{"page":"trustsnap_af9806a26fbdf8bf","badge":null,"report":"trustsnap_af9806a26fbdf8bf","policy":null},"checked_at":"2026-07-31T09:53:08.108062+00:00"},"history":{"points":[{"timestamp":"2026-07-31T05:29:37.486638+00:00","score":69.91,"status":"healthy","latency_ms":2262.52,"tool_count":3,"prompt_count":0,"resource_count":1}],"status_counts":{"healthy":1},"score_delta_7d":null,"score_delta_30d":null,"avg_latency_ms":2262.52,"healthy_ratio_recent":1.0,"freshness_hours":4.39,"latest_status":"healthy"},"production_readiness":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use.","badge":"score-medium","critical_alerts":0},"agent_commerce_readiness":{"status":"beta","commerce_signal":"moderate","payment_execution_detected":"no","billing_or_usage_detected":"yes","quote_or_pricing_detected":"no","numeric_price_context":"yes","commercial_quote_context":"no","checkout_or_charge_detected":"no","checkout_term_observed":"no","payment_capable":"inferred","payment_rails":[],"purchase_stage_supported":["usage_metering"],"human_confirmation_required":"unknown","spending_policy_supported":"yes","receipt_supported":"unknown","refund_policy_present":"unknown","operator_identity":"declared","auth_required":"no","auth_scheme":"none","tool_risk_level":"administrative","tool_risk_score":70,"pricing_transparency":"partial","schema_change_detected":"unknown","delegation_level":"usage_metering_context","evidence_level":"inferred","confidence":"medium","highest_risk_tools":[{"name":"search_brain_grid","risk_level":"write_capable"},{"name":"query_docs_filesystem_brain_grid","risk_level":"administrative"},{"name":"submit_feedback","risk_level":"write_capable"}],"skipped_unsafe_tools":["search_brain_grid","query_docs_filesystem_brain_grid"],"last_checked_at":"2026-07-31T09:53:07.689422+00:00","evidence":[{"field":"commerce_signal","value":"moderate","evidence_level":"observed","source":"tool_schema","matched_terms":["limit","usage","rate"],"sample":"query_docs_filesystem_brain_grid","confidence":"medium","last_checked_at":"2026-07-31T09:53:07.689422+00:00"}],"disclaimer":"Beta assessment. Verify detects evidence and risk signals but does not certify that this server is safe for autonomous purchases.","scores":{"auth_posture_score":20,"tool_risk_score":70,"payment_readiness_score":35,"agent_delegation_safety_score":10,"overall_agent_commerce_score":22},"warnings":["Verify observed commerce-adjacent billing, usage, or pricing context, but did not observe a tool that can execute payment."],"recommended_fixes":["Clarify whether observed billing, usage, or pricing context can execute payment or is informational only."]},"evidence_confidence":{"score":76.25,"label":"high","reason":"Based on 1 recent validations, 26 captured checks, and validation age of 4.4 hours.","live_check_count":26,"validation_age_hours":4.39},"recommended_for":[{"label":"Claude Desktop","reason":"Claude Desktop is marked compatible with score 100."},{"label":"Smithery","reason":"Smithery is marked compatible with score 100."},{"label":"Generic Streamable HTTP","reason":"Generic Streamable HTTP is marked compatible with score 100."}],"active_alerts":[],"remediations":[{"code":"add_confirmation_semantics","severity":"high","title":"Add confirmation and dry-run semantics for risky actions","why":"High-risk write, delete, exec, or egress tools should communicate safeguards clearly.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"fix_transport_compliance","severity":"high","title":"Align session and protocol behavior with Streamable HTTP expectations","why":"Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics.","action":"Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.","playbook":["Return `Mcp-Session-Id` and `Mcp-Protocol-Version` headers consistently on streamable HTTP responses.","Honor `DELETE` session teardown and return `404` when a deleted session is reused.","Reject invalid protocol-version headers with `400 Bad Request`."],"maintainer_context":null},{"code":"enforce_request_association","severity":"high","title":"Associate roots, sampling, and elicitation with active client requests","why":"Modern MCP guidance expects roots, sampling, and elicitation traffic to be tied to an active client request instead of arriving unsolicited on idle sessions.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_oauth_protected_resource","severity":"high","title":"Expose /.well-known/oauth-protected-resource","why":"Without a protected-resource document, OAuth clients cannot discover auth requirements reliably.","action":"Serve /.well-known/oauth-protected-resource and point it at your authorization server metadata.","playbook":["Serve `/.well-known/oauth-protected-resource` from the same host as the MCP endpoint.","Point it at the authorization server metadata URL.","Confirm clients receive consistent auth hints before tool execution."],"maintainer_context":null},{"code":"protect_connector_refreshes","severity":"high","title":"Keep connector refreshes backward compatible","why":"Managed connector clients freeze tool snapshots, so removed tools, new required args, and breaking output changes can break published integrations after refresh.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_oauth_authorization_server","severity":"high","title":"Publish OAuth authorization-server metadata","why":"Clients need authorization-server metadata to discover issuer, endpoints, and DCR support.","action":"Publish /.well-known/oauth-authorization-server from your issuer and include registration_endpoint when supported.","playbook":["Publish `/.well-known/oauth-authorization-server` from the issuer.","Add `registration_endpoint` if DCR is supported.","Verify issuer, authorization, token, and jwks metadata are all reachable."],"maintainer_context":null},{"code":"harden_interactive_flows","severity":"high","title":"Stop asking users to paste secrets directly","why":"Public MCP servers should prefer OAuth or browser-based auth guidance over in-band secret collection.","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":"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":"repair_session_resume","severity":"medium","title":"Support resumable HTTP sessions cleanly","why":"Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"expand_utility_coverage","severity":"low","title":"Expose modern utility surfaces like completions, pagination, or tasks","why":"Utility coverage improves interoperability with larger clients and long-lived agent workflows.","action":"Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.","playbook":["Advertise `completions`, pagination cursors, and `tasks` only when they are actually supported.","Return `nextCursor` on large list operations when pagination is available.","Document task support and whether it requires step-up auth."],"maintainer_context":null},{"code":"expand_advanced_capabilities","severity":"low","title":"Publish newer MCP capability signals","why":"Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null},{"code":"publish_to_official_registry","severity":"low","title":"Publish or reconcile the server in the official MCP registry","why":"Official registry presence improves discovery confidence and cross-source consistency.","action":"Inspect the latest validation evidence and resolve the client-visible regression.","playbook":["Inspect the latest validation evidence.","Resolve the highest-severity client-facing gap first.","Revalidate and confirm the score and verdict improve."],"maintainer_context":null}],"publisher_claim":{"verified":false,"status":"unclaimed","claim_url":"https://verify.sentinelsignal.io/claim?server=awesome%2Fbraingrid-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":false,"policy":false,"ledger":true,"badge_metadata":false,"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=awesome%2Fbraingrid-mcp&source=report_json","trust_summary_url":"https://verify.sentinelsignal.io/v1/servers/awesome/braingrid-mcp/trust-summary"},"related_machine_surfaces":{"compare_index":"/compare.json","compare_api":"/v1/compare?server=awesome%2Fbraingrid-mcp","trust_summary":"/v1/servers/awesome/braingrid-mcp/trust-summary","ledger":"/v1/servers/awesome/braingrid-mcp/ledger","policy":"/v1/servers/awesome/braingrid-mcp/policy","report":"/v1/servers/awesome/braingrid-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."}}