Skip to main content
Glama
760,319 tools. Updated 2026-11-09 14:10

"Marko" matching MCP tools:

  • Retrieve detailed product information for dm-drogeriemarkt products. USE WHEN: ingredients, nutrition facts, allergens, usage instructions, warnings, hazard info, product URLs/images INPUT: DANs (7 digits, preferred) and/or GTINs (8-14 digits) multiple products can be requested at once min 1 / max 50. Use search tool first if only product name is known. OUTPUT: TOON format (compact YAML-like). Fields: name, brand, description, ingredients, nutrition, allergens, usage, warnings, URLs, images. found=false for unresolved IDs. NOT FOR: prices, availability, stock, reviews, recommendations ERRORS: validation error if >50 or no identifiers
    ConnectorNo auth
  • Search for products available in the German dm-drogerie market (online and local stores). USE WHEN: searching dm-drogerie products by name, category, ingredient, property, or any natural language query (any language supported). Often answers questions about ingredients and properties directly. Covers: dm-drogerie markt brands, make-up, skincare, perfume, hair, health, nutrition, baby & child, household, home & living, photo, and pets. OUTPUT: Returns a maximum of 15 products. GTIN, DAN, brand, title, details, category, price, appLink (direct product URL), description, highlights/USPs, and extensive attributes including: - Dietary/Allergen: vegan, vegetarian, bio, glutenFree, lactoseFree, sugarFree, nutFree, soyFree - Cosmetic Ingredients: fragranceFree, alcoholFree, parabenFree, sulfateFree, preservativeFree, dyeFree, oilFree, siliconeFree, naturalCosmetics - Product Properties: waterproof, new, limitedEdition, sellout, onlineOnly, exclusiveDm, dmBrand, purchasable NOT FOR: nutritional information (calories, protein, carbs, fats), complete allergen lists, full ingredient details. For these, use 'getProductDetails' tool with the GTINs or DANs. LIMITATIONS: Only make claims based on EXPLICITLY stated product highlights/descriptions. Do NOT extrapolate or assume properties not mentioned in the results.
    ConnectorNo auth
  • Commit any data (an AI output, a decision, a record) into a public, witnessed transparency log and get back a verifiable, tamper-evident provenance stamp (canonical markovian-provenance/v1). It proves the data existed and was committed at this time; it does NOT assert the data is correct (provenance, not truth). No wallet, account, or funding is required, the first stamp just works, and only the SHA-256 hash of your data is sent to the public API, the raw data is never stored. The returned merkle_root is the handle: save it, then call markovian_verify(merkle_root) to prove integrity later, or pass prior stamps in derived_from to build a lineage you can walk with markovian_trace. Typical use: stamp an agent output the moment it is produced, so anyone can later confirm it was not altered.
    ConnectorNo auth
  • Retrieve dm-drogeriemarkt products and render them as a visual card grid (product image, brand, name, link to the product page). USE WHEN: the user wants to see products, an overview of several products, or a picture/link instead of a text description INPUT: DANs (7 digits, preferred) and/or GTINs (8-14 digits) multiple products can be requested at once min 1 / max 50. Use search tool first if only product name is known. OUTPUT: card grid rendered by the host. found=false for unresolved IDs. NOT FOR: ingredients, nutrition facts, allergens, warnings - the cards do not show them, use getProductDetails for those. Not for prices, availability, stock, reviews, recommendations. ERRORS: validation error if >50 or no identifiers
    ConnectorNo auth
  • Check whether one or more dm-drogeriemarkt products are available in one or more specific stores right now. USE WHEN: you need to know if one or more products can currently be bought in one or more particular physical stores. INPUT: one to five storeIds and one to ten DANs (dm product numbers). OUTPUT: for each requested DAN, whether it was found and a status per requested storeId - VERFUEGBAR (available, includes current stockLevel), NICHT_VERFUEGBAR (not available in this store right now), NUR_ONLINE (this product is not carried in ANY dm store, not just this one), PRODUKT_UNBEKANNT (DAN not found), or STORE_UNBEKANNT (storeId does not exist in our system). IMPORTANT: NUR_ONLINE means the product itself is never sold in physical dm stores - it will be the same result for every store. Do not check other or nearby stores for that product; tell the customer it is online-only right away. IMPORTANT: storeIds MUST come from the findNearbyStores tool - call it first to resolve the storeId(s) for a location. Never invent, guess, or otherwise make up a storeId yourself; a made-up storeId will come back as STORE_UNBEKANNT instead of a real availability answer. IMPORTANT: if a customer asks about availability for several products, pass ALL of their DANs (up to 10) into this single call. Never assume, infer, or extrapolate the availability of a product you have not included in a call and gotten a result for - not even from a similar or already-checked product, and not even for "usually available" items. When reporting back, state the result for every single product individually (e.g. one line per product) - never collapse multiple products into one summary statement such as "all of them are available". TIP: if a product's result is NUR_ONLINE, or it is NICHT_VERFUEGBAR and you already know from an earlier product lookup that it is available online, suggest buying it online instead and include a link to the product page if you have one. NOT FOR: click & collect / express pickup or same-day delivery eligibility (not covered by this tool), or repeatedly polling a store's stock over time. ERRORS: validation error if any DAN is invalid, dans is empty, more than 10 dans are given, storeIds is empty, or more than 5 storeIds are given.
    ConnectorNo auth
  • Creates or updates one strategy item: kind = persona | pillar | angle | market | buyer_question | kpi_target. Personas, pillars and angles are the Messaging page (/messaging); an angle is one persona × pillar pair, so create it with fields.personaId and fields.pillarId from get_brand_context. Markets are the Markets page (/markets); to add one from a place name, set_up_market resolves the codes for you. Pass id to update an existing item. For a persona, pillar, angle or market, send only the fields that change; the rest, and the active flag, keep their saved values. Pillar and angle slugs cannot change after creation. A new market without priority goes after every existing one; a locationCode and languageCode pair must be one list_market_locations returns. Pass id and active only (no fields) to deactivate (false) or reactivate (true) a persona, pillar, angle, market, or buyer question without deleting it. KPI targets are the Targets page (/targets): one target per metric per month. Saving a metric and month that already has one is refused with that target's id; to change it, pass its id and fields.value only (metric and month cannot change). engagement_rate is a percent: send 4.5 for 4.5%. KPI targets have no active flag — passing active is refused. Delete a KPI with delete_strategy_item. Read targets with their actuals and progress from get_content_performance (kpis). Buyer question text cannot be edited in place — create a new one, retire it with active: false, or delete it with delete_strategy_item. A buyer question's topic (a short label, max 60 characters) can change any time: pass id with fields.topic, or empty to clear. It touches no past or future check. Creating a buyer question also returns item.firstCheck { questions, markets, engines, checks }: what the next AI answer check sends (active questions × active markets with a location × engines). suggest_buyer_questions lists questions to start with. Returns appUrl, the page where a person sees the item. Related: get_brand_context, suggest_buyer_questions, delete_strategy_item, set_up_market, list_market_locations, get_content_performance.
    ConnectorOAuth

Matching MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to retrieve accurate definitions, examples, accessibility guidance, and documentation for eBay evo-web Marko 6 components, Marko 6, evo icons, and migration mappings so they can write correct markup and Tags API code. It also supports component lookup, documentation search, icon search, and migration from legacy eBay UI tags.
    8
    MIT

Matching MCP Connectors

  • MargoOAuth

    Research business prospects with source evidence using your Margo account.

  • Benchmark your own prompt on 100+ models with real API calls, then choose the winner by accuracy, cost, speed, or any mix of those.

  • Records what the person asked you to change while drafting, and your own checks on the draft, so Mark can later suggest brand rules. Each call stores one new report. Call it at two moments: when the person states a standing rule ("never say game-changer"), before you ask whether to save it; and once on the version they accept, after save_post, with that postId. For a piece that lives outside Mark, pass externalRef instead. Each iteration is one ask: a short paraphrase in ask, its category, and scope (tenant_wide when they said it applies to everything, this_piece when only here, unsure otherwise; never guess). before, after and userQuote are optional short excerpts of the changed words and of what the person said. Keep every excerpt short, and never paste the conversation or a full draft. selfChecks list the checks you ran (check, result pass/warn/fail, reason). Recording feedback changes no rule. When the person agrees a rule, save it with save_content_exclusion (pass this report's id as feedbackId) for a phrase Mark should block or warn on, or update_brand_profile for voice guidance. Asks scoped tenant_wide or unsure come back as suggested rules from suggest_brand_rules. Related: save_content_exclusion, update_brand_profile, save_post, suggest_brand_rules.
    ConnectorOAuth
  • Removes an untracked domain from Other lookups on the competitor scorecard, in every market: deletes its unstarred competitor record and every stored lookup of it. Looking it up again runs a new lookup, and tracking it again starts fresh. Refuses a tracked competitor (untrack it first) and your own sites. A domain with nothing stored removes nothing. Related: list_competitors, untrack_competitor.
    Connector
    Destructive
    OAuth
  • Creates or retires a content exclusion: a literal phrase Mark enforces (block or warn), optionally limited to one channel. BrandProfile (voice.do, voice.dont, voice.principles, doctrine) is prose guidance the model reads. ContentExclusion is phrases Mark enforces. To change an exclusion, retire it and create a new one — exclusions are never edited in place. Pass phrase and severity to create, plus feedbackId when report_feedback recorded the person asking for this rule. Pass id and active: false to retire. Related: get_brand_context, update_brand_profile, report_feedback.
    ConnectorOAuth
  • Adds or revises a claim on the Claims & sources page. A claim is one fact drafts may state (a price, a result, a certification, a feature), backed by a quote that must appear in its source's text. Claims are append-only, so posts that cite a claim keep the wording they were approved against: - Add: text, category, sourceQuote, and either sourceId (list_claims or get_brand_context sources) or source {title, body, url?} to create the source too. - Revise: id of an active claim plus only the fields that change. This retires that claim and creates a new one; the result has the new claim and retiredId. Each call creates a claim. To stop drafts using a claim, call retire_claim. Only active claims reach Mark's drafting and post checks. Related: list_claims, retire_claim, add_source, get_brand_context.
    ConnectorOAuth
  • Edits a pasted note (a source with type note) on the Claims & sources page: its title, text (body) or link. Pass id and only the fields that change. Claims quote a note's text, so a body edit is refused when a claim citing the note, active or retired, quotes text the new body no longer contains. The error names those quotes; revise those claims with save_claim first, or keep the text. Line breaks, case and curly quotes are ignored, as in save_claim. Other source types are refused: a drive_doc syncs from Google Drive and is edited there. Related: list_claims, delete_source, save_claim.
    ConnectorOAuth
  • Creates, edits, archives or unarchives a content idea. To create: pass title; brief, angleId or pillarId, and buyerQuestionId are optional. To edit: pass id and only the fields that change. To archive or unarchive: pass id and archived: true or false. Archiving never changes the idea's posts. To tie existing posts to an idea: pass id and linkPostIds (from search_posts). It changes only each post's idea, in any status: a post in review, scheduled or published keeps its rev and approval, and a post on another idea moves here. The idea must be active. unlinkPostIds unlinks posts from this idea. One call applies its changes in order (fields, unarchive, unlink, link, archive); a refusal leaves the earlier ones saved, so call list_ideas to check before retrying. To log an idea from a wrong answer: pass wrongAnswerId (from list_wrong_answers); title, brief and buyer question come from it. An angle sets the idea's pillar and persona to the angle's; a pillarId that contradicts the angle is refused. For a pillar on its own, pass angleId null. To draft a post from an idea, call save_post with channel and ideaId. Related: list_ideas, save_post, search_posts, get_brand_context.
    ConnectorOAuth
  • Lists brand rules suggested from drafting feedback (report_feedback): asks people made while drafting that may apply to everything, with the same ask from several reports listed once. This tool saves nothing. Each suggestion has ask, category, kind (exclusion: a phrase Mark could block or warn on; voice: a voice do or dont line), scopes (tenant_wide, unsure), count (reports that raised it), feedbackIds, and the newest report's channel, createdAt and before, after and userQuote excerpts. Asks scoped this_piece are never listed, and neither are asks from a report that already has a linked exclusion. Unsure asks come first, then higher count, then newest; at most 25, read from the newest 200 reports. Show each suggestion to the person and ask before saving it. On a yes, save an exclusion with save_content_exclusion (pass one of its feedbackIds as feedbackId), or a voice line with update_brand_profile (section voice, the full merged list, without confirm; the person confirms the section on the Brand page at appUrl). On a no, save nothing. A declined suggestion, or one saved as a voice line, can be listed again. state: ready, or none when nothing is waiting. Returns appUrl, the Brand page. Related: report_feedback, save_content_exclusion, update_brand_profile, get_brand_context.
    ConnectorOAuth
  • Stamp content with a permanent provenance record. Pass the sha256 hash of the content (hash it locally; the content itself is never uploaded). Returns an instant signed receipt: attach its verifyUrl, byline, badgeEmbed, and qrUrl to the published artifact. The receipt's `publisher` field carries the account's verified identity (domain/handle) or null. If you have no key, call create_account, store its one-time secret, and retry this same call with `Authorization: Bearer <secret>` (its `freeStamp` says whether a free stamp comes with it). If the response is `payment_required` or `quota_exhausted`, call buy_stamps and give a person the returned checkout link (prepaid packs never expire: 5 for $1.00, 10 for $1.50, 50 for $5.00, 100 for $8.00, 500 for $35.00, 1,000 for $65.00, 2,000 for $120.00), poll get_balance until the stamps arrive, then retry. To pay per stamp instead, sign one advertised x402 requirement and send it as a `PAYMENT-SIGNATURE` HTTP header: tool arguments can't carry it, so either configure your MCP client to send that header or POST the same JSON to https://makemark.io/proof directly. An `invalid_api_key` error means the key is mistyped or revoked: create a new one. The optional disclosure fields (aiDisclosure, usageNote, location) only show on `visibility: public` stamps and are unsigned metadata, not part of the cryptographic proof. The stamp asserts provenance from a signer at a time, not authorship truth.
    ConnectorNo auth
  • Estimates how often each of 1 to 50 phrases is asked in AI assistants each month, in every active market with a location and language, without saving anything. Use it to vet a question before adding it as a buyer question. Results come back in input order, each with aiSearchVolume, the total across those markets (null when no market has an estimate), and byMarket, one row per market, highest first. The total adds up markets in different languages: read it as how widely a question is asked, not one market's demand. This is AI search volume, not the Google search volume research_keywords returns. If this refuses because the workspace is not set up, call get_setup_status and check its rows, including skipped ones. Add a phrase with save_strategy_item (kind buyer_question). Related: refresh_ai_volume, get_ai_visibility, set_up_market.
    ConnectorOAuth
  • Drafts a comparison page for one tracked competitor as a competitor_page draft post: kind vs ("<them> vs <you>", which also answers "<them> alternative" searches) or pricing ("<them> pricing", what they charge and how you compare). There is no alternative kind: kind alternative is refused, so draft the vs page. One AI model call writes it from Mark's facts about them (price claims sourced on their own site, this week's AI answers that named them and not you, their ranked keywords). Each fact gets a numbered marker, and Mark adds a Sources section with each source and its checked date. A fact Mark has no source for is a [confirm: …] placeholder; every price is one when no price claim is sourced on their site (add one with add_source and save_claim). No tables. When that competitor already has a live (not archived) post of that kind, returns it and writes nothing; markAppUrl opens the editor, or the review page once it is past draft. Refuses an unknown or untracked competitor, and one whose name or domain matches a content exclusion. A blocked phrase in the generated text saves nothing. Never submits: open placeholders, tables and numbers no active claim states fail the content checks, so fix them, then call submit_post. Takes up to a minute. Related: list_competitors, get_competitor_scorecard, check_draft, save_post, submit_post.
    ConnectorOAuth
  • Replaces the text of a published social post on its platform, right away. The new text goes live as soon as the call returns; it does not go back through review, and it is recorded as a new rev approved by you. Only people who can approve the channel's posts may use it: on a channel set to admins only (approverRole: approver), workspace admins. Text only: media, the first comment, YouTube and Pinterest titles, and X thread replies stay as posted. Works on LinkedIn, Facebook, X, YouTube (the description) and Pinterest (the description, if Pinterest lets apps edit pins). X: single posts only, within 1 hour of going live, up to 5 edits, and the account needs X Premium; X gives the edited post a new address, returned as url. Instagram and TikTok are refused: edit those in their apps. The text gets the same checks as save_post (the channel's character limit and blocked phrases); blank text is refused. Links go out as written, so keep the tracking links from the live text. Drafts, posts not yet published, website pages and external posts are refused, and so is a second edit of the same post while one is in progress. A refusal changes nothing in Mark or on the platform, and the error names the platform and its reason. Two errors are different: if the error says Mark couldn't confirm the platform took the edit, check the live post before calling again; if it says the live post changed but Mark didn't record it, call again with the same text. Related: get_post, save_post, delete_post.
    ConnectorOAuth
  • Look up a Markovian stamp by its merkle_root against the public verifier, with no key or account. verified:true means the stamp record exists and the response echoes its committed data_hash — recompute your content's SHA-256 and compare it to that data_hash yourself to confirm the content is unaltered. An unknown merkle_root returns verified:false. The trust-nobody path is the stamp's witnessed transparency-log leaf (log_index / inclusion URL from markovian_stamp): its inclusion proof verifies against the witnessed log head with no trust in this endpoint. Read-only; anyone can run it, including a party who does not trust the stamper.
    ConnectorNo auth
  • Order a competitor Meta ads report for one competitor. On a Dominator, Agency or May plan this spends one report from the current period's allowance and queues the build. On Snapshot it returns a Stripe checkout link instead. The report is NOT generated on the spot: a person builds it and it is delivered to the portal, typically within 24 hours. Poll get_status, then list_deliverables. Requires an X-Mako-Key header.
    ConnectorNo auth
  • Edits one section of the Brand page: section=voice (Brand and voice), visual (Visual identity: logo, colors, fonts), overlay (Entities and evidence: primary and secondary entities, experts, evidence, sameAs, Wikidata ids) or offer (Offer: what is sold today, available now, planned and not available yet, pricing, promises, claims to avoid). Pass the section's object with only the fields that change, in the shape get_brand_context returns under profile. Fields you leave out keep their saved values; lists you send replace the saved list; an empty string clears a text field. voice.voice and voice.companyFacts merge key by key, and visual.colors merges by role. Set the logo with visual.logoAssetId, an image id from search_assets or add_asset. Overlay evidence cites a source by sourceId (get_brand_context sources) or a sourceUrl. Confirmed means a person reviewed the section, and Mark's own drafting uses a section only once it is confirmed. Saving clears the section's confirmation unless you pass confirm: true. Only pass confirm: true when the person you act for has reviewed the content and explicitly asked you to confirm it. confirm: true with no fields confirms the section as it is. Otherwise send them the returned appUrl to review and confirm it there. BrandProfile voice (do, dont, principles, doctrine) is prose guidance the model reads. A voice.voice.tone entry can name its limit as '<word>, not <limit>' ('warm, not gushing'). voice.voice.antiExamples holds posts that don't sound like the brand; drafts read them as what to avoid. Claims the brand must not make go in offer.claimsToAvoid, not voice.dont. Literal phrases to block or warn on belong in save_content_exclusion. Related: get_brand_context, search_assets, add_asset, save_content_exclusion.
    ConnectorOAuth
  • Moves a post to a new future time. A draft keeps its status; any other post goes back to review at the new time and publishes only once approved again. Pass scheduledAt for any time, or slotId and date (both, from get_calendar's open slots) to fill one posting slot occurrence: a slot is a day and a number of posts, so Mark puts the post in that day's next free position, the channel's posting time plus 3 hours per post already there, or the next minute once that has passed today, in the workspace timezone. It refuses a slot on another channel, a day before today, or a full day, so two callers can't overfill it. The same status rules apply either way. Related: get_post, get_calendar, search_posts.
    ConnectorOAuth