MCP tool name with a dot or underscore: tools.list vs tools_list
Sume MCP tool ids use underscores; a dotted alias such as tools.list is canonicalized on call. Retired aliases map to generate_image and generate_video.

Use the underscore name. Sume's live hosted tool ids are underscore names such as tools_list and generate_image, and the server canonicalizes . to _ on call, so a dotted alias like tools.list still works.
Everything here is from MCP tools and gates and Agent skills, read 2026-09-30.
Which old names were retired?
| Retired or unlisted name | Use instead |
|---|---|
image-generations_create | generate_image |
video-router_create | generate_video |
video-captions_create | Unlisted; still callable by name for in-flight clients, not in tools_list |
Are CLI tool ids the same?
No. The docs say CLI tool ids stay dotted, for example avatars.create, and that registry is not the hosted MCP catalog. sume tools list --json reads the CLI one.
sume tools list --json
# CLI ids are dotted, e.g. avatars.create
# hosted MCP ids are underscore, e.g. generate_image (see tools_list)How do I get the exact contract?
Call tools_schema with name set to the underscore id. The result is the contract for that tool in the current session, including whether it needs an idempotency_key.
Does an unlisted tool count as visible?
Not in tools_list. An unlisted tool can still be called by name, but do not build new agents on it. Prefer the listed generate_image and generate_video.
Why do dotted names show up at all?
The docs say the server canonicalizes dotted names on call, so dotted aliases keep working. New agent prompts should use the underscore ids from tools_list, because that is the registry the docs treat as live. If you see tools.list in an old prompt, it still works, but updating it removes one moving part.
Sources
Related posts
More in Developers
- Music API 400 model_not_found: fix an unknown model id
An unknown model on POST /v1/music-router/generate fails with 400 model_not_found and a catalog_url. Use an id from GET /v1/music-router/models or omit model.
- Sume music job says sume/music-auto: which engine ran?
job.model echoes the id you requested; job.request.routed_model names the engine that ran, such as lyria-3.5. Read both fields on the job envelope.
- n8n Wait node under 65 seconds: how to poll a Sume job
n8n keeps waits under 65 seconds in memory and saves longer ones to the database. Poll a Sume job with next_poll_after_seconds, or switch to a webhook resume.
- 429 backoff with jitter in Python: OpenAI's advice, Sume's headers
OpenAI recommends exponential backoff with random jitter on 429. A Python status poller that honors Sume's retry-after first and falls back to backoff.
Written by Sume