preflight-mcp
Enables looking up reliability ratings, comparing performance metrics, and reporting API call outcomes for OpenAI services.
Preflight MCP Server
TrustPilot for APIs, built for AI agents. Independent reliability ratings for every API and MCP server — powered by synthetic probes and crowdsourced agent telemetry.
Install
pip install preflight-mcpUsage
As a standalone MCP server
preflight-mcpWith Claude Desktop
Add to your Claude Desktop MCP config:
{
"mcpServers": {
"preflight": {
"command": "preflight-mcp"
}
}
}With Claude Code
/plugin install preflight@claude-plugins-officialTools
check_reliability
Look up the independent reliability rating for any service.
check_reliability(service="openai-api")compare_services
Compare ratings side by side to pick the most reliable provider.
compare_services(services=["openai-api", "anthropic-api"])report_outcome
Leave a review — report what happened when you called a service. Improves ratings for everyone.
report_outcome(service="openai-api", outcome="success", latency_ms=200)Configuration
Variable | Default | Description |
|
| API base URL |
| (none) | API key for authenticated requests |
Get a free API key at beamt.io/preflight.
License
MIT
Available Tools
3 toolscheck_reliabilityA
Look up the independent reliability rating for an API or MCP server. Like checking a restaurant's reviews before booking — see the real uptime, latency, error rate, and community experience before you commit to a service.
Returns a trust score (0-100), current operational status, trend direction, and any known issues. Scores are based on independent synthetic probes and crowdsourced telemetry from real agent traffic — not vendor self-reporting.
Args: service: Service slug (e.g., 'stripe-mcp', 'openai-api') or partial name metrics: Optional list of specific metrics to include: 'uptime', 'latency', 'reliability', 'maintenance', 'community'
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | ||
| metrics | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so well. It discloses key behavioral traits: the tool returns a trust score, operational status, trend, and known issues; explains that scores are based on independent probes and crowdsourced telemetry; and clarifies it's not vendor self-reporting. It doesn't mention rate limits or auth needs, but covers most critical aspects.
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?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by an analogy, then details on returns and data sources, and ends with parameter explanations. Every sentence adds value without redundancy, making it efficient and well-structured.
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?
Given the tool's moderate complexity, no annotations, 0% schema coverage, but an output schema present, the description is complete enough. It covers purpose, usage, behavior, and parameters thoroughly, and since an output schema exists, it doesn't need to detail return values explicitly, making it well-rounded for the context.
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 0%, so the description must compensate, which it does effectively. It explains the 'service' parameter as a 'slug or partial name' with examples, and details the 'metrics' parameter as an optional list with specific metric options ('uptime', 'latency', etc.), adding meaning beyond the bare 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?
The description clearly states the tool's purpose: 'Look up the independent reliability rating for an API or MCP server.' It specifies the verb ('look up') and resource ('reliability rating'), and distinguishes it from siblings by focusing on individual service checks rather than comparisons or reporting outcomes.
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?
The description provides clear context for when to use this tool: 'before you commit to a service' and 'see the real uptime, latency, error rate, and community experience.' It implies usage for pre-commitment evaluation but does not explicitly state when not to use it or name alternatives among siblings (e.g., compare_services for comparisons).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_servicesA
Compare reliability ratings across multiple services side by side. Like reading comparative reviews — see which provider has the best track record for uptime, latency, and real-world reliability right now.
Returns services ranked by the chosen metric with a recommendation and the reasoning behind it.
Args: services: List of service slugs to compare (max 10) sort_by: Metric to sort by — 'overall', 'uptime', 'latency', 'reliability'
| Name | Required | Description | Default |
|---|---|---|---|
| services | Yes | ||
| sort_by | No | overall |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool does (comparative analysis with ranking and recommendation) and output behavior, but lacks details on permissions, rate limits, data freshness, or error handling. The description adds value by explaining the ranking and recommendation aspects.
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?
The description is well-structured and front-loaded with the core purpose, followed by output behavior and parameter details. Every sentence earns its place with no wasted words, and the Args section is clearly separated for quick reference.
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?
Given the tool's moderate complexity (2 parameters, comparative analysis), no annotations, but with an output schema present, the description is mostly complete. It explains the purpose, output (ranking with recommendation and reasoning), and parameters well, but could benefit from more behavioral context like data sources or limitations.
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 0%, so the description must fully compensate. It provides clear semantic explanations for both parameters: 'services' as 'List of service slugs to compare (max 10)' and 'sort_by' as 'Metric to sort by' with enumerated values. This adds essential meaning beyond the bare 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?
The description clearly states the tool's purpose with specific verbs ('compare reliability ratings', 'see which provider has the best track record') and resources ('multiple services', 'uptime, latency, and real-world reliability'). It distinguishes from sibling tools by focusing on comparative analysis rather than individual checks or reporting outcomes.
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?
The description provides clear context for when to use this tool ('compare reliability ratings across multiple services side by side'), but does not explicitly state when not to use it or name alternatives among sibling tools (check_reliability, report_outcome). The comparative nature is implied to differentiate it from single-service checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_outcomeA
Leave a review — report the outcome of an API or MCP server call you just made. Like writing a TrustPilot review, your report contributes to the community reliability rating for that service.
The more agents that report, the more accurate the ratings become for everyone.
Args: service: Service slug that was called outcome: Result — 'success', 'error', 'timeout', or 'unexpected' latency_ms: Response time in milliseconds (if available) error_type: If outcome was 'error', the category: 'auth', 'rate_limit', 'server', 'network', 'parse', 'other'
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | ||
| outcome | Yes | ||
| latency_ms | No | ||
| error_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It explains the tool's purpose (reporting outcomes) and community impact, but doesn't disclose important behavioral traits like whether this is a read-only operation, if it requires authentication, rate limits, or what happens after submission. The description doesn't contradict annotations (none exist), but leaves significant behavioral aspects unspecified.
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?
The description is well-structured and appropriately sized. It starts with the core purpose, provides community context, then lists parameters with clear explanations. Every sentence earns its place: the first establishes purpose, the second explains value, and the parameter section provides necessary details without redundancy.
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?
Given the tool's moderate complexity (4 parameters, 2 required) and the presence of an output schema (which means return values are documented elsewhere), the description is reasonably complete. It explains what the tool does, when to use it, and provides parameter semantics. The main gap is lack of behavioral transparency details (permissions, side effects, etc.), but with an output schema handling return values, it's mostly adequate.
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 0%, so the description must compensate. It provides clear semantic explanations for all 4 parameters: 'service' (Service slug that was called), 'outcome' (Result with specific values), 'latency_ms' (Response time in milliseconds), and 'error_type' (category if outcome was error). The description adds substantial meaning beyond the bare schema, though it doesn't explain the 'null' defaults for optional parameters.
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 clearly states the tool's purpose: 'Leave a review — report the outcome of an API or MCP server call you just made.' It uses specific verbs ('Leave a review', 'report the outcome') and identifies the resource (API/MCP server calls). It distinguishes from siblings by focusing on outcome reporting rather than checking or comparing reliability.
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?
The description explicitly states when to use this tool: 'report the outcome of an API or MCP server call you just made.' It provides context about contributing to community reliability ratings. While it doesn't explicitly name sibling tools as alternatives, it clearly defines the specific use case (reporting outcomes after calls), which implicitly distinguishes it from checking or comparing reliability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v0.10.0- First observed
check_reliability - First observed
compare_services - First observed
report_outcome
TDQS
Each tool has a clearly distinct purpose: check_reliability evaluates a single service, compare_services compares multiple services side-by-side, and report_outcome submits user feedback. There is no overlap in functionality—an agent would never confuse which tool to use for a given task.
All tools follow a consistent verb_noun pattern with clear, descriptive names: check_reliability, compare_services, and report_outcome. The naming is uniform and predictable, making it easy for agents to understand each tool's function at a glance.
With only 3 tools, the server feels slightly thin for its reliability-checking domain. While the tools cover core functions, additional utilities like listing top-rated services or fetching historical trends might be expected. However, the count is not severely inadequate.
The toolset covers the essential reliability workflow: checking individual services, comparing them, and contributing data. A minor gap is the lack of a tool to fetch aggregated reliability data (e.g., a leaderboard or trending services), but agents can work around this by using compare_services with a predefined list.
Related MCP Connectors
Find, compare, and audit software for AI agents. Scored registry of tools and MCP servers.
Monitoring for the agent economy — liveness, latency, trust scoring for MCP endpoints
1Trust infrastructure for AI agents: read a verifiable Trust Rating, claim an identity, earn a badge.
Agent reputation registry: check, register, and endorse AI agents
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gsmethells/preflight-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server