The askConcord tool: hold a conversation with the Concord agent from your client.
askConcord sends a message to the Concord agent and returns its answer. It is the tool your client will use for almost everything: questions about delivery and performance, campaign changes, reports, media plans.
MCP has no session, so continuity is an explicit handle. The first call returns a chatId; passing it back continues that conversation with its full context, which is the only way to give Concord follow-up context. A call without chatId always starts a fresh conversation.
askConcord({ message: "How is the Q3 Retail campaign pacing on Google DV360?" }) → { chatId: "4f2c…", status: "answered", answer: "…" }askConcord({ chatId: "4f2c…", message: "Shift 20% of its budget to the video line item." }) → { chatId: "4f2c…", status: "answered", answer: "…" }
Conversations started over MCP do not appear in the chat list of the web app. They run the same agent, with the same Skills, as a web conversation. You can still open one by its chatId at https://app.concord.ad/chats/<chatId>.
A call is answered on a server-sent events stream with keep-alives, so a slow turn holds the connection open. Send Accept: application/json, text/event-stream: without it the answer comes back as a single JSON response after up to four minutes of silence, and proxies may drop the connection. The answer is still recoverable by collecting.Closing the stream cancels the turn that call started. The step in flight finishes first. Collecting, or a call that attached to a turn already running, cancels nothing.
An agent turn can take minutes. When a call returns timeout, the turn is still running. To get its answer, call askConcord with the chatId and no message:
askConcord({ chatId: "4f2c…" }) → waits for the running turn, then returns its answer
This is called collecting. It sends nothing, so it is safe to repeat as often as needed.
Do not re-send the message to recover a slow answer. As soon as the first turn finishes, the re-sent message runs the instruction a second time. For an instruction that prepares platform actions, that means preparing them twice.
If a request needs your approval, or Concord has a question before it can proceed, the turn waits for you in Concord rather than answering through MCP. The call returns timeout.Open the conversation at https://app.concord.ad/chats/<chatId> to approve the action or answer the question, then collect the answer from your client.Concord asks fewer questions when a request is complete: name the platform, the campaign, the budget, and the dates.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Concord docs","colors":{"primary":"#4B5FE2","light":"#7484EA","dark":"#3546BC"},"logo":{"light":"https://mintcdn.com/concord-ace9e78f/o8sIylheyf-zCcxf/logo/light.svg?fit=max\u0026auto=format\u0026n=o8sIylheyf-zCcxf\u0026q=85\u0026s=7b01813d8ad6d9237151a51c1a0a1821","dark":"https://mintcdn.com/concord-ace9e78f/o8sIylheyf-zCcxf/logo/dark.svg?fit=max\u0026auto=format\u0026n=o8sIylheyf-zCcxf\u0026q=85\u0026s=ec951f7599aaf470a941e74e6eb46ffb"},"favicon":"https://mintcdn.com/concord-ace9e78f/o8sIylheyf-zCcxf/favicon.png?fit=max\u0026auto=format\u0026n=o8sIylheyf-zCcxf\u0026q=85\u0026s=a5518fa3619cb1f5720cc28c5d381583","background":{"color":{"light":"#FDFDFB","dark":"#1A1A19"}},"navbar":{"links":[{"href":"mailto:support@concord.ad","label":"Support"}],"primary":{"type":"button","label":"Open Concord","href":"https://app.concord.ad"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/concordad"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"concord-ace9e78f","hasAudioNarration":false,"actualSubdomain":"concord-ace9e78f","customDomains":["docs.concord.ad"],"gitSource":{"type":"github","owner":"concord-app","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af317dd9262811844556814","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Features","count":38},{"language":"default","tag":"Connectors","count":18},{"language":"default","tag":"Introduction","count":9},{"language":"default","tag":"Developers","count":5},{"language":"default","tag":"MCP server","count":5},{"language":"default","tag":"Platform Actions","count":5},{"language":"default","tag":"Settings","count":5},{"language":"default","tag":"Conversations","count":4},{"language":"default","tag":"Getting started","count":4},{"language":"default","tag":"Organization","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"developers/mcp/ask-concord","slug":"/developers/mcp/ask-concord","pageMetadata":{"title":"Ask Concord","description":"The askConcord tool: hold a conversation with the Concord agent from your client.","icon":"comments","href":"/developers/mcp/ask-concord"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The askConcord tool: hold a conversation with the Concord agent from your client.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`askConcord`}),` sends a message to the Concord agent and returns its answer. It is the tool your client will use for almost everything: questions about delivery and performance, campaign changes, reports, media plans.`]}),`\n`,_jsx(Heading,{level:`2`,id:`arguments`,children:`Arguments`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`message`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`The question or instruction. Optional only when collecting a pending answer (see below).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`chatId`})}),_jsx(_components.td,{children:`UUID`}),_jsx(_components.td,{children:`Conversation to continue, from an earlier result. Omit to start a new one.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`result`,children:`Result`}),`\n`,_jsxs(_components.p,{children:[`The answer comes back as text, with the same fields in `,_jsx(_components.code,{children:`structuredContent`}),` for clients that read it:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"chatId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"4f2c1a9e-…\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"answer\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"The Q3 Retail campaign is pacing at 92% …\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"answered\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`conversations`,children:`Conversations`}),`\n`,_jsxs(_components.p,{children:[`MCP has no session, so continuity is an explicit handle. The first call returns a `,_jsx(_components.code,{children:`chatId`}),`; passing it back continues that conversation with its full context, which is the only way to give Concord follow-up context. A call without `,_jsx(_components.code,{children:`chatId`}),` always starts a fresh conversation.`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`askConcord({ message: \"How is the Q3 Retail campaign pacing on Google DV360?\" })`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` → { chatId: \"4f2c…\", status: \"answered\", answer: \"…\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`askConcord({ chatId: \"4f2c…\", message: \"Shift 20% of its budget to the video line item.\" })`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` → { chatId: \"4f2c…\", status: \"answered\", answer: \"…\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Conversations started over MCP do not appear in the chat list of the web app. They run the same agent, with the same Skills, as a web conversation. You can still open one by its `,_jsx(_components.code,{children:`chatId`}),` at `,_jsx(_components.code,{children:`https://app.concord.ad/chats/\u003cchatId>`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`statuses`,children:`Statuses`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Meaning`}),_jsx(_components.th,{children:`What to do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`answered`})}),_jsx(_components.td,{children:`The message was delivered and this is its answer.`}),_jsx(_components.td,{children:`Nothing.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`timeout`})}),_jsx(_components.td,{children:`Concord is still working after about four minutes.`}),_jsxs(_components.td,{children:[`Collect: call again with `,_jsx(_components.code,{children:`chatId`}),` alone.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`answered_previous`})}),_jsxs(_components.td,{children:[`A turn was already running on this conversation, so your message was `,_jsx(_components.strong,{children:`not`}),` delivered. This is that turn’s answer.`]}),_jsx(_components.td,{children:`Send your message again now.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`busy`})}),_jsx(_components.td,{children:`Another request was starting a turn on this conversation and your message was not delivered.`}),_jsxs(_components.td,{children:[`Retry with the same `,_jsx(_components.code,{children:`chatId`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`no_answer`})}),_jsx(_components.td,{children:`The turn ended without a reply.`}),_jsx(_components.td,{children:`Send the message again.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`unknown_chat`})}),_jsxs(_components.td,{children:[`The `,_jsx(_components.code,{children:`chatId`}),` is not an MCP conversation you take part in.`]}),_jsx(_components.td,{children:`Check the id, or start a new conversation.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`timeout`}),`, `,_jsx(_components.code,{children:`busy`}),`, `,_jsx(_components.code,{children:`no_answer`}),`, and `,_jsx(_components.code,{children:`unknown_chat`}),` are returned with `,_jsx(_components.code,{children:`isError: true`}),`, so the calling model can correct itself.`]}),`\n`,_jsx(Heading,{level:`2`,id:`streaming-and-cancellation`,children:`Streaming and cancellation`}),`\n`,_jsxs(_components.p,{children:[`A call is answered on a server-sent events stream with keep-alives, so a slow turn holds the connection open. Send `,_jsx(_components.code,{children:`Accept: application/json, text/event-stream`}),`: without it the answer comes back as a single JSON response after up to four minutes of silence, and proxies may drop the connection. The answer is still recoverable by collecting.`]}),`\n`,_jsx(_components.p,{children:`Closing the stream cancels the turn that call started. The step in flight finishes first. Collecting, or a call that attached to a turn already running, cancels nothing.`}),`\n`,_jsx(Heading,{level:`2`,id:`recovering-a-slow-answer`,children:`Recovering a slow answer`}),`\n`,_jsxs(_components.p,{children:[`An agent turn can take minutes. When a call returns `,_jsx(_components.code,{children:`timeout`}),`, the turn is still running. To get its answer, call `,_jsx(_components.code,{children:`askConcord`}),` with the `,_jsx(_components.code,{children:`chatId`}),` and `,_jsx(_components.strong,{children:`no message`}),`:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`askConcord({ chatId: \"4f2c…\" })`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` → waits for the running turn, then returns its answer`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`This is called collecting. It sends nothing, so it is safe to repeat as often as needed.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Do not re-send the message to recover a slow answer. As soon as the first turn finishes, the re-sent message runs the instruction a second time. For an instruction that prepares platform actions, that means preparing them twice.`})}),`\n`,_jsx(Heading,{level:`2`,id:`when-concord-needs-you`,children:`When Concord needs you`}),`\n`,_jsxs(_components.p,{children:[`If a request needs your approval, or Concord has a question before it can proceed, the turn waits for you in Concord rather than answering through MCP. The call returns `,_jsx(_components.code,{children:`timeout`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Open the conversation at `,_jsx(_components.code,{children:`https://app.concord.ad/chats/\u003cchatId>`}),` to approve the action or answer the question, then collect the answer from your client.`]}),`\n`,_jsx(_components.p,{children:`Concord asks fewer questions when a request is complete: name the platform, the campaign, the budget, and the dates.`}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/developers/mcp/uploading-files`,children:`Upload files`}),` · `,_jsx(_components.a,{href:`/features/platform-actions/platform-actions-overview`,children:`Platform actions`}),` · `,_jsx(_components.a,{href:`/features/chat/working-in-conversations`,children:`Working in conversations`})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Ask Concord","description":"The askConcord tool: hold a conversation with the Concord agent from your client.","icon":"comments","href":"/developers/mcp/ask-concord"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Arguments","slug":"arguments","depth":2,"children":[]},{"title":"Result","slug":"result","depth":2,"children":[]},{"title":"Conversations","slug":"conversations","depth":2,"children":[]},{"title":"Statuses","slug":"statuses","depth":2,"children":[]},{"title":"Streaming and cancellation","slug":"streaming-and-cancellation","depth":2,"children":[]},{"title":"Recovering a slow answer","slug":"recovering-a-slow-answer","depth":2,"children":[]},{"title":"When Concord needs you","slug":"when-concord-needs-you","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"concord-ace9e78f","siteName":"Concord docs","title":"Ask Concord - Concord docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-19T13:07:10.470Z","originalFileLocation":"developers/mcp/ask-concord.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The askConcord tool: hold a conversation with the Concord agent from your client.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Concord docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/concord-ace9e78f/UaxNjUzFVw8qYl28/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/concord-ace9e78f/UaxNjUzFVw8qYl28/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/concord-ace9e78f/UaxNjUzFVw8qYl28/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/concord-ace9e78f/UaxNjUzFVw8qYl28/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/concord-ace9e78f/UaxNjUzFVw8qYl28/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/concord-ace9e78f/UaxNjUzFVw8qYl28/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/concord-ace9e78f/UaxNjUzFVw8qYl28/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/concord-ace9e78f/UaxNjUzFVw8qYl28/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/concord-ace9e78f/UaxNjUzFVw8qYl28/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Ask Concord - Concord docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"The askConcord tool: hold a conversation with the Concord agent from your client.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Concord docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.concord.ad/developers/mcp/ask-concord\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://concord-ace9e78f.mintlify.site/_mintlify/api/og/v2?division=MCP+server\u0026amp;title=Ask+Concord\u0026amp;description=The+askConcord+tool%3A+hold+a+conversation+with+the+Concord+agent+from+your+client.\u0026amp;theme=fe3869bf9f1c55df339fac71\u0026amp;signature=8b06c2691da0424a2d6d3e5745eadb385056f86e49c36b8d23b109c17ee7a44e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Ask Concord - Concord docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The askConcord tool: hold a conversation with the Concord agent from your client.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://concord-ace9e78f.mintlify.site/_mintlify/api/og/v2?division=MCP+server\u0026amp;title=Ask+Concord\u0026amp;description=The+askConcord+tool%3A+hold+a+conversation+with+the+Concord+agent+from+your+client.\u0026amp;theme=fe3869bf9f1c55df339fac71\u0026amp;signature=8b06c2691da0424a2d6d3e5745eadb385056f86e49c36b8d23b109c17ee7a44e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/concord-ace9e78f/UaxNjUzFVw8qYl28/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Concord docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4B5FE2\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.concord.ad/developers/mcp/ask-concord\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/developers/mcp/ask-concord.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.concord.ad/#organization\",\"name\":\"Concord docs\",\"url\":\"https://docs.concord.ad\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/concord-ace9e78f/o8sIylheyf-zCcxf/logo/light.svg?fit=max\u0026auto=format\u0026n=o8sIylheyf-zCcxf\u0026q=85\u0026s=7b01813d8ad6d9237151a51c1a0a1821\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.concord.ad#website\",\"name\":\"Concord docs\",\"url\":\"https://docs.concord.ad\",\"publisher\":{\"@id\":\"https://docs.concord.ad/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.concord.ad/developers/mcp/ask-concord#webpage\",\"url\":\"https://docs.concord.ad/developers/mcp/ask-concord\",\"name\":\"Ask Concord\",\"description\":\"The askConcord tool: hold a conversation with the Concord agent from your client.\",\"dateModified\":\"2026-10-19T13:07:10.470Z\",\"isPartOf\":{\"@id\":\"https://docs.concord.ad#website\"},\"breadcrumb\":{\"@id\":\"https://docs.concord.ad/developers/mcp/ask-concord#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.concord.ad/developers/mcp/ask-concord#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"MCP server\",\"item\":\"https://docs.concord.ad/developers/mcp/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ask Concord\",\"item\":\"https://docs.concord.ad/developers/mcp/ask-concord\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.concord.ad/developers/mcp/ask-concord#article\",\"headline\":\"Ask Concord\",\"name\":\"Ask Concord\",\"description\":\"The askConcord tool: hold a conversation with the Concord agent from your client.\",\"url\":\"https://docs.concord.ad/developers/mcp/ask-concord\",\"mainEntityOfPage\":{\"@id\":\"https://docs.concord.ad/developers/mcp/ask-concord#webpage\"},\"dateModified\":\"2026-10-19T13:07:10.470Z\",\"publisher\":{\"@id\":\"https://docs.concord.ad/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.concord.ad#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Concord docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Concord docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/developers/mcp/ask-concord.md","siteName":"Concord docs","nav":{"global":null,"tabs":[{"tab":"Introduction","pages":[{"title":"Introduction","href":"/introduction"}]},{"tab":"Features","pages":[{"title":"Features","href":"/features/chat/working-in-conversations"}]},{"tab":"Connectors","pages":[{"title":"Connectors","href":"/integrations/integrations-overview"}]},{"tab":"Settings","pages":[{"title":"Settings","href":"/settings/collaborators"}]},{"tab":"Developers","groups":[{"group":"MCP server","pages":[{"title":"Concord MCP server","icon":"plug-circle-bolt","href":"/developers/mcp/overview"},{"title":"Connecting a client","description":"Point your MCP client at Concord, sign in, and approve the connection.","icon":"link","href":"/developers/mcp/connecting"},{"title":"Ask Concord","icon":"comments","href":"/developers/mcp/ask-concord"},{"title":"Uploading files","description":"Hand Concord a brief, a media plan, or a creative with prepareUpload and attachUpload.","icon":"file-arrow-up","href":"/developers/mcp/uploading-files"},{"title":"Limitations and troubleshooting","icon":"triangle-exclamation","href":"/developers/mcp/limitations"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Ask Concord - Concord docs","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":[],"chunks":[]}