makinari
One-click install for Cursor, VS Code, Claude, and 20+ other MCP clients, powered by API Commons MCP Install — visit install.apicommons.org for more information.
Endpoint
Hosted endpoint · transport http
Connect
This is a remote MCP server — point an MCP client at the endpoint URL. Clients with native remote support (Claude, Cursor, VS Code, …):
For stdio-only clients (older Claude Desktop, etc.), bridge with mcp-remote:
If the server requires authentication, add the provider's token/header (e.g. an X-API-Key) per its docs. A quick reachability check:
Tools
analyzeICPTotalCount— Analyze the total count of ICP targets from Finder. Pass filters using finder field names: person_industries, person_locations, person_skills (number[] IDs from getFinderCategoryIds), organization_domains (string[]), organization_industries, organization_locations (number[] IDs), role_title, role_description. Use getFinderCategoryIds first for industries/locations/skills - they require IDs. Can pass filters in query object or at top level.assets— Manage assets (e.g. text content, media metadata) linked to robot instances. Use action="create" to create a new asset. Use action="update" to update an existing asset. Use action="list" to get assets.audience— Build and manage reusable lead audiences. Query leads by filters, store the result as a named audience, then retrieve pages of leads or pass the audience to sendBulkMessages for bulk delivery (use {{lead.*}} merge tokens in message/subject as in sendBulkMessages ). Audiences persist across conversation turns and can hold up to 5,000 leads. Each audience is split into pages (default 50 leads per page) for efficient paginated access. Actions create Query leads matching the provided filters and store the result as a named audience. list List all audiences for the current site. gaudioToText— Converts an audio file from a given URL to text using AI. Supported formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm. Use this to transcribe voice notes, audio files, or extract text from videos. It utilizes Gemini 1.5 Pro or OpenAI Whisper as a fallback.campaigns— Manage marketing campaigns. Use action="create" to create a new campaign (requires title). Use action="update" to update an existing campaign (requires campaign_id). Use action="list" to get campaigns with filters.catalog_commerce— Create, search, and manage catalog items and product modifiers. Default resource="item" : use action="create" to add a product/service/digital_asset (requires name ; set target_sale_price and is_purchasable for sellable items). Use list / get / update for items. An item with is_reservation = true needs a schedule via reservation_schedules before it can be sold. Modifiers (extras like toppings or size options): resource="modifier_group" — create a reusable selection group ( min_select / max_select ). resource="modifier_group_item" — add catalog items as options inside the groupcheckout— Manage checkouts. Use action="create_order" to create a pending sale_order with lines. Use action="create_payment_link" to generate a Stripe Checkout URL for a pending order. Share this URL with the buyer so they can pay. Use action="get_order" to check the status of an order (e.g. to see if it became "completed" via webhook).configureEmail— (AgentMail): create or verify domains, create or delete inboxes, check domain existence, get domain info or DNS zone file. Required: action. Then provide the params for that action (e.g. domain and feedback_enabled for create_domain; username and domain for create_inbox; inbox_id for delete_inbox; domain_id or domain for verify_domain, get_domain_info, get_zone_file, check_domain_exists).configureWhatsApp— Configure WhatsApp Configure WhatsApp for the site: get_config (check if WhatsApp is set up and which number is used) or set_credentials (save Twilio/WhatsApp Business account_sid, access_token, and optional from_number). Required: action. For set_credentials also provide account_sid, access_token, and optionally from_number (e.g. +1234567890).content— Manage content. Use action="create" to create new content (requires title, type). Use action="update" to update existing content (requires content_id). Use action="list" to get content items with filters.conversations— List company conversations. Use action="list" with optional filters: lead_id, visitor_id, user_id, agent_id, status (conversation status e.g. active), channel (e.g. whatsapp, email, chat), custom_data_status (value of custom_data.status).copywriting— Manage copywriting templates and approved copies. Use action="create" to create new copy (requires title, copy_type, content). Use action="update" to update existing copy (requires copywriting_id). Use action="list" to get copies with filters. Use action="get" to get a single copy by id. Use action="delete" to remove a copy.createIcpMining— Create an ICP mining run in Finder. Pass filters using finder field names: person_industries, person_locations, person_skills (number[] IDs from getFinderCategoryIds), organization_domains (string[]), organization_industries, organization_locations (number[] IDs), role_title, role_description. Use getFinderCategoryIds first for industries/locations/skills. At least one filter required. Optional: name, segment_id, total_targets.createProject— Create a new project (site) for the user. A project in Makinari corresponds to a site structure and is the container for all assets, leads, tasks, and configurations.createSecret— Store a secret securely in the Vault. Use this to save API keys, credentials, or sensitive data. Returns the ID of the created secret but NOT the secret value. This tool is write-only, you cannot read the secret back using this tool. API Endpoint POST /api/agents/tools/createSecret Request Body site_id (string, required): The site identifier. name (string, required): A recognizable name for the secret. description (string, required): Description of the secret. secret (string, required): The sensitive secret value. Response Returnsdeals— Manage sales deals and opportunities. Use action="create" to record a new deal. Use action="update" to modify a deal. Use action="list" to search deals. Use action="delete" to remove a deal record.entitlements— Read and manage digital entitlements. Use action="list" to find entitlements by buyer or status. Use action="get" to read a single entitlement. Use action="update" to change status (e.g. to "revoked" or "used") or update expires_at. Do not invent grants here; entitlements are normally created via Stripe webhook after a checkout.extractFrames— Extracts frames (images) from a video or GIF URL. Returns an array of base64 images that can be analyzed or stored. Useful for visually understanding a video by passing the frames to a vision model.generateAudio— The generateAudio tool allows AI assistants to generate audio from text (Text-to-Speech) using AI providers. Currently, it fully supports the gemini provider (default) and vercel provider (which interfaces with OpenAI's TTS). Use Cases Converting text responses or generated stories into playable audio files. Narrating content for multimedia creation. Creating voice messages or podcast-style content within the conversation. Parameters The tool accepts the following parameters: Parameter Type Required Description text string YgenerateImage— Generate images using AI with automatic provider fallback. Supports multiple AI providers (Gemini, Azure, Vercel) with automatic fallback if one fails. Images are automatically saved to storage and can be used in conversations or content.generateVideo— Generate videos using AI with automatic provider fallback. Supports Gemini Veo 3.1 for video generation. Videos are automatically saved to storage and can be used in conversations or content.getFinderCategoryIds— category IDs from Finder autocomplete. Categories: industries, organizations, organization_keywords, locations, person_skills, web_technologies. Returns results with id and text. IMPORTANT: Use this tool BEFORE analyzeICPTotalCount or createIcpMining when the user mentions industries, locations, job skills, etc. - those tools require IDs, not free text. Search with q to find the correct ID.instance— Manage AI assistant instances (CRU operations: create, read, update). Use "create" to start a new instance for a specific activity. Use "read" to get details of the current instance or list instances for the site. Use "update" to automatically rename the instance based on context (if it has a generic name or the objective changed) or update other properties. IMPORTANT: You MUST call this tool with action "update" if the instance has a generic name ("Assistant Session", "New Instance", etc.) or if the conversation objective has changed significantly.instanceLogs— The instance_logs tool enables you to create and list logs associated with an instance. Use this tool whenever you perform significant actions that should be tracked, encounter errors, or need to review the history of actions performed by you or the user within an instance. Parameters Parameter Type Required Description action string No The action to perform ( create or list ). Defaults to create . instance_id string No The ID of the instance processing the requirement (defaults to current instance). user_id string No The IDinstancePlan— Manage instance plans. IMPORTANT: Instance plans are strict execution paths for YOU (the agent), composed of tool calls, processes, reviews, discussions, or user inputs to ensure task success. They are NOT general plans for the user. Use action="create" to define a new execution path (use when the plan is different from the previous one). Use action="list" to get current plans; use action="update" to add new steps or reopen an existing plan (same objective, just new steps). Use action="execute_step" to execute and record the result of each step individually. Always finish executileads— Manage leads. Use action="create" to create a new lead (requires name, email). Use action="update" to update an existing lead (requires lead_id). Use action="list" to get leads with filters. Use action="qualify" to change status (requires status). Use action="identify" to identify a visitor (requires visitor_id).memories— Manage agent memories. Actions: "save" (create new), "list" (search/filter), "update" (modify existing), "delete" (remove).messages— List messages for this site. Rules: Always provide conversation_id when you have it - site-wide queries are slower and return less context. Use role="user" to see only visitor/lead messages; role="assistant" for bot replies. Default limit is 50 (max 100). Check pagination.has_more before paginating further. Stop paginating when has_more=false or when you have found the information you need - do NOT blindly paginate through hundreds of records. If you get an error, do NOT retry with a higher offset. Instead, try a narrower filter (e.g. add conversation_id or lead_id).publish— The publish tool is a consolidated tool that allows the agent to perform multiple publishing actions in a single tool call. It can: Create or Update Content: Save content to the database with a published status, including metadata like assets and URLs. Publish to Social Media: Publish the content to specified social media accounts via Outstand. Send to Audience: Send the content as a bulk message to an audience via WhatsApp or Email. Usage You must provide at least one valid source of content: text , assets (media IDs), or urls . You must alspurchase_items— Manage line items on a vendor bill / purchase order. Use after creating a purchases header. Use action="create" to add a line (requires purchase_id and name or catalog_item_id). Totals on the parent purchase are recalculated automatically.purchases— Manage vendor bills / purchase orders (accounts payable). Use for money owed or paid to suppliers — NOT buyer checkout. Use action="create" for a draft header (requires title). Use purchase_items to add lines. Use action="register_payment" to record a supplier payment.quotation_items— Manage lines (items) inside a quotation. Use action="create" to add an item. Use action="update" to change quantity/price. Use action="delete" to remove an item. These actions automatically recalculate the quotation totals.quotations— Manage commercial quotations. Use action="create" to start a draft quotation (requires lead_id). Use action="update" to change status (draft, sent, rejected, expired). Use action="list" or "get" to read. Use action="delete" to remove.report— Query data from the database. Use action="list" to get up to 50 records. Use action="count" to get the total matching a filter. IMPORTANT - column reference (the schema is also returned in every response as table_schema): • leads: id, created_at, name, email, phone, … • conversations: id, created_at, status, channel, … … (schema summary) Tables WITHOUT a direct site_id (scoped automatically via join - do NOT filter by site_id on these): • messages - scoped via conversations.site_id • agent_memories - scoped via agents.site_id Rules: Never add a site_id filter - it is applied automaticalrequirementStatus— The requirement_status tool allows you to log progress and update stages on a client requirement, as well as list the stage history for a specific requirement. Use this tool whenever there's an update, failure, or completion of a task requested by the client. It stores an entry into the requirement_status database and optionally updates the parent requirement. Parameters Parameter Type Required Description action string No The action to perform ( create or list ). Defaults to create . requirement_id string Yes The Irequirements— Manage requirements. Use action="create" to create a new requirement (requires title). Use action="update" to update an existing requirement (requires requirement_id). Use action="list" to get requirements with filters.reservation_schedules— Manage reservation schedules for catalog items. A catalog item must have is_reservation = true before you can create a schedule for it. Use action="upsert" to configure a schedule (requires catalog_item_id , timezone , and days ). Use action="list" or action="get" to read schedules.reservations— Manage capacity reservations and find available slots for reservable items. Note that normal checkout flows typically create pending reservations automatically when a user buys a slot. This tool allows for querying inventory or creating admin bookings. Use action="get_available_slots" to query inventory for a date range (requires catalog_item_id , from_date , to_date ). Use action="create" for manual admin bookings (requires catalog_item_id , lead_id , start_time , end_time , and quantity ). Use action="update" to change a reservation status (e.g. to cancelled ).sales— Manage sales transactions. Use action="create" to record a new sale. Use action="update" to modify a sale record. Use action="list" to search sales history. Use action="delete" to remove a sale record.salesOrder— Manage sales orders. Use action="create" to create a sales record and optionally an order. Use action="update" to update an order. Use action="list" to search orders. Use action="delete" to remove an order.scheduling— Manage scheduling. Use action="check_availability" to get available slots (requires date, duration, timezone, team_id). Use action="schedule" to schedule an appointment (requires title, start_datetime, duration, timezone, context_id).searchRegionVenues— Search for local venues, businesses, or places in a specific region using Google Maps. Useful for finding leads, competitors, or specific types of businesses in a city/region.segments— Manage audience segments. Use action="create" to create a new segment (requires name). Use action="update" to update an existing segment (requires segment_id). Use action="list" to get segments with filters.sendBulkMessages— Send a message to every lead in a stored audience via WhatsApp or email. The tool iterates through all pages of the audience, sends the message to each lead, and tracks individual delivery status. Leads missing the required contact field (phone for WhatsApp, email for email) are automatically skipped. Already-sent leads are not re-sent, so the tool is safe to retry.sendEmail— Send an email to a recipient. Required: email (recipient), subject, message. Optional: from, lead_id, conversation_id, agent_id, placeholder_policy. Merge fields (with lead_id ): {{lead.name}} , {{lead.first_name}} , {{lead.email}} , {{lead.phone}} , {{lead.position}} , {{lead.company}} , {{lead.notes}} , {{lead.metadata.}} , {{site.name}} . Use double braces only; aliases like {{lead.correo}} are normalized. Unknown tokens: strip_tokens (default) removes them; skip_recipient aborts the send if unresolved tokens remain. sendWhatsApp— Send WhatsApp Send a WhatsApp message to a phone number. Required: phone_number, message. Optional: from, lead_id (enables merge fields in message ), placeholder_policy, conversation_id, agent_id, media_urls. If template_required: true (outside 24h), use whatsappTemplate. With lead_id , merge tokens: {{lead.name}} , {{lead.first_name}} , {{lead.email}} , {{lead.phone}} , {{lead.position}} , {{lead.company}} , {{lead.notes}} , {{lead.metadata.}} , {{site.name}} (double braces only). subscription_plan_items— Manage mappings between a subscription plan and its included digital assets. Use action="create" to map a digital asset to a plan. Use action="list" to read existing mappings. Use action="delete" to remove a mapping.systemNotification— The system_notification tool allows you to list team members or send notifications to them. The tool supports two actions: list : Retrieves all team members for the site, helping you determine who to notify and providing their email addresses. notify : Sends a notification to a specific team member. Note: Notifications are rate-limited to 1 per instance per team member per hour. You can specify the channels to use (e.g., ["whatsapp", "email", "in_app"] ) and a custom phone_number . If no explicit channels are provtasks— Manage tasks. Use action="create" to create a new task (requires title, type, lead_id). Use action="update" to update an existing task (requires task_id). Use action="list" to get tasks with filters.updateSiteSettings— Site Settings Get or update the site business settings, context (about, industry, etc.), and copywriting guidelines (branding, voice, tone). Use "get" action to retrieve current settings, and "update" action to modify them. Provide only the fields you want to update when using the "update" action.urlToMarkdown— Converts the content of a webpage URL into Markdown format. Useful for extracting text content for analysis.urlToSitemap— Extracts the sitemap of a website to discover its structure and page URLs. Useful for navigation and understanding site layout.webSearch— Perform a web search to get real-time information. Powered by Tavily. Returns an AI-generated answer plus individual result snippets.webhooks— Manage webhooks. Use action="list" to get all webhooks. Use action="create" with url and events (array of strings) to register a new webhook.whatsappTemplate— WhatsApp templates are required when sending to a user more than 24 hours after their last message. Use action create_template first (phone_number, message); if it returns template_id, then use action send_template (template_id, phone_number, original_message) to deliver the message. If create_template returns template_required: false, the conversation is within the 24h window - use sendWhatsApp instead.workflows— Execute business and data workflows. Use this tool to trigger complex backend processes like lead research, campaign building, content generation, sending emails/whatsapp, etc.
About MCP
The Model Context Protocol (MCP) is an open protocol Anthropic introduced for connecting LLM-based agents to external tools and data sources. Providers publish MCP servers that expose their API surface as structured, discoverable tools — an MCP-compatible client (Claude Desktop, Cursor, Cline, Continue, etc.) can connect to the server and call its tools without any per-provider integration code.
Browse every MCP server on the APIs.io network or compare with the broader Agent Skill surfaces of the same providers.
Work with this as data
Every MCP server here is available over the APIs.io API and to AI agents over MCP.