Troubleshooting
The failures people actually hit - stalled calls, missing confirmations, empty results - and what each one means.
A tool call hangs, then times out
Almost always a long-running analysis being awaited synchronously. Evaluation and
optimization are asynchronous by design: evaluate_article and
optimize_article return a job id straight away, and the result arrives through
get_evaluation_result, polled about every 5 seconds.
If your assistant appears to be waiting on one of those directly, ask it to poll
the job instead. Campaign creation behaves the same way - poll get_campaign,
do not wait on create_ai_campaign.
The server asked me to confirm something, but no prompt appeared
Some MCP clients advertise support for the server's detailed confirmation prompts and then never show them. Rather than hang the call, the server waits 60 seconds and falls back to your client's own approval step - the one that fires for any non-read-only tool.
The practical effect: on those clients you approve the tool, not the specific change, so read what your assistant says it is about to do. Spending caps are enforced in the backend either way and do not depend on the prompt.
A write finished, but I never approved it
Check whether your client auto-approves tools. Some allow a "always allow this tool" setting that suppresses both layers of confirmation. Composway cannot detect or override that from the server side - the client is what asks you.
An evaluation result comes back shorter than the one in the app
Deliberate. A full evaluation result runs to roughly 1.8 MB, mostly per-entity suggestions, which is too large to travel over an MCP connection - clients stall rather than deliver it. Results returned through MCP are a compact digest: every field is kept except the full entity-suggestion map, which is replaced with the top 20 suggestions by quality plus a total count.
The web app still shows the complete result. If you need every entity, open the campaign in Composway.
My site has no data
Run get_connection_status before concluding anything. It reports whether Google
Search Console and Bing Webmaster Tools are actually attached and how fresh each
one is. An unattached engine reads as read: false in tool responses, which is
different from measuring zero.
Two more things that look like missing data but are not:
- Search Console history starts when the property was verified. A short backfill is usually Google's limit, not a bug.
- Bing reports position weekly only, and both engines' traffic feeds are
top-N above a certain size. Tools say so in
unsupportedInputswhen it applies to the window you asked for.
Tools behave differently than my assistant expects
The tool surface changes as the product does. get_server_status returns a
schemaVersion and a changelog; when the version differs from what your client
cached, the client should re-run discovery and rebuild its tool arguments.
get_tool_manifest gives a hash per tool schema for the same purpose.
The server emits a tools/list_changed notification when it notices a live
session on an old version, but a client that ignores it can keep calling an old
shape. Reconnecting the server clears it.
Everything fails as unauthenticated
Your session could not be refreshed - revoked, or lapsed after a long idle period. Remove and re-add the server in your client and sign in again. See Authentication.