Agentes y MCP

Servidor MCP

@cognitiondesk/mcp le da a tu agente la plataforma entera: crear y publicar asistentes, cargar conocimiento, conectar canales, mirar el consumo. Corre con tu API key, así que puede hacer exactamente lo que esa key puede hacer.

128

tools

9

guías

5

playbooks

Instalalo local

En Claude Code, una línea:

Shell
claude mcp add cognitiondesk \
  -e COGNITIONDESK_API_KEY=YOUR_API_KEY \
  -- npx -y @cognitiondesk/mcp

En Claude Desktop, Cursor, Windsurf o cualquier otro cliente, sumalo a la config de MCP:

JSON
{
  "mcpServers": {
    "cognitiondesk": {
      "command": "npx",
      "args": ["-y", "@cognitiondesk/mcp"],
      "env": { "COGNITIONDESK_API_KEY": "YOUR_API_KEY" }
    }
  }
}

Después fijate que conecte:

Shell
$ claude mcp get cognitiondesk
cognitiondesk:
  Scope: Local config (private to you in this project)
  Status: ✔ Connected
  Type: stdio
  Command: npx
  Args: -y @cognitiondesk/mcp

"Connected" quiere decir que el server arrancó y aceptó tu key. Pedile a tu agente "listá mis asistentes de CognitionDesk" y llama a list_assistants.

La key la sacás del panel, en API keys. Sin key el server arranca igual, y cada tool contesta con un error claro en vez de fallar en silencio. API keys y scopes

O usá el server hosteado

El mismo server habla Streamable HTTP. No hay nada que instalar: tu key viaja como header en cada request, y el server no guarda ninguna key propia.

Shell
claude mcp add --transport http cognitiondesk \
  https://mcp.cognitiondesk.com/mcp \
  --header "x-api-key: YOUR_API_KEY"

También anda Authorization: Bearer <key>. Un request sin key se rechaza en initialize con 401: te enterás al configurar el cliente, no en la primera tool.

Varios clientes, un solo server

Si manejás asistentes de varios clientes, poné todas las keys en un server en vez de levantar uno por cliente:

JSON
{
  "mcpServers": {
    "cognitiondesk": {
      "command": "npx",
      "args": ["-y", "@cognitiondesk/mcp"],
      "env": {
        "COGNITIONDESK_ACCOUNTS": "{\"acme\":\"KEY_FOR_ACME\",\"globex\":\"KEY_FOR_GLOBEX\"}",
        "COGNITIONDESK_ACTIVE_ACCOUNT": "acme"
      }
    }
  }
}
  • get_connection_status lista las cuentas que tiene el server, cuál está activa y contra qué backend habla. Nunca imprime una key.
  • use_account cambia la cuenta activa para todo lo que sigue.
  • Toda tool de lectura acepta un argumento account opcional para mirar otro cliente en esa sola llamada. Las escrituras usan siempre la cuenta activa.
  • Toda respuesta arranca con account: <nombre>, así nunca leés la respuesta correcta del cliente equivocado.

El llavero existe sólo en modo local. En remoto cada request trae su propia key, y un argumento account se rechaza.

Evitá dos servers contra la misma plataforma: cada tool aparece dos veces, los dos contestan 200 y ninguno dice en qué cuenta estás.

Guías y playbooks

El server trae escritas las decisiones en las que más se equivoca la gente, para que tu agente las lea antes de tocar nada. Las guías son resources MCP; los playbooks, prompts MCP.

Guías (resources)

  • Where each thing goes: prompt, skill, tool or knowledge

    cognitiondesk://guides/donde-va-cada-cosa
  • Draft vs published: which version each channel runs

    cognitiondesk://guides/borrador-y-publicado
  • Who sees what: three systems people mix up constantly

    cognitiondesk://guides/quien-ve-que
  • The assistant's address book: people, channels, rungs and PINs

    cognitiondesk://guides/la-agenda
  • When the assistant must let go and hand off to a human

    cognitiondesk://guides/soltar-a-tiempo
  • What spends money, what has a quota, and how to find out BEFORE

    cognitiondesk://guides/costos-y-limites
  • Notes and files: three stores, and which one each thing goes to

    cognitiondesk://guides/memoria-y-archivos
  • API keys and scopes: the default set, the sensitive ones, and key hygiene

    cognitiondesk://guides/scopes-y-keys
  • Facebook Pages: connect, publish on a cadence, measure

    cognitiondesk://guides/facebook-pages

Playbooks (prompts)

  • Build a new assistant, draft-first

    assistant-nuevo — An assistant is needed for a case not covered today.

  • Add (or fix) a person on the client's team

    alguien-nuevo-en-el-equipo — A team member needs access, or someone already loaded needs a correction.

  • The assistant treats a team member like a stranger

    contesta-como-a-un-desconocido — The client says the assistant answers someone on their team poorly, too little, or "as if it did not know them".

  • Why can't I, and what would fix it

    diagnostico-de-limites — A call failed with 401/403/429, or you are about to do something in bulk and want to know if the plan holds.

  • Take an assistant live, without guessing

    poner-en-produccion — A draft assistant looks ready and the human wants it in front of customers.

Todas las tools

Generada desde el propio server, no escrita a mano: npm run tools:al-dia falla si esta tabla y @cognitiondesk/mcp se separan. Las descripciones quedan en inglés porque es lo que lee tu agente.

@cognitiondesk/mcp · Versión 0.11.1 · 128 tools

Conexión y cuentas · 4

get_connection_statusCheck the configured API key: masked identity, plan usage, and which assistants it may manage.sólo lectura
list_projectsThe organization's projects (the org → project tenancy structure).sólo lectura
list_scopesEvery permission the platform defines, in one call: agent capabilities (what an ASSISTANT may do inside a chat), API key scopes (what a PROGRAM from outside may do), and the audience rungs (guest/contact/staff/owner).sólo lectura
use_accountSwitch which account of this server's keyring every following tool call uses, until the process restarts or you switch again.

Asistentes · 12

assign_workflow_to_assistantAssign (or unassign) a workflow to an assistant.
create_assistantCreate a new assistant.
delete_assistantDelete an assistant permanently.destructiva
get_assistantGet a single assistant by id.sólo lectura
get_assistant_accessRead the audience policy of an assistant: audiencePolicy.roleLevels (which business role maps to which rung) and any access gates.sólo lectura
list_assistant_versionsPublished versions of an assistant, newest first, with which one is LIVE.sólo lectura
list_assistantsList all assistants owned by the API key.sólo lectura
publish_assistantFreeze the current draft of an assistant as an immutable version and point the LIVE bot at it.
rollback_assistantPoint the LIVE bot back at an earlier published version, instantly, without touching the draft.
set_assistant_accessReplace the audience policy of an assistant (roleLevels and gates).
try_assistantTalk to an assistant and read what it actually answers.
update_assistantPatch fields on an existing assistant.

Audiencia y derivación · 9

delete_assistant_contactStop recognising ONE identity of someone.destructiva
delete_assistant_personStop recognising a person EVERYWHERE — all their channels at once.destructiva
delete_handoff_contactRemove a handoff target.destructiva
get_identity_auditWho proved who they are, who tried and failed, and when — the assistant's identity log.sólo lectura
list_assistant_contactsWho the assistant recognises.sólo lectura
list_handoff_contactsThe humans an assistant can hand a customer off to.sólo lectura
upsert_assistant_contactRegister (or update) ONE identity of someone the assistant should recognise.
upsert_assistant_personRegister or edit a PERSON with every way they reach the assistant, in one call.
upsert_handoff_contactAdd or update a handoff target: who receives the customer when the assistant lets go, and through which channel.

Conocimiento · 13

delete_knowledge_entryRemove an entry and its chunks from the knowledge base.destructiva
estimate_knowledge_ingestPrice an ingest BEFORE doing it: estimated tokens, chunks, and whether it fits the plan's embedding quota.sólo lectura
get_knowledge_entryOne knowledge entry in full: source, training status, whether it is vectorized.sólo lectura
get_knowledge_statsHow much the assistant actually has to answer from: entries, chunks and embeddings.sólo lectura
ingest_knowledge_documentEmbed an ALREADY-UPLOADED document (by its documentId) into the knowledge base.
ingest_knowledge_githubIngest a GitHub repository into the knowledge base.
ingest_knowledge_imageIngest an image into the knowledge base: vision describes it and the description gets embedded, so the assistant can answer questions about what is IN the image.
ingest_knowledge_textWrite something into the knowledge base as text — the fastest way to fix "the assistant does not know X".
ingest_knowledge_urlPull one or more web pages into the knowledge base.
knowledge_maintenanceUnder-the-hood maintenance of the knowledge base — for diagnosing retrieval, not for everyday ingest (that is ingest_knowledge_*).
list_knowledge_entriesWhat is actually in the knowledge base, entry by entry.sólo lectura
search_knowledgeSearch what the assistant knows and has written down — the knowledge base it answers from.sólo lectura
update_knowledge_entryPatch a knowledge entry's metadata (title, description, category, tags).

Skills · 12

create_skillCreate a reusable skill.
delete_skillDelete a custom skill.destructiva
export_skillExport a skill as portable JSON — the way a skill travels between accounts (pair with import_skills).sólo lectura
get_skillOne skill in full: its prompt, the tools it carries and where it came from.sólo lectura
import_skillsImport skills from an export payload (see export_skill).
list_builtin_skillsThe platform's built-in skills — registered at startup, read-only.sólo lectura
list_skill_packsCurated skill packs: ready-made bundles for common business types (appointments, e-commerce, CRM...).sólo lectura
list_skillsEvery skill this account can put on an assistant — built-ins plus the org's own, grouped by scope (system / organization / user / imported).sólo lectura
resolve_skillsTurn a list of skillIds into what they ACTUALLY produce: the concrete tools they add and the text they append to the system prompt.sólo lectura
skill_collectionsSkill collections: named groups of skills so a whole capability set is assigned as one thing.
toggle_skillTurn a skill on or off without deleting it — the reversible way to take a behaviour out of circulation while you work out whether it was the cause of something.
update_skillEdit a custom skill.

Custom tools · 5

create_custom_toolCreate a custom tool the assistants can call.
delete_custom_toolDelete a custom tool permanently.destructiva
get_custom_toolGet one custom tool by id.sólo lectura
list_custom_toolsList the custom tools owned by the API key.sólo lectura
update_custom_toolPatch a custom tool (displayName, description, config, inputSchema, enabled, minAudience…).

Workflows · 9

create_workflowCreate a workflow (LangGraph node/edge graph).
get_workflowGet a single workflow by id.sólo lectura
get_workflow_analyticsGet run analytics for a workflow.sólo lectura
list_workflow_versionsList published versions of a workflow.sólo lectura
list_workflowsList workflows, optionally filtered by category/tags/enabled.sólo lectura
publish_workflowPublish the current draft of a workflow as an immutable version.
run_workflowRun/test a workflow with an optional input payload.
update_workflowUpdate a workflow draft (name/description/nodes/edges/category/tags — send only the fields to change).
workflow_templatesReusable workflow templates (squads are templates with kind "squad").

Agendados, reportes y loops · 7

get_reportFull report by id: signed summary plus the deterministic source it was written over (auditable).sólo lectura
list_reportsReports issued by schedules — every one carries its issue date and its author signature (kind · name · model).sólo lectura
list_schedule_runsRun history of a schedule: status, lateness (said, not hidden), what each run produced.sólo lectura
list_schedulesList scheduled tasks (schedules): status, human-readable "when", next run in the tenant timezone.sólo lectura
manage_loopsLoops: recurring autonomous work items an agent claims and reports on, iteration by iteration.
pause_schedulePause or resume an ACTIVE/PAUSED schedule.
propose_schedulePropose a scheduled task (proactivity check).

Squads · 5

cancel_wizardCancel a wizard session that is stuck or no longer wanted.
create_squadCreate a squad (a team of assistants + an orchestrator workflow) from a one-line goal.
create_squad_from_templateMaterialize a squad from an existing template — faster than create_squad when a suitable template already exists.
get_wizard_statusState of a wizard session (the guided flow behind create_squad): current step, what it already knows, what it is waiting for.sólo lectura
list_squad_templatesList reusable squad templates available to this organization.sólo lectura

Canales y widget · 6

create_web_widgetGive an assistant an embeddable web chat widget — the channel a website visitor talks through.
get_web_widgetOne web widget in full: its allowedDomains, its assistant, whether it is switched on, and its embed key.sólo lectura
list_channel_typesThe channel catalog: which channel types exist, their family, and what each one can render.sólo lectura
list_channelsEvery channel that can reach this account's assistants: connected messaging, embedded web widgets and SDK/code connections.sólo lectura
update_web_widgetEdit a live web widget — above all its allowedDomains, the list that decides whether the chat answers or returns 403.
widget_identityThe web widget's IDENTITY SECRET — lets the site that embeds the widget tell the chat, with a signature, who the visitor is (Intercom-style identity verification).

Publicación en redes · 11

connect_facebook_pageConnect a Page from list_facebook_pages → `available` (the human already authorized it in Meta).
connect_youtube_channelStart connecting a YouTube channel.
get_facebook_page_insightsFollowers and the page metrics of the last N days (views, reach, engagement, follows), summed and per day.sólo lectura
list_facebook_pagesThe Facebook Pages of this CognitionDesk account: `connected` (usable now, with their connectionId) and `available` (the human already authorized them in Meta but they are not connected yet — connect_facebook_page).sólo lectura
list_facebook_postsWhat a connected Page published (with reactions, comments, shares and permalink) and what is SCHEDULED in Meta and not out yet.sólo lectura
list_social_connectionsThe publishing accounts connected to this CognitionDesk account (YouTube channels; Facebook Pages are listed by list_facebook_pages), plus which networks can be connected from here.sólo lectura
list_youtube_videosThe latest videos of a connected YouTube channel with their privacy, upload status and views/likes/comments.sólo lectura
queue_social_piecePut ONE human-approved piece in the publishing queue (social_pieces) of a brand and network.
schedule_facebook_postPublish on a connected Page: now, SCHEDULED (scheduledAt, 10 minutes to 30 days ahead — Meta's own scheduler, it goes out even if our server is down) or as a hidden draft (published:false).
update_youtube_videoChange a video already on a connected YouTube channel: title, description, tags, privacy, thumbnail.
upload_youtube_videoUpload a video file from THIS machine to a connected YouTube channel, optionally with its thumbnail.

Agenda · 4

agenda_calendar_linkThe agenda as a calendar you subscribe to from Google Calendar, Apple Calendar or Outlook (an iCal link).
get_agendaThe key owner's agenda settings: working hours per weekday, timezone, default duration, minimum notice, how far ahead people can book, appointment types, intake fields — and whether a calendar link (iCal) is active.sólo lectura
list_agenda_appointmentsThe meetings and appointments on the key owner's agenda — who, when (UTC + the agenda's timezone), how long, status, contact details and notes.sólo lectura
update_agendaChange the key owner's agenda: working hours, timezone, default duration, minimum notice, booking window, appointment types.

Inventario · 7

get_import_statusGet the status and report of an inventory import by id ({ status, totalRows, report: { created, updated, skipped, errors } }).sólo lectura
import_inventory_itemsBulk import products/items into the inventory.
list_import_sourcesList configured inventory import sources — external product APIs (the client's own database/endpoint) connected to the inventory.sólo lectura
list_inventoryList the inventory/catalog items (products, services) owned by the API key owner.sólo lectura
list_inventory_importsImport history: every bulk import with its report (created/updated/skipped/errors).sólo lectura
seed_inventorySeed the inventory with starter items for a business type.
sync_import_sourceSync now: fetch all products from a configured external API source and import them (upsert by SKU with the source's saved mapping).

Tareas · 7

create_taskCreate a work item.
delete_taskDelete a task.destructiva
get_taskOne task in full, with its assignee and history.sólo lectura
get_tasks_analyticsTask analytics over time: creation/completion trends and distribution.sólo lectura
get_tasks_summaryDeterministic snapshot of the key owner's tasks: counts by status, overdue, due within 48h, stuck in review, and 7-day throughput.sólo lectura
list_tasksThe work items in a scope: personal, project or organization.sólo lectura
update_taskChange a task — status, priority, assignee, anything.

Memoria y archivos · 3

agent_workspaceThe user's personal workspace of notes and saved items: free-form, foldered, searchable.
assistant_filesEach assistant's PRIVATE filesystem: what that agent wrote down while working (notes, drafts, traces), organized in layers.
user_memoryThe structured memory files the platform keeps ABOUT the user (who they are, preferences, business) — what the Copilot has learned.

Campañas de email · 2

create_email_campaign_draftCreate an email campaign as a DRAFT.
list_email_campaignsEmail campaigns of the account, with status.sólo lectura

Imágenes · 1

generate_imageGenerate an image and store it in the account's media.

Cobros · 1

manage_receivablesReceivables (money owed to the account owner): summary, receivable projects, receivables and payments.

Consumo y planes · 4

check_action_permissionCheck whether the current plan allows an action before attempting it (e.g.sólo lectura
get_available_plansList available billing plans and their limits.sólo lectura
get_usageGet the current plan and usage/quota snapshot for the API key owner.sólo lectura
get_usage_analyticsGet usage analytics over a period (default 30d).sólo lectura

API keys · 6

create_api_keyCreate a new API key for the same account as the configured key.
delete_api_keyPermanently delete an API key.destructiva
get_api_key_statsGet usage stats for a single API key.sólo lectura
list_api_keysList API keys owned by the same account as the configured key.sólo lectura
revoke_api_keyDeactivate an API key (reversible via update_api_key on isActive if ever exposed — today this is one-way in the UI too).destructiva
update_api_keyRename a key or change its allowedAssistantIds.

Cuando contesta 403

La tool llegó a la plataforma y la plataforma dijo que no. Hay dos causas, y ninguna se arregla editando el asistente:

  • A la key le falta el scope. Cada tool pide uno (assistants:*, knowledge:write…). Creá una key con ese scope, o preguntale a list_scopes cuál es.
  • PLAN_REQUIRED: la cuenta está en un plan gratis. El MCP pide Pro o Business.
API keys y scopes

¿Querés exponer un solo asistente?

Cada asistente es además su propio server MCP, con sólo las tools que le diste. Es otra cosa:

Un asistente como server MCP
Servidor MCP — CognitionDesk Docs