Sume MCP first call: mcp_health must say mcp_oauth, then tools_list
After adding the Sume connector, call mcp_health and check authenticated.auth_source is mcp_oauth. Then call tools_list to see which tools your grant exposes.

The two-call check
After you add the Sume connector, the first call is mcp_health, and you should look for authenticated.auth_source equal to mcp_oauth. The second call is tools_list. If both look right, the connection, the sign-in and the scope are all working, and nothing has been spent yet.
The docs recommend this order as a first playbook because it separates three failures that otherwise look alike: a bad URL, a failed sign-in and a grant that is narrower than you meant.
How to read each result
The table lists what each outcome points to, as of 2026-10-08.
| What you see | Likely cause | Next step |
|---|---|---|
| Connector will not load | Wrong URL or blocked network | Use https://mcp.sume.com/mcp exactly |
| mcp_health ok, no mcp_oauth auth_source | Connected with an API key, or not signed in | Check how the connector authenticates |
| mcp_oauth, short tools_list | Write toggle off at consent | Reconnect with Write on if you need create tools |
| insufficient_scope on a create | Session is mcp:read only | Grant mcp:write or use an API key |
What the scopes mean here
OAuth issues mcp:read, which is required, and mcp:write, which is an opt-in toggle on the consent page. There is no mcp:paid scope. With Write off you get the read-only tools, and the write and paid tools are not listed.
An API key sent as a Bearer token or as x-api-key gives the full tool set, and then auth_source will name that path, not mcp_oauth. If you expected OAuth and see something else, an old key in your client config may be taking over.
After the check
Use tools_schema to read the argument shape of a tool before calling it. Write and paid tools need an idempotency_key; dry_run and max_spend_usd are optional guards. Call generation_admission_preview when you want to know whether a paid request would be admitted.
Keep the URL exact. Sume's production connector is https://mcp.sume.com/mcp. A host with dev in it is internal, and the Studio Agent is a separate product, not this connector.
- Call 1:
mcp_health, expectmcp_oauth. - Call 2:
tools_list, compare with the table in the docs. - Call 3:
account_meorcatalog_list, a cheap read.
Why not skip straight to creating
It is tempting to test a connector with a real generation. That puts money behind the first call and mixes three questions into one failure. A health call and a list call cost nothing and each answers one question. If you later see insufficient_scope, you will already know whether the session was OAuth and which tools it had.
Also remember that tool ids use underscores. Dotted forms are canonicalized, so either spelling resolves, but your logs will show the underscore name.
- Do not rely on a model to guess tool names; read
tools_list. - Run the check again after every reconnect, since the toggle on the consent page can change between sessions.
Keep a written record
Document the decision in the repository next to the code that makes the call, so the next engineer sees why the choice was made and which docs page it came from. Re-read that page when you upgrade a client or change a key, since gates and limits are the parts most likely to differ from what you remember.
A short note of the date you last verified the behaviour, such as 2026-10-08, is enough for a reviewer to know how fresh the claim is.
Sources
Related posts
More in Developers
- Limit an agent's paid MCP calls with script_run max_paid_calls
script_run runs a short program on the Sume side with max_calls, max_paid_calls and a 5-55 second timeout. What it can bound, and what it does not cap.
- result_ready vs terminal vs completed: gate the Sume result fetch
Poll a Sume job until terminal, fetch the result only when result_ready is true. Failed and canceled jobs answer 409 job_not_completed on /result.
- Sume run webhook retries: ten attempts span about 3 hours
Ten delivery attempts with 30-second doubling backoff capped at one hour add up to 11,010 seconds before jitter. The timeline, and what to do after exhaustion.
- Sume run webhook says OK but output is null: handle degraded
A Sume run can complete, bill you, and still have output null. Branch on outcome, not status, and read artifacts and output_error before you retry.
Written by Sume