Tool discovery
tools/list returns an empty tool list
Diagnose an empty MCP tools/list response from generated OpenAPI, Code Mode, or private endpoint policy settings.
Symptom
initialize succeeds, but tools/list returns no callable tools or only a smaller set than expected.
First check
Open the server details and confirm the generated endpoint has approved public tools or Code Mode search_docs and execute enabled.
Quick fix
Regenerate from a valid OpenAPI spec, review the public tool policy, then call tools/list again with the same server ID.
Check generation mode
Large APIs can use Code Mode instead of exposing every route as a top-level MCP tool. In that mode, tools/list should include search_docs and execute. Use search_docs to inspect the endpoint catalog before calling execute.
Review public exposure policy
Astrail can hide private, destructive, or unapproved endpoints from public MCP clients. If every discovered operation is blocked by policy, tools/list can be empty even though the server record exists.
Inspect the source spec
An OpenAPI file with no paths, unsupported methods only, malformed operation objects, or invalid schemas can generate a server with no usable tools. Preview the spec and confirm Astrail detected paths before generating.
Verify the server ID
It is common to copy a URL for a draft, deleted, or local preview server. Compare the server ID in the MCP URL with the dashboard server page and regenerate if the record is stale.
FAQ
Why do I only see search_docs and execute?
That is expected for Code Mode servers. The endpoint catalog is searched at call time instead of loading many tools into the client context.
Can private tools be hidden from tools/list?
Yes. Hidden tools should not appear in public metadata, tools/list, generated docs, or direct tools/call dispatch.