Hypertune MCP by usefulapi
Server Details
Evaluate and inspect your Hypertune feature flags from your AI assistant.
- Status
- Healthy
- Uptime
- 76.4% over 73 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 5 tools
Each tool targets a distinct operation: evaluate resolves flag values, get_logic returns rules, introspect discovers schema, list_flags lists flags, and query is a general escape hatch. The descriptions clearly delineate when to use each, including the power-user nature of query.
All names share the hypertune_ prefix and snake_case, but the trailing pattern mixes single verbs (evaluate, introspect, query) with verb_noun (get_logic, list_flags). This is mostly consistent and readable, with minor deviation from a strict verb_noun convention.
Five tools is well-scoped for a feature flag evaluation client; each tool serves a clear purpose (discovery, evaluation, inspection, escape hatch) without redundancy.
The read-only surface covers discovery (introspect/list_flags), evaluation (evaluate), logic inspection (get_logic), and arbitrary queries (query). Minor gaps include no batch multi-context evaluation and no write/management operations, though the latter may be out of scope.
Available Tools
5 toolshypertune_evaluateEvaluate feature flagsARead-onlyInspect
Evaluate one or more feature flags for a given context and get their resolved values. Builds query { root(context: <context>) { <selection> } }. Provide selection = the flag fields to read (e.g. exampleFlag anotherFlag { nestedField }) and context = the evaluation context (environment + user/attributes). Every field must supply all of its arguments (Hypertune reduces the flag logic to a JSON result). Use hypertune_list_flags / hypertune_introspect first if you don't know the flag names.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Evaluation context object, inlined as the `context` arg. e.g. {"environment":"production","user":{"id":"u_123","email":"a@b.com"}}. Omit to return the flag LOGIC instead of a reduced value. | |
| selection | Yes | GraphQL selection of flag fields under root, e.g. `exampleFlag` or `homePage { showBanner } exampleFlag`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description adds substantive behavior: it constructs a `query { root(context: <context>) { <selection> } }`, requires every selected field to supply all arguments, and notes that omitting context returns the flag LOGIC rather than a reduced value. That is genuinely useful context beyond the safety hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the outcome and then the mechanics; each sentence carries information about construction, arguments, or prerequisites. Slightly dense with backtick-heavy GraphQL fragments, but nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two parameters, nested context object, and no output schema, the description covers the query construction, the argument requirement, and the context-omission case, so an agent can call it correctly. It could still say more about the shape/limits of returned values or errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3), and the description still adds meaning: it explains that `selection` is a GraphQL selection supporting nested fields with an inline example, and that `context` is inlined as the `context` arg with omission having a distinct semantic effect. This goes past restating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Evaluate one or more feature flags for a given context and get their resolved values.' It also names a related concern (flag LOGIC vs reduced value when context is omitted). However, it does not disambiguate itself from close siblings hypertune_get_logic and hypertune_query, which an agent would naturally confuse with this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete routing advice: 'Use hypertune_list_flags / hypertune_introspect first if you don't know the flag names.' That is a real prerequisite step. It stops short of stating when to prefer this over hypertune_get_logic or hypertune_query, so the agent must infer the boundary between evaluation and retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hypertune_get_logicGet flag logic (unreduced)ARead-onlyInspect
Fetch the underlying LOGIC of flags without reducing them — i.e. query { root { <selection> } } with no context. Returns the flag's conditional expression / rules rather than a single resolved value, useful for inspecting how a flag is configured. If the schema requires a context arg you can still pass a partial one via context.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Optional partial context, inlined as the `context` arg if the schema requires it. | |
| selection | Yes | GraphQL selection of flag fields under root, e.g. `exampleFlag`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true. The description adds real behavioral detail beyond that: it returns the conditional expression/rules instead of a resolved value, and it explains the partial-context tolerance when the schema demands a context arg. The response-shape disclosure is genuinely useful for an inspection tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, lead sentence front-loads the core distinction, and the GraphQL example is compact. Minor redundancy between 'without reducing them' and 'with no context', but nothing wasteful enough to impede scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description covers what is returned (conditional expression/rules), how the selection maps under root, and how context is handled. For a 2-param read tool with nested objects, this is nearly everything an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented. The description's note about passing a partial `context` largely restates the schema's own wording ('Optional partial context, inlined as the `context` arg...'), adding little new meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb+resource ('Fetch the underlying LOGIC of flags') and clarifies the non-reducing behavior with a concrete GraphQL shape (`query { root { <selection> } }`). It implicitly distinguishes itself from value-resolution via 'rather than a single resolved value', but never names the sibling (hypertune_evaluate) that embodies the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'useful for inspecting how a flag is configured' gives a usage context, and the non-reduced framing implies an alternative exists. However, no sibling is named and no explicit when-not condition is given, so selection versus evaluate/introspect remains inferential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hypertune_introspectIntrospect the GraphQL schemaARead-onlyInspect
Run a GraphQL introspection query to discover the project's schema — all types and fields, including the available flags and the shape of the evaluation context. Best-effort: some edge deployments disable introspection, in which case this returns a clear error (use hypertune_query with a known flag name instead).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds meaningful behavior beyond that: it is best-effort, some edge deployments disable introspection, and failure yields a clear error with a suggested alternative tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool does, followed by the failure mode and fallback. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description is complete: it describes what introspection returns (types, fields, flags, evaluation-context shape) and what happens on failure. An agent has everything it needs to call it and handle the error path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document and the baseline is 4. The description correctly focuses on runtime behavior rather than parameter syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (run a GraphQL introspection query to discover the project's schema) and scopes the payoff (types, fields, available flags, evaluation context shape). It implicitly differentiates from siblings like hypertune_list_flags by framing this as schema discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the use case (discover the schema, flags, and context shape) and gives a concrete fallback path when introspection is disabled — use hypertune_query with a known flag name. It stops short of stating when to prefer hypertune_list_flags over introspection, but the routing guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hypertune_list_flagsList feature flagsARead-onlyInspect
List the project's top-level feature flags (the fields of the query root type) with their return types and descriptions, derived from GraphQL introspection. A convenient first call to see what flags exist before evaluating. Requires introspection to be enabled on the edge endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this is a safe read, and the description usefully adds the introspection-enabled prerequisite and explains the call's role as a discovery step. It does not, however, say what happens when introspection is disabled (error vs empty result) or anything about result size or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler: the first defines the resource and return content, the second states the recommended usage and the prerequisite. Front-loaded with the most decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the return-value burden and does so by stating it returns flags with return types and descriptions. Minor gaps remain around failure behavior when introspection is off, but nothing needed to make the call correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema imposes no semantics for the description to compensate for. The description correctly implies no arguments are needed, and the baseline of 4 for a no-parameter tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (top-level feature flags / query root fields) and specifies what comes back: return types and descriptions, sourced from GraphQL introspection. The phrase 'before evaluating' implicitly differentiates it from hypertune_evaluate, so an agent can place it in the workflow without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly positions the call as 'a convenient first call to see what flags exist before evaluating,' which is clear when-to-use guidance, and adds a concrete prerequisite (introspection must be enabled on the edge endpoint). It stops short of naming the sibling tools (hypertune_introspect, hypertune_query) as alternatives or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hypertune_queryRun a raw GraphQL queryARead-onlyInspect
Run an arbitrary GraphQL query (and optional variables) against the Hypertune edge endpoint. Power-user escape hatch for full control — each Hypertune project has its own generated schema, so this handles any flag shape, nested selections, inline enum literals, or variables the convenience tools can't express. The query root field is root(context: ...).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A complete GraphQL query string, e.g. `query { root(context: {environment: "production"}) { myFlag } }`. | |
| variables | No | Optional GraphQL variables object matching the query's declared variables. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: it targets the edge endpoint, notes each project has its own generated schema, and discloses the `root(context: ...)` query root field needed to form a valid query. No auth/rate-limit detail, but solid for a read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action, then the escape-hatch rationale, then the critical root-field detail. No filler; every sentence carries weight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a raw GraphQL escape hatch with no output schema, the description is nearly complete: it explains the endpoint, the per-project schema constraint, and the root field. Minor gaps remain around return shape and error behavior, but the agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents both `query` and `variables` with examples. The description still adds meaning by revealing the mandatory `root(context: ...)` root field, which is essential for constructing a working query and isn't captured elsewhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (run) and resource (arbitrary GraphQL query against the Hypertune edge endpoint) and positions itself as the 'power-user escape hatch' relative to the convenience tools. An agent can distinguish this from hypertune_evaluate or hypertune_list_flags without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly conveys when to reach for it: cases the convenience tools can't express, such as arbitrary flag shapes, nested selections, inline enum literals, or variables. It doesn't name the sibling tools or state explicit exclusions (when NOT to use it), but the routing condition is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Related MCP Connectors
Run accessibility, contrast, and design token audits and file QA issues from your AI coding tool.
Direct access to Cypress tests results and accessibility reports in your AI workflow.
- ABMeterOAuthai.abmeter
Run A/B experiments through your AI assistant. SDKs for Ruby, Python, JS, Node, React Native, Go.
Plan Salesforce deploys, open pull requests and trigger pipelines from your AI client.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceEnables AI coding assistants like Cursor and Claude to manage DevCycle feature flags directly from the development environment.16,718 npm20MIT
Unleash MCP Serverofficial
AlicenseAqualityAmaintenanceEnables AI coding assistants to manage Unleash feature flags, including creation, detection, evaluation, and best practices.1127,360 npm21MIT- AlicenseAqualityDmaintenanceEnables AI assistants to manage Featureflow feature flags, including creating and updating features, controlling feature states across environments, and managing projects, environments, and targeting rules through natural language.2212 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Statsig's feature management and experimentation platform, allowing them to check feature flags, retrieve configurations, get experiment assignments, and log events.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.