{"$schema":"https://schemas.sansavision.com/mcp/v1.json","schemaVersion":"sansa.mcp/v1","server":{"name":"com.sansavision.yousaid","version":"1.6.1","protocolVersion":"2025-06-18","endpoint":"https://yousaid.dev/mcp"},"authentication":["ysmcp_product_bearer","yswld_workload_bearer"],"workloadCredentials":{"tokenPrefix":"yswld_","lifecycleOwner":"workspace_owner","issuanceEndpoint":"/api/workspace/workloads","revocationEndpointTemplate":"/api/workspace/workloads/{credentialId}","actionKeyHeader":"Idempotency-Key","consumerHumanSessionFallback":false,"sourceReadScope":"yousaid:sources:read","sourceWriteScope":"yousaid:sources:write","mcpReadScope":"yousaid:mcp:read"},"resources":["yousaid://capabilities","yousaid://product/context","yousaid://sources/schema","yousaid://proof/policies","yousaid://proof/brand-kit","yousaid://proof/taxonomy","yousaid://proof/approved","yousaid://proof/health","yousaid://proof/placements","yousaid://proof/analytics-definitions"],"prompts":["yousaid.grounded_customer_reply","yousaid.evidence_backed_update","yousaid.source_backed_attribution"],"tools":[{"name":"yousaid.get_product_context","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.search_customer_evidence","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.get_customer_thread","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.search_source_records","kind":"read","scope":"yousaid:mcp:read","approval":false,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":300,"default":""},"evidenceClassification":{"type":"string","enum":["genuine","synthetic_staging"],"description":"Required explicitly. Production search accepts genuine only; staging search filters the requested class exactly, with no synthetic fallback for genuine queries. Intake permissions are separate."},"verificationStatus":{"type":"string","enum":["unverified","verified","disputed","withdrawn"]},"language":{"type":"string","maxLength":40},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20}},"required":["evidenceClassification"]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"count":{"type":"integer","minimum":0},"records":{"type":"array","items":{"$ref":"#/schemas/sourceRecord"}}},"required":["count","records"]}},{"name":"yousaid.get_source_record","kind":"read","scope":"yousaid:mcp:read","approval":false,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"recordId":{"type":"string","pattern":"^src_[0-9a-f-]{36}$"}},"required":["recordId"]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"record":{"$ref":"#/schemas/sourceRecord"}},"required":["record"]}},{"name":"yousaid.create_source_record","kind":"write","scope":"yousaid:mcp:write","approval":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":200},"speaker":{"type":"string","minLength":1,"maxLength":240},"sourceTitle":{"type":"string","minLength":1,"maxLength":500},"sourceUrl":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"sourceDate":{"type":["string","null"],"format":"date-time"},"dateStatus":{"type":"string","enum":["known","unknown"],"default":"known"},"retrievedAt":{"type":["string","null"],"format":"date-time","default":null},"sourceRevision":{"type":["string","null"],"default":null},"exactMomentUrl":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"exactMomentSeconds":{"anyOf":[{"type":"integer","minimum":0,"maximum":86400000},{"type":"null"}]},"language":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"originalQuote":{"type":"string","minLength":1,"maxLength":20000,"description":"Immutable verbatim source wording; generated or reconstructed text is forbidden."},"rightsBasis":{"type":"string","enum":["owned","licensed","public_record","documented_permission"]},"rightsAssertion":{"type":"object","additionalProperties":false,"properties":{"kind":{"type":"string","enum":["approval_receipt","actor_assertion"]},"reference":{"type":"string","minLength":8,"maxLength":500},"assertedBy":{"type":"string","minLength":2,"maxLength":240},"assertedAt":{"type":"string","format":"date-time"}},"required":["kind","reference","assertedBy","assertedAt"]},"evidenceClassification":{"type":"string","enum":["genuine","synthetic_staging"],"description":"Required explicitly. Production accepts genuine only; staging accepts synthetic_staging only; development writes are unavailable."},"approvalId":{"type":"string","pattern":"^mcpa_"}},"required":["idempotencyKey","speaker","sourceTitle","sourceUrl","sourceDate","exactMomentUrl","language","originalQuote","rightsBasis","rightsAssertion","evidenceClassification"]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string"},"approvalId":{"type":"string"},"approvalUrl":{"type":"string","format":"uri"},"record":{"$ref":"#/schemas/sourceRecord"},"replayed":{"type":"boolean"}},"required":["status"]}},{"name":"yousaid.draft_customer_reply","kind":"draft","scope":"yousaid:mcp:draft","approval":false},{"name":"yousaid.draft_product_update","kind":"draft","scope":"yousaid:mcp:draft","approval":false},{"name":"yousaid.create_idea","kind":"write","scope":"yousaid:mcp:write","approval":true},{"name":"yousaid.create_product_update","kind":"write","scope":"yousaid:mcp:write","approval":true},{"name":"yousaid.list_rooms","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.get_room","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.search_rooms","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.post_room_message","kind":"write","scope":"yousaid:mcp:write","approval":true},{"name":"yousaid.get_room_safety_status","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.create_room_poll","kind":"write","scope":"yousaid:mcp:write","approval":true},{"name":"yousaid.create_room","kind":"write","scope":"yousaid:mcp:write","approval":true,"title":"Create a Room","description":"Create an outcome-shaped Room (with its internal sidecar and Canvas) in this product. A signed-in teammate approves the exact template, title and visibility first; that teammate becomes the Room owner.","actionLevel":"write","humanApproval":"envelope","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"template":{"type":"string","enum":["direct","account","incident","feature","topic","beta","research","office_hours"]},"title":{"type":"string","minLength":3,"maxLength":140},"purpose":{"type":"string","maxLength":600},"outcome":{"type":"string","maxLength":600},"visibility":{"type":"string","enum":["private_direct","private_account","private_cohort","product_member","public_read","public"]},"approvalId":{"type":"string","pattern":"^mcpa_.*"}},"required":["template","title"],"additionalProperties":false}},{"name":"yousaid.get_room_canvas","kind":"read","scope":"yousaid:mcp:read","approval":false,"title":"Read a Room Canvas","description":"Read the Room Canvas (purpose, outcome, current state, facts, decisions, promises, release, verification). Only fields marked customer-visible are returned; internal fields are never exposed to MCP.","actionLevel":"read","humanApproval":"none","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"roomId":{"type":"string","minLength":5,"maxLength":100}},"required":["roomId"]}},{"name":"yousaid.update_room_canvas","kind":"write","scope":"yousaid:mcp:write","approval":true,"title":"Update a Room Canvas","description":"Propose a Canvas update (a new version; nothing is overwritten). A signed-in teammate approves the exact fields first. Field visibility cannot be changed from MCP. Pass expectedVersion to avoid overwriting a newer edit.","actionLevel":"write","humanApproval":"envelope","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"roomId":{"type":"string","minLength":5,"maxLength":100},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"fields":{"type":"object","properties":{"purpose":{"type":"string","maxLength":1000},"outcome":{"type":"string","maxLength":1000},"currentState":{"type":"string","maxLength":1000},"confirmedFacts":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":1000}},"hypotheses":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":1000}},"openQuestions":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":1000}},"affected":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}},"actions":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":1000}},"release":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"verification":{"type":"object","properties":{"attempted":{"type":"boolean"},"result":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"required":["attempted","result"]},"canonicalAnswer":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}]}},"additionalProperties":false},"approvalId":{"type":"string","pattern":"^mcpa_.*"}},"required":["roomId","fields"]}},{"name":"yousaid.compile_room","kind":"draft","scope":"yousaid:mcp:draft","approval":false,"title":"Compile a Room","description":"Compile the Room's customer-visible evidence, facts and approved decisions into a cited PRD draft stored in YouSaid. Internal notes and sidecar content are excluded. Nothing is sent or published.","actionLevel":"draft","humanApproval":"none","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"roomId":{"type":"string","minLength":5,"maxLength":100}},"required":["roomId"]}},{"name":"yousaid.invite_room_cohort","kind":"write","scope":"yousaid:mcp:write","approval":true,"title":"Propose a cohort invitation","description":"Propose inviting the Room's ready cohort. This never invites anyone by itself: it stages a Tier 3 approval showing the exact audience, which a workspace owner or admin must approve in YouSaid.","actionLevel":"propose","humanApproval":"tiered_room_approval","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"roomId":{"type":"string","minLength":5,"maxLength":100},"cohortId":{"type":"string","minLength":4,"maxLength":100},"reason":{"type":"string","minLength":3,"maxLength":500}},"required":["roomId","reason"]}},{"name":"yousaid.search_knowledge","kind":"read","scope":"yousaid:mcp:read","approval":false,"title":"Search Room knowledge","description":"Search published canonical answers and customer-visible Canvas facts in this product (optionally raw messages). Canonical answers rank first; semantic retrieval is used when available, with full-text fallback.","actionLevel":"read","humanApproval":"none","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":300},"includeMessages":{"default":false,"type":"boolean"},"limit":{"default":10,"type":"integer","minimum":1,"maximum":50}},"required":["query"]}},{"name":"yousaid.generate_prd","kind":"draft","scope":"yousaid:mcp:draft","approval":false,"title":"Generate a PRD from a Room","description":"Generate a cited PRD draft from a Room: a deterministic evidence-cited document, plus an AI executive summary whose citations are validated against the evidence. If AI is unavailable the deterministic PRD is still returned and the summary is marked unavailable. Metered as deep analysis.","actionLevel":"draft","humanApproval":"none","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"roomId":{"type":"string","minLength":5,"maxLength":100},"aiSummary":{"default":true,"type":"boolean"}},"required":["roomId"]}},{"name":"yousaid.list_room_approvals","kind":"read","scope":"yousaid:mcp:read","approval":false,"title":"List Room approvals","description":"List Room approvals in this product with their exact staged previews (audience, tool, arguments), tier and approval progress. Internal sidecar approvals are excluded.","actionLevel":"read","humanApproval":"none","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"roomId":{"type":"string","minLength":5,"maxLength":100},"status":{"default":"pending","type":"string","enum":["pending","approved","executed","rejected","cancelled","expired"]},"limit":{"default":20,"type":"integer","minimum":1,"maximum":50}}}},{"name":"yousaid.decide_room_approval","kind":"write","scope":"yousaid:mcp:write","approval":true,"title":"Relay a human approval decision","description":"Relay an approve or reject decision on a Room approval. The MCP client cannot decide: YouSaid first asks a signed-in teammate to confirm this exact decision, and it is recorded as that teammate. Tier rules still apply (owner or admin, two distinct approvers for Tier 4, no self-approval).","actionLevel":"decide","humanApproval":"envelope","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"roomApprovalId":{"type":"string","minLength":5,"maxLength":100},"decision":{"type":"string","enum":["approve","reject"]},"note":{"default":"","type":"string","maxLength":1000},"approvalId":{"type":"string","pattern":"^mcpa_.*"}},"required":["roomApprovalId","decision"]}},{"name":"yousaid.proof_search","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.proof_get","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.proof_consent_status","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.proof_claims_check","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.proof_opportunities_list","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.proof_brand_mentions_list","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.proof_placement_recommend","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.proof_placement_preview","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.proof_export_create","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.proof_item_summarize","kind":"draft","scope":"yousaid:mcp:draft","approval":false},{"name":"yousaid.proof_request_draft","kind":"draft","scope":"yousaid:mcp:draft","approval":false},{"name":"yousaid.proof_case_study_compile","kind":"draft","scope":"yousaid:mcp:draft","approval":false},{"name":"yousaid.proof_asset_generate_draft","kind":"draft","scope":"yousaid:mcp:draft","approval":false},{"name":"yousaid.proof_request_approval","kind":"draft","scope":"yousaid:mcp:draft","approval":false},{"name":"yousaid.proof_revocation_request","kind":"draft","scope":"yousaid:mcp:draft","approval":false},{"name":"yousaid.proof_approve","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.proof_request_schedule","kind":"write","scope":"yousaid:mcp:write","approval":true},{"name":"yousaid.proof_placement_add","kind":"write","scope":"yousaid:mcp:write","approval":true},{"name":"yousaid.proof_placement_publish","kind":"write","scope":"yousaid:mcp:write","approval":true},{"name":"yousaid.proof_health_list","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.proof_gaps_analyze","kind":"read","scope":"yousaid:mcp:read","approval":false},{"name":"yousaid.proof_room_create","kind":"write","scope":"yousaid:mcp:write","approval":true}],"schemas":{"sourceRecord":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^src_"},"projectId":{"type":"string"},"environment":{"type":"string","enum":["development","staging","production"]},"evidenceClassification":{"type":"string","enum":["genuine","synthetic_staging"]},"speaker":{"type":"string"},"sourceTitle":{"type":"string"},"sourceUrl":{"type":"string","format":"uri","pattern":"^https://"},"sourceDate":{"type":["string","null"],"format":"date-time","description":"Publication/source date, never retrieval time. Null when dateStatus is unknown."},"dateStatus":{"type":"string","enum":["known","unknown"]},"retrievedAt":{"type":["string","null"],"format":"date-time"},"sourceRevision":{"type":["string","null"]},"exactMomentUrl":{"type":"string","format":"uri","pattern":"^https://"},"exactMomentSeconds":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"language":{"type":"string","description":"Normalized BCP 47 language tag."},"originalQuote":{"type":"string","description":"Immutable original wording; generated text is forbidden."},"rightsBasis":{"type":"string","enum":["owned","licensed","public_record","documented_permission"]},"rightsAssertion":{"type":"object","additionalProperties":false,"properties":{"kind":{"type":"string","enum":["approval_receipt","actor_assertion"]},"reference":{"type":"string","minLength":8,"maxLength":500},"assertedBy":{"type":"string","minLength":2,"maxLength":240},"assertedAt":{"type":"string","format":"date-time"}},"required":["kind","reference","assertedBy","assertedAt"]},"verificationStatus":{"type":"string","enum":["unverified","verified","disputed","withdrawn"]},"verificationNotes":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"verifiedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","projectId","environment","evidenceClassification","speaker","sourceTitle","sourceUrl","sourceDate","dateStatus","retrievedAt","sourceRevision","exactMomentUrl","exactMomentSeconds","language","originalQuote","rightsBasis","rightsAssertion","verificationStatus","verificationNotes","createdAt","verifiedAt"]},"sourceRecordSearch":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":300,"default":""},"evidenceClassification":{"type":"string","enum":["genuine","synthetic_staging"],"description":"Required explicitly. Production search accepts genuine only; staging search filters the requested class exactly, with no synthetic fallback for genuine queries. Intake permissions are separate."},"verificationStatus":{"type":"string","enum":["unverified","verified","disputed","withdrawn"]},"language":{"type":"string","maxLength":40},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20}},"required":["evidenceClassification"]}},"safety":{"structuredErrors":true,"tenantAndProductScoped":true,"humanApprovalForMutations":true,"oneTimeExactPayloadApprovals":true,"idempotentMutations":true,"rateLimitPerCredentialPerMinute":120,"maximumCrossServiceHops":5,"generatedProvenanceForbidden":true}}