{"apiVersion":"v1","directorySlug":"identityfirstmedia-mcp-638844639c","title":"Identity First Media","description":"Identity First Media builds media companies on the customer’s own domain: website, articles, podcast, clips, social media, mail, courses and store, from one recording a week, in your own voice. Every publication builds on the last, so your site grows more valuable every year. The domain, the archive and the list stay yours and leave with you. EU-hosted, GDPR-compliant.","pageUrl":"https://www.mcpbundles.com/skills/identityfirstmedia-mcp-638844639c","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://identityfirstmedia.com/mcp","hostedMcpUrl":null,"toolCount":7,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.identityfirstmedia/identityfirstmedia-mcp-638844639c","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"search_knowledge","description":"Search the knowledge base, FAQ, blog posts and services semantically. Returns the most relevant items based on meaning, not just keywords. Use this ALWAYS when the visitor asks about the business, expertise, processes, services, or any information. Never answer from memory — always search first.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_knowledge","displayName":"search_knowledge","title":"search_knowledge"},{"name":"capture_contact","description":"Save visitor contact details with their consent. ONLY use when the visitor voluntarily provides their contact information. Never ask for contact details unprompted.","inputSchema":{"type":"object","required":["email","first_name","conversation_id"],"properties":{"email":{"type":"string"},"company":{"type":"string"},"last_name":{"type":"string"},"first_name":{"type":"string"},"conversation_id":{"type":"string"}}},"logicalName":"capture_contact","displayName":"capture_contact","title":"capture_contact","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_offerings","description":"List everything that can be purchased from this business: webshop products, courses, paid events, and memberships/subscriptions. Prices are exact and come from the business database: never estimate or invent prices. Use when the visitor asks what they can buy, about pricing, or what is on offer. Use get_offering for full details of one item. This lists purchasable items; for advisory services use match_services instead.","inputSchema":{"type":"object","required":[],"properties":{"type":{"enum":["product","course","event","membership"],"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_offerings","displayName":"list_offerings","title":"list_offerings"},{"name":"get_offering","description":"Get full details of one purchasable item: description, exact price, availability/stock, variants, VAT indication and terms. Use after list_offerings when the visitor is interested in a specific item. Always quote the returned prices exactly.","inputSchema":{"type":"object","required":["offering_type","offering_id"],"properties":{"offering_id":{"type":"string"},"offering_type":{"enum":["product","course","event","membership"],"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_offering","displayName":"get_offering","title":"get_offering"},{"name":"create_checkout","description":"Prepare a Stripe Checkout payment link for one purchasable item (from list_offerings/get_offering). The VISITOR completes the payment themselves on the business website; this tool never charges anyone. Use ONLY after the visitor explicitly says they want to buy the item. Prices are determined server-side; this tool only passes ids and quantities. If the response contains waiver_required, present the waiver_text literally, ask for explicit agreement, and only then call again with withdrawal_waive","inputSchema":{"type":"object","required":["offering_type","offering_id"],"properties":{"quantity":{"type":"number"},"variant_id":{"type":"string"},"offering_id":{"type":"string"},"customer_name":{"type":"string"},"offering_type":{"enum":["product","course","event","membership"],"type":"string"},"customer_email":{"type":"string"},"billing_interval":{"enum":["monthly","quarterly","yearly"],"type":"string"},"withdrawal_waiver_accepted":{"type":"boolean"}}},"logicalName":"create_checkout","displayName":"create_checkout","title":"create_checkout","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_available_slots","description":"Get available meeting slots from the calendar for the next few days. Use when the visitor wants to schedule a call, meeting, or consultation. Returns time slots grouped by day. Present 3-5 options to the visitor and let them pick.","inputSchema":{"type":"object","required":[],"properties":{"days_ahead":{"type":"number"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_available_slots","displayName":"get_available_slots","title":"get_available_slots"},{"name":"confirm_booking","description":"Book a meeting at the chosen time slot. Use ONLY after the visitor has picked a specific slot from get_available_slots AND provided their name and email. The visitor must explicitly confirm before booking.","inputSchema":{"type":"object","required":["start_time","invitee_name","invitee_email"],"properties":{"timezone":{"type":"string"},"start_time":{"type":"string"},"invitee_name":{"type":"string"},"invitee_email":{"type":"string"},"location_preference":{"enum":["zoom","breda"],"type":"string"}}},"logicalName":"confirm_booking","displayName":"confirm_booking","title":"confirm_booking","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Identity-First-Media&config=eyJ1cmwiOiAiaHR0cHM6Ly9pZGVudGl0eWZpcnN0bWVkaWEuY29tL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Identity-First-Media%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fidentityfirstmedia.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Identity-First-Media%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fidentityfirstmedia.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Identity+First+Media&connectorUrl=https%3A%2F%2Fidentityfirstmedia.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Identity-First-Media\" --url \"https://identityfirstmedia.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/identityfirstmedia-mcp-638844639c","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/identityfirstmedia-mcp-638844639c/tools/{tool}","mcpServerUrl":"https://identityfirstmedia.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/identityfirstmedia-mcp-638844639c?live=1"}