mcp.schema_discovery.enabled is true.
All three tools are read only. None of them changes your data or your schema.
search_schema
Ranks schema elements against a topic.Input
Kinds
object, interface, union, enum, scalar, input, field, input_field, path.
An unknown kind matches nothing. The tool schema constrains the input to this list.
Response
The
hits list is always present. It is empty when nothing matches.
The records are large. Use a low
limit.get_symbols
Reads the full record for each coordinate.Input
Copy each coordinate from a
search_schema result. A coordinate has one of these forms:
field:Type.fieldNameobject:TypeNameinput:TypeNameenum:TypeName
Response
generate_query
Makes a GraphQL operation from a prompt. This tool takes 10 to 30 seconds.Input
Write the entities and the fields that you want. Give the filter conditions and the sort order. Do not write GraphQL syntax. Do not guess type names.
Response
queries is always present. unsatisfied, truncated and guidance are absent when they are empty.
A response with no queries and one
unsatisfied reason is a normal result. It is not an error. It tells you that your
schema cannot answer the request.Parameterized operations
A value in your prompt becomes a GraphQL variable. It does not become a literal. A prompt that asks for “the first 10 employees” returns a variable for the count, with the default from your schema. Your prompt selects the shape of the operation. You supply the values at run time. One operation thus serves many different inputs. Generate one time, then call many times.Errors
Each tool returns a readable message. The tools return no protocol error, because an agent can read a tool result and act on it.
The router never puts the token into a message or a log.
Security
search_schema and generate_query show the shape of your schema to any caller that reaches the MCP server. This is the same exposure that get_schema gives.
These tools carry no @requiresScopes directive, so the scope middleware derives no per-tool scope for them. There is also no search_schema, get_symbols or generate_query key under mcp.oauth.scopes, unlike get_schema. Use the tools_call scope, which applies to every tool call.