AI-agents (MCP)
Toolsets en tools
Hoe de AmICited MCP-server meer dan 300 tools beschikbaar stelt zonder de context van je agent te overspoelen: een kleine aangekondigde set, vier metatools om de rest te vinden en uit te voeren en twaalf toolsets.
De AmICited MCP-server registreert meer dan 300 tools, één voor alles wat het dashboard kan. Al die definities bij elk verzoek aan een model geven zou een groot deel van zijn context opgebruiken voordat het werk begint, en modellen kiezen slechter uit een heel lange lijst. Daarom maakt de server ze stapsgewijs bekend: je client ziet een korte lijst en de agent zoekt de rest op wanneer hij ze nodig heeft.
Je hoeft hier niets van te beheren. Agents volgen het patroon zelf, geleid door de instructies van de server en de skill using-amicited. Deze pagina legt uit wat ze doen, zodat je een transcript kunt lezen of het oppervlak bewust kunt verkleinen.
Wat je client ziet#
tools/list kondigt een kleine, vaste set aan:
| Tool | Waarvoor |
|---|---|
list_domains | De domeinen in de workspace, met de id’s die elke andere tool nodig heeft |
list_prompts | Gevolgde prompts voor een domein |
list_competitors | Gevolgde concurrenten voor een domein |
list_tags | Prompttags voor een domein |
prompt_analytics | De kerngetallen voor AI-zichtbaarheid |
report_link | Een werkende link naar elk rapport of elke instellingenpagina in de app |
list_toolsets | De twaalf productgebieden, één regel elk, met aantallen tools |
search_tools | Vind een tool op wat je wilt doen |
describe_tool | Lees het volledige invoerschema van één tool |
read_tool | Voer een alleen-lezentool uit op naam |
run_tool | Voer elke tool uit op naam, inclusief schrijfacties en tools die credits verbruiken |
Omdat deze lijst tijdens een gesprek nooit verandert, blijft de promptcache van de client geldig, waardoor lange sessies snel en goedkoop blijven.
Vinden, inspecteren, uitvoeren#
Elke andere tool bereik je in drie stappen:
search_tools {"query": "which prompts cite competitors but not us"}
describe_tool {"name": "seo_get_citation_gap_invisible_winners"}
read_tool {"name": "seo_get_citation_gap_invisible_winners", "arguments": {...}}search_toolsrangschikt tools op naam, beschrijving en toolset. Het werkt het best met de vraag in gewone woorden (“is the site down”, “customer lifetime value”) in plaats van een half onthouden naam. Geeftoolsetmee met een lege query om één gebied te doorbladeren en verhoogoffsetom door een groot gebied te pagineren.describe_toolgeeft het echte argumentschema en het soort van de tool terug. Agents zouden het altijd moeten aanroepen voordat ze een tool uitvoeren, omdat sommige tools platte argumenten nemen en andere een genestquery-object.read_toolvoert tools uit waarvan het soortreadis: gratis, herhaalbare leesacties op je eigen data. Het weigert al het andere, en daarom is het gemarkeerd als alleen-lezen en kunnen voorzichtige clients (bijvoorbeeld Codex met goedkeuringen uitgeschakeld) het gebruiken zonder te stoppen om te vragen.run_toolvoert alles uit, inclusief de andere drie soorten:
| Soort | Betekenis |
|---|---|
read | Leest je workspacedata. Gratis. |
external | Roept een API van een derde partij aan (Google, Bing, Meta, OpenAI, dataproviders) of kost credits |
write | Maakt of bewerkt workspacedata. Vereist de scope amicited:write |
destructive | Verwijdert data, of start en stopt echte advertentie-uitgaven |
Een tool die niet wordt aangekondigd, is niet minder beschermd. Elke tool controleert zelf rechten, abonnementslimieten en credits, en run_tool past de eigen schrijfcontrole van de doeltool toe, dus een token met alleen leesrechten kan er geen schrijfactie mee bereiken.
De twaalf toolsets#
Elke tool hoort bij precies één toolset. Agents gebruiken ze om te bepalen waar ze zoeken en jij kunt ze gebruiken om een gebied vast te zetten (zie hieronder).
| Toolset | Wat het dekt | Voorbeeldtools |
|---|---|---|
domains | Domeinen, concurrenten en tags: de id’s die elke andere toolset nodig heeft | list_domains, create_competitor, create_tag |
prompts | Gevolgde prompts en hun antwoorden: aanmaken, plannen, antwoorden lezen, fan-outs, dekking | create_prompts_bulk, list_prompt_responses, prompt_query_fanouts, get_prompt_coverage |
visibility | Waar het domein opduikt in AI-antwoorden: metrics in de tijd, aangehaalde bronnen, Share of Voice, semantische kaarten | get_dashboard_metrics, get_prompt_detail, get_citations_timeseries, list_top_cited_domains |
organic_search | Google Search Console en Bing Webmaster Tools: queries, pagina’s, indexdekking, sitemaps, URL-indiening | gsc_get_queries, gsc_inspect_url, bing_wmt_get_pages, indexnow_submit |
paid_ads | Rapportage van Google Ads, Microsoft Ads, Meta en LinkedIn: uitgaven, campagnes, zoekwoorden, zoektermen, echte ROAS | google_ppc_get_search_terms, bing_ppc_get_campaigns, meta_profit_true_roas, linkedin_performance |
chatgpt_ads | ChatGPT Ads: prestaties lezen en campagnes, advertentiegroepen, creatives en conversietracking maken of bewerken | ads_get_insights, ads_list_campaigns, ads_create_campaign |
seo_reports | In het warehouse gebouwde organische analyse: movers, striking distance, CTR- en bronvermeldingskloven, kannibalisatie, index bloat | seo_get_striking_distance, seo_get_citation_gap_invisible_winners, seo_get_cannibalization_queries |
eshop | Ecommerce-analytics: omzet en marge, producten, klanten, cohorten en LTV, segmenten, kosteninvoer | eshop_get_kpis, eshop_get_products, eshop_get_ltv, eshop_get_cost_mix |
uptime | Monitors, heartbeats, incidenten, SLA-rapporten, onderhoudsvensters, statuspagina’s | uptime_list_monitors, uptime_sla_report, heartbeat_create, status_page_create |
content | AI-artikelen, annotaties en interne linkregels voor een gekoppelde webshop | article_generate, annotation_create, link_building_list_rules |
audits | Sitegezondheid voor AI-agents: agenttoegankelijkheid, llms.txt-review, Web Vitals, actualiteit, site-audit, backlinks | get_agent_accessibility, llms_txt_get_comparison, get_web_vitals, backlinks_list |
workspace | Gekoppelde dataplatforms, synchronisatiestatus, imports en de meldingeninbox | platform_list_domain_connections, platform_get_sync_status, inbox_list_entries |
Toolnamen hebben een prefix per gebied (gsc_, bing_wmt_, google_ppc_, meta_, eshop_, uptime_, ads_), waardoor transcripts makkelijk te scannen zijn.
Toolsets vastzetten met ?toolsets=#
Sommige clients gaan slecht om met een geneste run_tool-aanroep, en soms wil je een smalle agent die maar één gebied ziet. Voeg een queryparameter toe aan de verbindings-URL:
https://api.flowhunt.io/mcp/amicited?toolsets=eshop,uptime
https://api.flowhunt.io/mcp/amicited?toolsets=allDe genoemde toolsets worden dan native aangekondigd in tools/list, naast de kernset. all kondigt alles aan, waardoor de contextbesparing verloren gaat, dus gebruik het alleen met clients die zelf tools zoeken. Onbekende namen worden genegeerd in plaats van geweigerd, dus controleer de spelling als een gebied niet verschijnt. De selectie ligt vast voor de levensduur van de verbinding; geen enkele tool kan hem midden in een gesprek verbreden.
Pagina’s, velden en limieten#
- Pagina’s van 25 rijen. Elke tool die een lijst rijen teruggeeft, geeft er standaard 25 terug, tot maximaal 500 per aanroep. Als er meer rijen bestaan, bevat het antwoord een
paging-blok methas_moreen de waarde om bij de volgende aanroep mee te geven (een native offset of pagina, of eennext_cursor). fields. Tools die één lijst rijen teruggeven, accepteren eenfields-array om alleen de kolommen terug te geven die je nodig hebt. Een kolom die de rijen niet hebben, wordt geweigerd, niet genegeerd.- Geen workspace-argument. De workspace ligt vast door je referentie, dus geen enkele tool accepteert een workspace-id. Vrijwel elke tool heeft wel een
domain_iduitlist_domainsnodig. - Uurlijkse limiet. Toolaanroepen worden per workspace per uur geteld (zie koppelen). Tools opsommen en skills lezen zijn gratis; een verborgen tool die via
read_toolofrun_toolwordt bereikt, telt één keer.