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:
claude mcp add cognitiondesk \
-e COGNITIONDESK_API_KEY=YOUR_API_KEY \
-- npx -y @cognitiondesk/mcpEn Claude Desktop, Cursor, Windsurf o cualquier otro cliente, sumalo a la config de MCP:
{
"mcpServers": {
"cognitiondesk": {
"command": "npx",
"args": ["-y", "@cognitiondesk/mcp"],
"env": { "COGNITIONDESK_API_KEY": "YOUR_API_KEY" }
}
}
}Después fijate que conecte:
$ 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.
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:
{
"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-cosaDraft vs published: which version each channel runs
cognitiondesk://guides/borrador-y-publicadoWho sees what: three systems people mix up constantly
cognitiondesk://guides/quien-ve-queThe assistant's address book: people, channels, rungs and PINs
cognitiondesk://guides/la-agendaWhen the assistant must let go and hand off to a human
cognitiondesk://guides/soltar-a-tiempoWhat spends money, what has a quota, and how to find out BEFORE
cognitiondesk://guides/costos-y-limitesNotes and files: three stores, and which one each thing goes to
cognitiondesk://guides/memoria-y-archivosAPI keys and scopes: the default set, the sensitive ones, and key hygiene
cognitiondesk://guides/scopes-y-keysFacebook 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_status | Check the configured API key: masked identity, plan usage, and which assistants it may manage.sólo lectura |
list_projects | The organization's projects (the org → project tenancy structure).sólo lectura |
list_scopes | Every 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_account | Switch 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_assistant | Assign (or unassign) a workflow to an assistant. |
create_assistant | Create a new assistant. |
delete_assistant | Delete an assistant permanently.destructiva |
get_assistant | Get a single assistant by id.sólo lectura |
get_assistant_access | Read the audience policy of an assistant: audiencePolicy.roleLevels (which business role maps to which rung) and any access gates.sólo lectura |
list_assistant_versions | Published versions of an assistant, newest first, with which one is LIVE.sólo lectura |
list_assistants | List all assistants owned by the API key.sólo lectura |
publish_assistant | Freeze the current draft of an assistant as an immutable version and point the LIVE bot at it. |
rollback_assistant | Point the LIVE bot back at an earlier published version, instantly, without touching the draft. |
set_assistant_access | Replace the audience policy of an assistant (roleLevels and gates). |
try_assistant | Talk to an assistant and read what it actually answers. |
update_assistant | Patch fields on an existing assistant. |
Audiencia y derivación · 9
delete_assistant_contact | Stop recognising ONE identity of someone.destructiva |
delete_assistant_person | Stop recognising a person EVERYWHERE — all their channels at once.destructiva |
delete_handoff_contact | Remove a handoff target.destructiva |
get_identity_audit | Who proved who they are, who tried and failed, and when — the assistant's identity log.sólo lectura |
list_assistant_contacts | Who the assistant recognises.sólo lectura |
list_handoff_contacts | The humans an assistant can hand a customer off to.sólo lectura |
upsert_assistant_contact | Register (or update) ONE identity of someone the assistant should recognise. |
upsert_assistant_person | Register or edit a PERSON with every way they reach the assistant, in one call. |
upsert_handoff_contact | Add or update a handoff target: who receives the customer when the assistant lets go, and through which channel. |
Conocimiento · 13
delete_knowledge_entry | Remove an entry and its chunks from the knowledge base.destructiva |
estimate_knowledge_ingest | Price an ingest BEFORE doing it: estimated tokens, chunks, and whether it fits the plan's embedding quota.sólo lectura |
get_knowledge_entry | One knowledge entry in full: source, training status, whether it is vectorized.sólo lectura |
get_knowledge_stats | How much the assistant actually has to answer from: entries, chunks and embeddings.sólo lectura |
ingest_knowledge_document | Embed an ALREADY-UPLOADED document (by its documentId) into the knowledge base. |
ingest_knowledge_github | Ingest a GitHub repository into the knowledge base. |
ingest_knowledge_image | Ingest 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_text | Write something into the knowledge base as text — the fastest way to fix "the assistant does not know X". |
ingest_knowledge_url | Pull one or more web pages into the knowledge base. |
knowledge_maintenance | Under-the-hood maintenance of the knowledge base — for diagnosing retrieval, not for everyday ingest (that is ingest_knowledge_*). |
list_knowledge_entries | What is actually in the knowledge base, entry by entry.sólo lectura |
search_knowledge | Search what the assistant knows and has written down — the knowledge base it answers from.sólo lectura |
update_knowledge_entry | Patch a knowledge entry's metadata (title, description, category, tags). |
Skills · 12
create_skill | Create a reusable skill. |
delete_skill | Delete a custom skill.destructiva |
export_skill | Export a skill as portable JSON — the way a skill travels between accounts (pair with import_skills).sólo lectura |
get_skill | One skill in full: its prompt, the tools it carries and where it came from.sólo lectura |
import_skills | Import skills from an export payload (see export_skill). |
list_builtin_skills | The platform's built-in skills — registered at startup, read-only.sólo lectura |
list_skill_packs | Curated skill packs: ready-made bundles for common business types (appointments, e-commerce, CRM...).sólo lectura |
list_skills | Every 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_skills | Turn 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_collections | Skill collections: named groups of skills so a whole capability set is assigned as one thing. |
toggle_skill | Turn 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_skill | Edit a custom skill. |
Custom tools · 5
create_custom_tool | Create a custom tool the assistants can call. |
delete_custom_tool | Delete a custom tool permanently.destructiva |
get_custom_tool | Get one custom tool by id.sólo lectura |
list_custom_tools | List the custom tools owned by the API key.sólo lectura |
update_custom_tool | Patch a custom tool (displayName, description, config, inputSchema, enabled, minAudience…). |
Workflows · 9
create_workflow | Create a workflow (LangGraph node/edge graph). |
get_workflow | Get a single workflow by id.sólo lectura |
get_workflow_analytics | Get run analytics for a workflow.sólo lectura |
list_workflow_versions | List published versions of a workflow.sólo lectura |
list_workflows | List workflows, optionally filtered by category/tags/enabled.sólo lectura |
publish_workflow | Publish the current draft of a workflow as an immutable version. |
run_workflow | Run/test a workflow with an optional input payload. |
update_workflow | Update a workflow draft (name/description/nodes/edges/category/tags — send only the fields to change). |
workflow_templates | Reusable workflow templates (squads are templates with kind "squad"). |
Agendados, reportes y loops · 7
get_report | Full report by id: signed summary plus the deterministic source it was written over (auditable).sólo lectura |
list_reports | Reports issued by schedules — every one carries its issue date and its author signature (kind · name · model).sólo lectura |
list_schedule_runs | Run history of a schedule: status, lateness (said, not hidden), what each run produced.sólo lectura |
list_schedules | List scheduled tasks (schedules): status, human-readable "when", next run in the tenant timezone.sólo lectura |
manage_loops | Loops: recurring autonomous work items an agent claims and reports on, iteration by iteration. |
pause_schedule | Pause or resume an ACTIVE/PAUSED schedule. |
propose_schedule | Propose a scheduled task (proactivity check). |
Squads · 5
cancel_wizard | Cancel a wizard session that is stuck or no longer wanted. |
create_squad | Create a squad (a team of assistants + an orchestrator workflow) from a one-line goal. |
create_squad_from_template | Materialize a squad from an existing template — faster than create_squad when a suitable template already exists. |
get_wizard_status | State 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_templates | List reusable squad templates available to this organization.sólo lectura |
Canales y widget · 6
create_web_widget | Give an assistant an embeddable web chat widget — the channel a website visitor talks through. |
get_web_widget | One web widget in full: its allowedDomains, its assistant, whether it is switched on, and its embed key.sólo lectura |
list_channel_types | The channel catalog: which channel types exist, their family, and what each one can render.sólo lectura |
list_channels | Every channel that can reach this account's assistants: connected messaging, embedded web widgets and SDK/code connections.sólo lectura |
update_web_widget | Edit a live web widget — above all its allowedDomains, the list that decides whether the chat answers or returns 403. |
widget_identity | The 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_page | Connect a Page from list_facebook_pages → `available` (the human already authorized it in Meta). |
connect_youtube_channel | Start connecting a YouTube channel. |
get_facebook_page_insights | Followers and the page metrics of the last N days (views, reach, engagement, follows), summed and per day.sólo lectura |
list_facebook_pages | The 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_posts | What 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_connections | The 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_videos | The latest videos of a connected YouTube channel with their privacy, upload status and views/likes/comments.sólo lectura |
queue_social_piece | Put ONE human-approved piece in the publishing queue (social_pieces) of a brand and network. |
schedule_facebook_post | Publish 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_video | Change a video already on a connected YouTube channel: title, description, tags, privacy, thumbnail. |
upload_youtube_video | Upload a video file from THIS machine to a connected YouTube channel, optionally with its thumbnail. |
Agenda · 4
agenda_calendar_link | The agenda as a calendar you subscribe to from Google Calendar, Apple Calendar or Outlook (an iCal link). |
get_agenda | The 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_appointments | The 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_agenda | Change the key owner's agenda: working hours, timezone, default duration, minimum notice, booking window, appointment types. |
Inventario · 7
get_import_status | Get the status and report of an inventory import by id ({ status, totalRows, report: { created, updated, skipped, errors } }).sólo lectura |
import_inventory_items | Bulk import products/items into the inventory. |
list_import_sources | List configured inventory import sources — external product APIs (the client's own database/endpoint) connected to the inventory.sólo lectura |
list_inventory | List the inventory/catalog items (products, services) owned by the API key owner.sólo lectura |
list_inventory_imports | Import history: every bulk import with its report (created/updated/skipped/errors).sólo lectura |
seed_inventory | Seed the inventory with starter items for a business type. |
sync_import_source | Sync 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_task | Create a work item. |
delete_task | Delete a task.destructiva |
get_task | One task in full, with its assignee and history.sólo lectura |
get_tasks_analytics | Task analytics over time: creation/completion trends and distribution.sólo lectura |
get_tasks_summary | Deterministic 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_tasks | The work items in a scope: personal, project or organization.sólo lectura |
update_task | Change a task — status, priority, assignee, anything. |
Memoria y archivos · 3
agent_workspace | The user's personal workspace of notes and saved items: free-form, foldered, searchable. |
assistant_files | Each assistant's PRIVATE filesystem: what that agent wrote down while working (notes, drafts, traces), organized in layers. |
user_memory | The 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_draft | Create an email campaign as a DRAFT. |
list_email_campaigns | Email campaigns of the account, with status.sólo lectura |
Imágenes · 1
generate_image | Generate an image and store it in the account's media. |
Cobros · 1
manage_receivables | Receivables (money owed to the account owner): summary, receivable projects, receivables and payments. |
Consumo y planes · 4
check_action_permission | Check whether the current plan allows an action before attempting it (e.g.sólo lectura |
get_available_plans | List available billing plans and their limits.sólo lectura |
get_usage | Get the current plan and usage/quota snapshot for the API key owner.sólo lectura |
get_usage_analytics | Get usage analytics over a period (default 30d).sólo lectura |
API keys · 6
create_api_key | Create a new API key for the same account as the configured key. |
delete_api_key | Permanently delete an API key.destructiva |
get_api_key_stats | Get usage stats for a single API key.sólo lectura |
list_api_keys | List API keys owned by the same account as the configured key.sólo lectura |
revoke_api_key | Deactivate 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_key | Rename 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.
¿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