{"schema_version":"v1","name":"BrandMochi","description":"Brand promotion, defense, lead discovery, outreach, and operating visibility.","url":"http://brandmochi.com/mcp","documentation_url":"http://brandmochi.com/docs/mcp","transport":{"type":"streamable_http","endpoint":"http://brandmochi.com/mcp"},"oauth":{"authorization_server":"http://brandmochi.com/.well-known/oauth-authorization-server","protected_resource":"http://brandmochi.com/.well-known/oauth-protected-resource/mcp","scopes":["mcp:read","mcp:write"],"grant_types":["authorization_code","refresh_token"]},"serverInfo":{"name":"BrandMochi","version":"1.0.0"},"authentication":{"required":true,"schemes":["oauth2"]},"tools":[{"name":"listMyWorkspaces","title":"List my workspaces","description":"List the teams and brands the signed-in customer can access, including role and permissions.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"requiresAuth":true},{"name":"listBrandActions","title":"List brand actions","description":"List the open work queue for a customer brand.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["social","competitor","trademark","domain","lead","configuration"]}},"required":["teamId","brandId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"requiresAuth":true},{"name":"createManualBrandAction","title":"Create a brand action","description":"Add a social or domain action to an authorized customer brand.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["social","domain"]},"sourceUrl":{"type":"string","minLength":1,"maxLength":2000},"note":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"completed":{"type":"boolean","default":false}},"required":["teamId","brandId","kind","sourceUrl"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"requiresAuth":true},{"name":"reserveBrandAction","title":"Reserve a brand action","description":"Reserve an open customer action for the signed-in user.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"actionId":{"type":"string","minLength":1,"maxLength":200}},"required":["teamId","brandId","actionId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"requiresAuth":true},{"name":"transitionBrandAction","title":"Update a brand action","description":"Complete, release, or archive an authorized customer action.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"actionId":{"type":"string","minLength":1,"maxLength":200},"transition":{"type":"string","enum":["complete","release","archive"]},"reservationVersion":{"type":"integer","minimum":0}},"required":["teamId","brandId","actionId","transition"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"requiresAuth":true},{"name":"getBrandAction","title":"Read a brand action","description":"Read an action, source evidence, suggested copy, workflow, feedback history, notes, and events, including completed or archived actions.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"actionId":{"type":"string","minLength":1,"maxLength":200}},"required":["teamId","brandId","actionId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"requiresAuth":true},{"name":"recordBrandActionFeedback","title":"Record action feedback","description":"Record a match label and optional note without completing or archiving the action. Notes attached to feedback are limited to 300 characters.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"actionId":{"type":"string","minLength":1,"maxLength":200},"label":{"type":"string","enum":["useful","irrelevant","duplicate","already_handled"]},"note":{"type":"string","maxLength":300}},"required":["teamId","brandId","actionId","label"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"requiresAuth":true},{"name":"addBrandActionNote","title":"Add an action note","description":"Append an operational note without changing feedback labels, reservation, or action status. Allows 1 to 2000 characters and supports closed actions.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"actionId":{"type":"string","minLength":1,"maxLength":200},"note":{"type":"string","minLength":1,"maxLength":2000}},"required":["teamId","brandId","actionId","note"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"requiresAuth":true},{"name":"resolveBrandOfficialSocialReminder","title":"Record an official-post suggestion outcome","description":"Record used_suggestion, did_not_use, or not_useful for an official social reminder using the website's outcome workflow. Requires brand management permission; does not publish to a social network.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"actionId":{"type":"string","minLength":1,"maxLength":200},"outcome":{"type":"string","enum":["used_suggestion","did_not_use","not_useful"]}},"required":["teamId","brandId","actionId","outcome"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"requiresAuth":true},{"name":"recordBrandOfficialSocialPost","title":"Record an official social post","description":"Record that a post was already published on a connected official account and advance its check cadence. Requires brand management permission; does not publish to a social network.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"platform":{"type":"string","enum":["x","facebook","linkedin"]}},"required":["teamId","brandId","platform"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"requiresAuth":true},{"name":"listBrandLeadTags","title":"List brand lead tags","description":"List customer-visible lead sources and segments for an authorized brand.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200}},"required":["teamId","brandId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"requiresAuth":true},{"name":"assignBrandLeadsToTag","title":"Assign brand leads to a tag","description":"Add authorized brand leads to a customer-visible source or campaign segment with an audit reason.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"tagId":{"type":"string","minLength":1,"maxLength":200},"leadIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"minItems":1,"maxItems":100},"reason":{"type":"string","minLength":3,"maxLength":500}},"required":["teamId","brandId","tagId","leadIds","reason"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"requiresAuth":true},{"name":"enrichBrandLeadsWithApollo","title":"Enrich brand leads with Apollo","description":"Queue work-email, role, company, and LinkedIn enrichment for authorized brand leads.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"leadIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"minItems":1,"maxItems":100},"reason":{"type":"string","minLength":3,"maxLength":500}},"required":["teamId","brandId","leadIds","reason"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"requiresAuth":true},{"name":"listBrandLeads","title":"List brand leads","description":"List prospective customers and lead summary data for an authorized brand.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"status":{"type":"string","enum":["all","new","contacted","dismissed"],"default":"all"},"query":{"type":"string","maxLength":120},"channel":{"type":"string","enum":["all","email","phone","linkedin","x","facebook","instagram","reddit"],"default":"all"},"contactability":{"type":"string","enum":["all","email","phone","social","none"],"default":"all"},"activity":{"type":"string","enum":["all","never_contacted","contacted_once","contacted_multiple"],"default":"all"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50},"offset":{"type":"integer","minimum":0,"maximum":10000,"default":0}},"required":["teamId","brandId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"requiresAuth":true},{"name":"getBrandLead","title":"Get a brand lead","description":"Read one prospective customer with contact methods, evidence, and activity.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"leadId":{"type":"string","minLength":1,"maxLength":200}},"required":["teamId","brandId","leadId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"requiresAuth":true},{"name":"updateBrandLeadStatus","title":"Update lead status","description":"Mark a customer lead new, contacted, or dismissed using the same workflow as the BrandMochi app.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"leadId":{"type":"string","minLength":1,"maxLength":200},"status":{"type":"string","enum":["new","contacted","dismissed"]},"channel":{"type":"string","enum":["email","phone","linkedin","x","facebook","instagram","reddit"]},"reason":{"type":"string","minLength":3,"maxLength":500}},"required":["teamId","brandId","leadId","status"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"requiresAuth":true},{"name":"recordBrandLeadContact","title":"Record lead contact","description":"Log a customer contact event and mark the lead contacted.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"leadId":{"type":"string","minLength":1,"maxLength":200},"channel":{"type":"string","enum":["email","phone","linkedin","x","facebook","instagram","reddit"]},"detail":{"type":"string","maxLength":1000,"default":""}},"required":["teamId","brandId","leadId","channel"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"requiresAuth":true},{"name":"configureExternalMail","title":"Connect outreach mailbox","description":"Verify and save encrypted SMTP and IMAP credentials for a customer-owned outreach mailbox.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"smtpHost":{"type":"string","minLength":1,"maxLength":253},"smtpPort":{"type":"integer"},"imapHost":{"type":"string","minLength":1,"maxLength":253},"username":{"type":"string","format":"email"},"password":{"type":"string","maxLength":1024}},"required":["teamId","brandId","smtpHost","smtpPort","imapHost","username","password"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"requiresAuth":true},{"name":"listOutreachCampaigns","title":"List outreach campaigns","description":"List outreach campaigns and aggregate delivery, failure, and open counts for an authorized brand.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"status":{"type":"string","enum":["draft","live","paused"]},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"required":["teamId","brandId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"requiresAuth":true},{"name":"getOutreachCampaign","title":"Get outreach campaign","description":"Read one campaign, its sequence, targeting tags, personalization state, and aggregate results.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"campaignId":{"type":"string","minLength":1,"maxLength":200}},"required":["teamId","brandId","campaignId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"requiresAuth":true},{"name":"listOutreachDeliveries","title":"List outreach deliveries","description":"List recipient-level delivery, open, lead, and personalization evidence for a campaign.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"campaignId":{"type":"string","minLength":1,"maxLength":200},"status":{"type":"string","enum":["queued","sent","delivered","bounced","complained","unsubscribed","failed"]},"opened":{"type":"string","enum":["true","false"]},"limit":{"type":"integer","minimum":1,"maximum":250,"default":100}},"required":["teamId","brandId","campaignId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"requiresAuth":true},{"name":"changeOutreachCampaignState","title":"Activate or pause outreach","description":"Activate or pause a ready outreach campaign for an authorized customer brand.","inputSchema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"maxLength":200},"brandId":{"type":"string","minLength":1,"maxLength":200},"campaignId":{"type":"string","minLength":1,"maxLength":200},"action":{"type":"string","enum":["activate","pause"]}},"required":["teamId","brandId","campaignId","action"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"requiresAuth":true}],"metadata":{"displayName":"BrandMochi","endpoint":"http://brandmochi.com/mcp","documentation":"http://brandmochi.com/docs/mcp","homepage":"http://brandmochi.com","openapi":"http://brandmochi.com/api/v1/openapi.json"}}