{"apiVersion":"v1","directorySlug":"bloomprotocol-mcp-6528576307","title":"Bloom","description":"Paste one prompt: your agent loads vetted content-led growth skills, registers what you’re building, and submits your app. Clear the gate and you sit on pages assistants read. Free.","pageUrl":"https://www.mcpbundles.com/skills/bloomprotocol-mcp-6528576307","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://bloomprotocol.ai/api/mcp","hostedMcpUrl":null,"toolCount":12,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"ai.bloomprotocol/bloomprotocol-mcp-6528576307","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"list_projects","description":"List indie consumer AI projects in the Bloom Directory. Each result includes name, tagline, category, Bloom Score, and the URL to follow up. Read-only — safe to call from any subagent. Categories: wellness, journal, habits, daily-life, creative, companion, money-mind, agents, learning.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"number","maximum":50,"minimum":1},"category":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_projects","displayName":"list_projects","title":"list_projects"},{"name":"sign_up_project","description":"Follow an indie AI project from the Bloom Directory. Preferred: pass the user's Bloom handle in the `handle` argument (ask them in chat first). If omitted, Bloom tries an in-chat elicitation form — only supported by some clients. Optionally accepts signals describing the user's stack/intent/focus so Bloom can return a personalized \"why this fits you\" sentence the agent can speak back. No email, no PII.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["projectId"],"properties":{"handle":{"type":"string"},"signals":{"type":"object","properties":{"vibe":{"type":"string"},"focus":{"type":"string"},"stack":{"type":"array","items":{"type":"string"}},"intent":{"type":"string"},"interests":{"type":"array","items":{"type":"string"}},"lifeContext":{"type":"string"},"personality":{"type":"string"}},"additionalProperties":false},"projectId":{"type":"string"}},"additionalProperties":false},"logicalName":"sign_up_project","displayName":"sign_up_project","title":"sign_up_project","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"support_project","description":"Publicly endorse an indie AI project from the Bloom Directory. Preferred: pass the user's Bloom handle in the `handle` argument (ask them in chat first). If omitted, Bloom tries an in-chat elicitation form — only supported by some clients. The support is recorded on the public agent profile and on the project page. Call remember_my_taste with action=backed afterwards so future recommendations reflect it. No PII.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["projectId"],"properties":{"handle":{"type":"string"},"signals":{"type":"object","properties":{"vibe":{"type":"string"},"focus":{"type":"string"},"stack":{"type":"array","items":{"type":"string"}},"intent":{"type":"string"},"interests":{"type":"array","items":{"type":"string"}},"lifeContext":{"type":"string"},"personality":{"type":"string"}},"additionalProperties":false},"projectId":{"type":"string"}},"additionalProperties":false},"logicalName":"support_project","displayName":"support_project","title":"support_project","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"recommend_for_me","description":"Ask Bloom to rank indie consumer AI apps that fit the user AS A PERSON. You (the agent) already know this user from your conversation — their interests, current mood/vibe, personality, and what season of life they are in. Fill the signals from what you know; the richer the picture, the better the match. Bloom returns top matches, each with a personalised \"why this fits\" sentence to speak back — PLUS one 🎲 wildcard: a deliberately out-of-character pick to break the filter bubble. Present the wild","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":20,"minimum":1},"handle":{"type":"string"},"signals":{"type":"object","properties":{"vibe":{"type":"string"},"focus":{"type":"string"},"stack":{"type":"array","items":{"type":"string"}},"intent":{"type":"string"},"interests":{"type":"array","items":{"type":"string"}},"lifeContext":{"type":"string"},"personality":{"type":"string"}},"additionalProperties":false},"category":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"recommend_for_me","displayName":"recommend_for_me","title":"recommend_for_me"},{"name":"remember_my_taste","description":"Record an explicit taste signal for a Bloom handle — that the user backed or skipped a project — so future recommend_for_me calls reflect it. Use for projects the user actively rejected (\"not for me\"), or to confirm a backing that already happened via support_project. Idempotent on (handle, projectId, action).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["handle","projectId","action"],"properties":{"action":{"enum":["backed","skipped"],"type":"string"},"handle":{"type":"string"},"reason":{"type":"string"},"projectId":{"type":"string"}},"additionalProperties":false},"logicalName":"remember_my_taste","displayName":"remember_my_taste","title":"remember_my_taste","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_packs","description":"List Bloom-curated capabilities for content-led growth your agent can load: skills, MCP servers, and prompt patterns, hand-gated from 1000+ candidates (bulk generators, black-hat SEO, spam-adjacent and engagement-bait tooling are rejected). Three pillars, in the order the work happens: strategy (what to say and who to — positioning, ICP, pricing, launch planning), content (how to make it — drafting and editing where the human stays the author), distribution (how anyone sees it — GEO/AEO, technic","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"layer":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_packs","displayName":"list_packs","title":"list_packs"},{"name":"get_pack","description":"Get one Bloom-curated pack item in full: source URL, author reputation, maintenance status, why it earned the shelf, and honest flags (setup friction, paid tiers, ToS gray zones). Bloom curates for fit and quality, not security — review anything before granting it credentials.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["packId"],"properties":{"packId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_pack","displayName":"get_pack","title":"get_pack"},{"name":"get_category_brief","description":"Category intel for builders: what's new on Bloom's gated shelf in a category (last 14 days), category size, the answer pages that cover it, and live gate stats. Feed it to a content/growth agent weekly. Pass `handle` alone and Bloom uses the categories that handle registered via remember_my_focus — so a standing \"brief me\" needs no arguments after the first setup. Read-only.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"handle":{"type":"string"},"category":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_category_brief","displayName":"get_category_brief","title":"get_category_brief"},{"name":"remember_my_focus","description":"Register what the user is building and which Bloom categories they want to follow, against their handle. Call this once during setup (ask them in chat first). Afterwards get_category_brief works with just `handle` — no category argument — and the public profile at bloomprotocol.ai/agents/<handle> shows it. Both fields are optional; sending one leaves the other untouched. No PII: a short project line and category ids only.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["handle"],"properties":{"handle":{"type":"string"},"building":{"type":"string"},"watching":{"type":"string"}},"additionalProperties":false},"logicalName":"remember_my_focus","displayName":"remember_my_focus","title":"remember_my_focus","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"submit_project","description":"Submit an indie consumer AI app to Bloom's directory on the user's behalf. Ask them for the name, a one-line description and the URL first — never invent them. Submissions land as PENDING and stay off every public surface until a human approves against the published standards, so tell the user it is queued, not live. Bloom's shelf is human-centered consumer AI (wellness, journaling, habits, daily life, creativity, companionship, money mindset, consumer agents, learning); dev tools, B2B SaaS, cry","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["projectName","description","url"],"properties":{"url":{"type":"string"},"handle":{"type":"string"},"category":{"type":"string"},"projectName":{"type":"string"}},"additionalProperties":false},"logicalName":"submit_project","displayName":"submit_project","title":"submit_project","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"find_answer_gaps","description":"Find the questions buyers in a category ask that a website never answers, and get the content shape that answers each one. Takes the maker's own URL. Returns gaps ordered by leverage (unanswered objections first, because they block decisions that discovery content already won) plus Bloom's shelf context for that category. This reads ONE page and reports which vocabulary is present — it does not judge how well the page answers, and it does not crawl competitors or forums; those steps belong in yo","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["url","category"],"properties":{"url":{"type":"string"},"category":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"find_answer_gaps","displayName":"find_answer_gaps","title":"find_answer_gaps"},{"name":"check_my_visibility_watch","description":"Report what changed on the websites this user has under scheduled re-check: which agent-readability checks broke since last time, which were fixed, and the score trend. Use it when they ask how their site is doing with AI assistants, and proactively at the start of a working session — silent regressions (a CDN starting to challenge AI crawlers, a redesign dropping structured data) are exactly what this catches, and they will not know to ask. Works free with a Bloom handle (one site, re-checked m","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"key":{"type":"string"},"handle":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"check_my_visibility_watch","displayName":"check_my_visibility_watch","title":"check_my_visibility_watch"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Bloom&config=eyJ1cmwiOiAiaHR0cHM6Ly9ibG9vbXByb3RvY29sLmFpL2FwaS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Bloom%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fbloomprotocol.ai%2Fapi%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Bloom%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fbloomprotocol.ai%2Fapi%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Bloom&connectorUrl=https%3A%2F%2Fbloomprotocol.ai%2Fapi%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Bloom\" --url \"https://bloomprotocol.ai/api/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/bloomprotocol-mcp-6528576307","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/bloomprotocol-mcp-6528576307/tools/{tool}","mcpServerUrl":"https://bloomprotocol.ai/api/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/bloomprotocol-mcp-6528576307?live=1"}