Skip to main content
Glama

Orbit Sentinel MCP Server

CI Release MCP Registry orbit-sentinel-mcp MCP server Go Reference License: MIT MCP Badge

MCP (Model Context Protocol) server for Orbit Sentinel — 950K+ space regulatory filings from FCC, ITU, UNOOSA, and FAA-AST, queryable from Claude Desktop, Claude Code, Cursor, or any MCP client.

An API key is required. Beta access: https://console.viventine.com.

The server is a thin, open-source (MIT) client of the public REST API — nine Go files, easy to audit before you run it. Run it locally over stdio, or skip the install entirely and point your client at the hosted remote endpoint (below).

Install

Remote (no install)

The lowest-friction path — no binary, no updates. Point any HTTP-capable MCP client at:

https://orbit-sentinel.viventine.com/mcp

Transport is Streamable HTTP (stateless). Two ways to authenticate:

OAuth (recommended) — sign in with your Viventine account in the browser; no key to copy or store. In Claude Code:

claude mcp add --transport http orbit-sentinel https://orbit-sentinel.viventine.com/mcp

Then run /mcp -> orbit-sentinel -> authenticate. A browser opens for sign-in and consent; Claude Code stores the token and refreshes it automatically. The same works as a custom connector in claude.ai / Claude Desktop (Settings -> Connectors -> Add custom connector -> paste the URL -> sign in).

API key — if you'd rather use a static key (or your client can't do OAuth), pass your console key as a bearer token:

claude mcp add --transport http orbit-sentinel \
  https://orbit-sentinel.viventine.com/mcp \
  --header "Authorization: Bearer <your-key>"

Get a key / beta access at https://console.viventine.com.

Generic MCP clients — any Streamable HTTP client works via OAuth 2.1 (RFC 9728 protected-resource discovery) or an Authorization: Bearer <key> header. For a stdio-only client, bridge with npx mcp-remote https://orbit-sentinel.viventine.com/mcp.

Claude Desktop (one-click)

Download orbit-sentinel-mcp.mcpb and double-click it — Claude Desktop installs the extension and prompts for your API key. Bundles macOS (universal), Linux, and Windows binaries.

brew install --cask viventine-space/tap/orbit-sentinel-mcp

Installs to $(brew --prefix)/bin/orbit-sentinel-mcp, handles the quarantine flag for you, and upgrades with brew upgrade.

Manual download

Download the archive for your platform from the latest release, then:

tar -xzf orbit-sentinel-mcp_*.tar.gz
mkdir -p ~/bin && mv orbit-sentinel-mcp ~/bin/

macOS only — the binary is not notarized yet, so clear the quarantine flag once:

xattr -d com.apple.quarantine ~/bin/orbit-sentinel-mcp

Windows: unzip and note the full path to orbit-sentinel-mcp.exe.

Build from source

go install github.com/viventine-space/orbit-sentinel-mcp@latest

Related MCP server: N2YO Satellite Tracker MCP Server

Configure

The server reads two environment variables:

Variable

Purpose

MCP_API_URL

Orbit Sentinel API base URL (https://orbit-sentinel.viventine.com)

MCP_API_KEY

Your API key from the console

Claude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json (Windows: %APPDATA%\Claude\claude_desktop_config.json), using the absolute path to the binary (~ is not expanded):

{
  "mcpServers": {
    "orbit-sentinel": {
      "command": "/absolute/path/to/orbit-sentinel-mcp",
      "env": {
        "MCP_API_URL": "https://orbit-sentinel.viventine.com",
        "MCP_API_KEY": "<your-key>"
      }
    }
  }
}

Claude Code — one command:

claude mcp add orbit-sentinel \
  --env MCP_API_URL=https://orbit-sentinel.viventine.com \
  --env MCP_API_KEY=<your-key> \
  -- ~/bin/orbit-sentinel-mcp

Restart your client; the Orbit Sentinel tools (research, search_filings, get_entity_profile, …) appear in the tools menu.

Releasing (maintainers)

Tag and push — GitHub Actions builds and publishes all platforms:

git tag v0.x.y && git push origin v0.x.y

Asset names are version-stable (orbit-sentinel-mcp_<os>_<arch>.tar.gz), so releases/latest/download/... URLs always serve the newest build.

The Claude Desktop bundle (orbit-sentinel-mcp.mcpb) is packed and uploaded by the release workflow — the manifest template lives at mcpb/manifest.json (its version is stamped from the tag at pack time).

Then repeat the Glama release — it does not auto-update from GitHub, and it gates the quality score on the badge above. On the Dockerfile admin page, the saved build spec should carry over (build steps install Go and go build; placeholder parameters need a dummy MCP_API_KEY to satisfy the env schema) — click Build, then Make Release with the new version. Manual for now; consider Glama API integration next release cycle.

Available Tools

21 tools
get_bond_portfolioA
Read-only

Get FCC surety bond portfolio for satellite operators. Two distinct figures per operator: the POSTED bond, which is an amount an FCC document states and is absent for most authorizations, and the COMPUTED 47 CFR 25.165 liability, which is Orbit Sentinel's own arithmetic and is not a bond anyone has posted. Never report a computed figure as an operator's actual bond, and read 'not documented' as unknown rather than zero. Also returns summary statistics and FAA financial responsibility data. Use for questions about satellite operator financial obligations, bond compliance, or TPL coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
operatorNoSearch operator name (partial match)
per_pageNoResults per page (default 20, max 100)
entity_idNoFilter by entity UUID
orbit_typeNoFilter by orbit type: NGSO or GSO

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered, yet the description adds crucial interpretive behavior: the POSTED vs COMPUTED distinction, the warning never to report a computed figure as an actual bond, and the instruction to treat 'not documented' as unknown rather than zero. These are exactly the semantics an agent cannot infer from structured fields and prevent materially wrong answers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the purpose before the caveats, and each sentence carries real informational weight. Slightly long, but the length is justified by the data-interpretation warnings rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must characterize the return, and it does: two figures per operator plus summary statistics and FAA financial responsibility data. It omits return shape details like pagination metadata and per-operator fields, but an agent has enough to call and interpret it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description adds no filtering syntax or format details beyond what the schema already documents (operator partial match, orbit_type NGSO/GSO, pagination). The baseline of 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource with domain scope: 'Get FCC surety bond portfolio for satellite operators.' No sibling tool covers bonds or financial obligations, so the purpose is unambiguous and distinguishable from the rest of the registry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The final sentence gives clear trigger conditions ('questions about satellite operator financial obligations, bond compliance, or TPL coverage'), which tells the agent when to reach for this tool. It stops short of naming an exclusion or an alternative sibling, so it is clear context rather than fully explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_entity_dossierA
Read-only

Get a cross-source dossier for an entity (by UUID): regulatory filings, SEC financial signals, sanctions/export-control screening hits, and asset footprint (satellites, ground stations, federal awards, surety bonds) — counts plus recent samples in one call. The most complete single view of an operator. Set include_family=true to roll the totals up across the entity's corporate family.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEntity UUID
include_familyNoRoll the dossier up across the entity's corporate family (same legal entity grouped by shared CIK/FRN or matching name). Default false.
family_confidenceNoFamily grouping strictness when include_family=true: 'high' (default; exact name / shared identifier) or 'medium' (also groups normalized-name matches like 'AT&T INC.' with 'AT&T Corp.').
include_subsidiariesNoAlso roll up the entity's direct subsidiaries (from authoritative SEC Exhibit-21 / GCAT parent links). Default false.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, consistent with a read operation. The description adds useful behavioral context: it returns 'counts plus recent samples' and explains how parameters affect the rollup. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact (3 sentences), front-loaded with the core purpose, and every sentence adds value. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (dossier from multiple sources) and no output schema, the description informs that results include 'counts plus recent samples'. It covers key parameters well. A brief note on the general output structure would improve completeness but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all parameters described). The description adds meaning beyond the schema: it explains that include_family 'rolls the totals up across the entity's corporate family', clarifies family_confidence strictness levels with examples, and describes include_subsidiaries as rolling up direct subsidiaries from SEC data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb phrase 'Get a cross-source dossier for an entity (by UUID)' and lists concrete data types (regulatory filings, SEC signals, sanctions screening, asset footprint). It clearly distinguishes from siblings which are mostly search tools or single-source tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the key parameters (include_family, include_subsidiaries) and states the tool provides 'the most complete single view'. It implies use for a comprehensive overview but does not explicitly exclude alternatives or state when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_entity_profileA
Read-only

Get a detailed entity profile including filing history by agency, related entities (co-filers), linked satellites, and cross-references.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEntity UUID
filed_afterNoFilter filing stats to filings after this date (YYYY-MM-DD)
filed_beforeNoFilter filing stats to filings before this date (YYYY-MM-DD)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description correctly implies a read-only operation ('Get'), consistent with readOnlyHint=true. However, it adds no further behavioral context beyond what annotations already provide (e.g., no mention of rate limits, authentication, or return structure).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with purpose, no wasted words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description provides a reasonable overview of the return content (filing history, related entities, etc.). However, it could be improved by mentioning the output is a structured object, but this is not critical for a read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with clear descriptions for all parameters. The description adds no additional meaning beyond the schema (e.g., entity UUID, date filters). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('get') and resource ('entity profile'), and lists key components (filing history by agency, related entities, linked satellites, cross-references). This clearly differentiates it from sibling tools like 'get_entity_dossier' or 'get_bond_portfolio'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus the 20+ sibling tools. There is no mention of alternative use cases or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_filing_detailA
Read-only

Get full details of a specific regulatory filing including spectrum data, orbital parameters, ground stations, signals, related filings, attachments, and (for policy filings) executive summary, overall stance, and structured arguments.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesFiling UUID

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true. The description adds value by detailing returned content (spectrum data, attachments, etc.), but does not disclose other behavioral traits like error handling or rate limits. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys core functionality and data categories, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required param) and lack of output schema, the description thoroughly enumerates the types of data returned (spectrum, orbital parameters, etc.), making it complete for understanding the tool's scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'id', with description 'Filing UUID'. The tool description adds no further meaning to this parameter, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get full details of a specific regulatory filing' with a specific verb and resource, and lists distinct data categories (spectrum, orbital parameters, etc.), differentiating it from sibling tools like get_filing_distribution or get_filing_trends.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining comprehensive filing details but does not explicitly state when to use this tool versus alternatives like search_filings or get_filing_distribution. No when-not or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_filing_distributionA
Read-only

Get filing count distribution by filing type. Filter by agency and date range. Use for questions about what types of filings are most common.

ParametersJSON Schema
NameRequiredDescriptionDefault
agencyNoFilter by agency (FCC, ITU, UN_OOSA)
entity_typeNoFilter by entity type: company, individual, or government
filed_afterNoStart date (YYYY-MM-DD)
filed_beforeNoEnd date (YYYY-MM-DD)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with the readOnlyHint annotation, indicating safe read operation. However, it doesn't disclose additional behavioral traits such as pagination, rate limits, or whether the distribution includes all filing types or only those with data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with front-loaded action and clear purpose. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description fails to specify the structure of the returned distribution (e.g., list of filing type counts). It mentions 'filing count distribution' but lacks detail, which is a gap for an aggregation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters have descriptions in the input schema (100% coverage). The description adds minimal value beyond reminding about agency and date-range filters, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get filing count distribution by filing type,' specifying the verb and resource. It distinguishes from siblings like get_filing_detail or get_filing_trends by focusing on distribution across types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'Use for questions about what types of filings are most common.' While it doesn't list alternatives, the context of sibling tools makes when-to-use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_launch_historyA
Read-only

Get launch history for a space entity. Returns launches from the FAA/GCAT database including vehicle type, launch site, outcome, and date. Requires entity_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax launches to return (default 20, max 100)
vehicleNoFilter by vehicle type (e.g., Falcon 9, Electron)
entity_idYesEntity UUID to look up launch history for

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and description adds source database (FAA/GCAT) and return fields, but no additional behavioral details like pagination or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences are concise and front-loaded, but could be slightly more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple query tool with no output schema, description covers main return fields and requirement. Adequately complete given context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description does not add significant meaning beyond what schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Get' and resource 'launch history for a space entity', and distinguishes from sibling tools like get_entity_dossier or get_entity_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Specifies requirement for entity_id but lacks guidance on when to use this tool versus alternatives or 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.

get_system_statusA
Read-only

Get system health status including database connectivity, pipeline queue depth, and per-source crawl health.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds context about specific health components but does not disclose any additional behavioral traits (e.g., rate limits, data recency). It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and key components with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description lists what the tool checks but does not describe the return format or how status is reported. This gap leaves the agent uncertain about the response structure. Adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema coverage is 100% trivially. The description does not need to add param info, and it appropriately focuses on tool purpose. Baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'system health status', listing specific components like database connectivity, pipeline queue depth, and per-source crawl health. This distinguishes it from sibling tools which focus on entities, filings, or other data queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking system status, but provides no explicit guidance on when to use this tool versus alternatives, nor any when-not scenarios. Sibling tools are diverse, but no direct alternative for system health is present; guidance is minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_filersA
Read-only

Get the top filing entities ranked by number of filings. Filter by agency and date range. Use for questions about who files the most, biggest players, or filing rankings.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax entities (default 10, max 100)
agencyNoFilter by agency (FCC, ITU, UN_OOSA)
entity_typeNoFilter by entity type: company, individual, or government
filed_afterNoStart date (YYYY-MM-DD)
filed_beforeNoEnd date (YYYY-MM-DD)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include `readOnlyHint: true`, confirming no destructive behavior. The description adds that results are ranked by filing count and filters by agency/date range, which goes beyond the annotation. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. The first sentence states the core purpose and ranking; the second provides filtering context and usage examples. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a retrieval tool with 5 optional parameters and no output schema, the description sufficiently covers the purpose, filtering, and typical use cases. It is complete given the complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 5 parameters are described in the input schema with 100% coverage. The description mentions filtering by 'agency and date range', which aligns with the schema but adds no additional meaning beyond what is already present.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' and resource 'top filing entities' ranked by number of filings. It distinguishes itself from sibling tools like `get_filing_trends` and `get_filing_distribution` by focusing on rankings of entities rather than trends or distributions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use: 'Use for questions about who files the most, biggest players, or filing rankings.' This provides clear context. It does not mention when not to use or list alternatives, but the sibling tools cover distinct purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

milestone_adherenceA
Read-only

FCC deployment milestone adherence (47 CFR 25.164): which authorized satellite systems met their deployment milestones. Grading is deliberately asymmetric — an adverse grade must be earned, a favourable grade must be labelled. 'missed' and 'met_late' appear only where a human verified a cited FCC document; otherwise the row reads 'verification_required', which asserts nothing about the operator and must not be reported as a miss. Favourable grades are never withheld, so read verification_status: 'arithmetic_corroborated' means the deployment counts independently agree — a computation, not a person, did the corroborating — and 'uncorroborated' means the arithmetic is SILENT, not that it disagrees; no favourable grade is currently contradicted by the data. computed_grade always carries the raw arithmetic even where classification withholds it. Filter by call_sign, classification, is_ngso; set summary=true for aggregate counts, which include withheld_adverse and uncorroborated_favourable.

ParametersJSON Schema
NameRequiredDescriptionDefault
is_ngsoNoFilter by orbit type: true for NGSO, false for GSO
summaryNoIf true, return aggregate counts by classification/orbit type instead of individual rows
call_signNoFilter by FCC call sign (exact match)
classificationNoFilter by classification: met|met_computed|met_late|pending|extended|waived|missed|verification_required|not_deployment_obligation|attribution_ambiguous|attribution_undetermined|unknown. 'missed_unverified' no longer exists — unverified adverse grades are now 'verification_required'

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only readOnlyHint=true in annotations, the description carries the behavioral burden and does so unusually well: it explains the deliberately asymmetric grading, that 'missed'/'met_late' require human verification of a cited FCC document, that 'verification_required' asserts nothing and must not be reported as a miss, and that 'uncorroborated' means the arithmetic is silent rather than disagreeing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded and nearly every sentence carries semantic weight about grading rules. It is a single dense paragraph, though, with interpretive caveats compressed together rather than structured, which slightly impedes scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must explain returns — and it does: it defines the grade vocabulary, verification_status values, and that computed_grade always carries raw arithmetic even when classification withholds a grade. An agent has everything needed to call and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema: it clarifies that summary aggregates include withheld_adverse and uncorroborated_favourable, and notes that 'missed_unverified' was replaced by 'verification_required'. It still largely restates the filter parameters, keeping it short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and regulatory basis: 'FCC deployment milestone adherence (47 CFR 25.164) — which authorized satellite systems met their deployment milestones.' No sibling tool overlaps this domain (they are search_* and get_* entity/filing tools), so an agent can route to it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than framed: 'Filter by call_sign, classification, is_ngso; set summary=true for aggregate counts' tells how to parameterize but never states when this tool is the right choice versus an alternative, nor any exclusions. There is no sibling to name here, so the omission is less costly, but explicit context is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

researchA
Read-only

Primary research tool — searches filings, entities, and semantic index in parallel. Use this FIRST for any question. Pass the agency parameter for agency-specific questions (e.g., agency="FCC" for FCC questions).

ParametersJSON Schema
NameRequiredDescriptionDefault
focusNoOptional focus area: filing, entity, spectrum, or general (default: general)
agencyNoFilter all sub-queries by agency (FCC, ITU, UN_OOSA). Recommended for agency-specific questions.
questionYesNatural language question about space regulatory filings, entities, or spectrum

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotation already indicates readOnlyHint=true (safe read operation). Description adds that it searches in parallel but does not disclose performance characteristics, rate limits, or empty result behavior. Adequate but not enriched.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with purpose. No redundancy or filler. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a broad search tool with 3 well-documented parameters and no output schema, the description covers usage intent and priority. Lacks return value description but is sufficient for selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already well-documented. Description adds usage guidance for the agency parameter but duplicates the focus parameter's default. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it is the primary research tool that searches filings, entities, and semantic index in parallel. Distinguishes itself from more specific sibling tools like search_filings, search_entities, and search_semantic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this FIRST for any question' and advises passing the agency parameter for agency-specific questions. Provides clear context but does not explicitly mention when not to use it or name alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_entitiesA
Read-only

Search regulatory entities (companies, operators, manufacturers, governments) by name, type, or country. Supports fuzzy name matching.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFuzzy search on entity name and aliases
pageNoPage number (default 1)
typeNoFilter by entity type (OPERATOR, MANUFACTURER, GOVERNMENT, etc.)
countryNoFilter by country code (US, GB, FR, etc.)
per_pageNoResults per page (default 25, max 100)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so no contradiction. The description adds 'Supports fuzzy name matching', which is useful but does not disclose pagination behavior, rate limits, or default ordering. With annotations covering read-only, the description adds moderate value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no fluff, front-loaded with purpose and key features.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with 5 optional parameters and no output schema, the description covers the major dimensions: entity types, filters, and fuzzy search. It lacks details on default behavior when no parameters are given or result sorting, but is otherwise adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description mentions filtering by name, type, or country, but this repeats schema info without adding new semantic details like accepted data formats or enum values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb (Search) and resource (regulatory entities), lists entity types and filter criteria, and clearly distinguishes from sibling tools like search_filings or search_satellites.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the tool searches regulatory entities by name, type, or country with fuzzy matching, providing clear context. However, it does not explicitly specify when not to use this tool or compare with alternatives like search_screening or search_semantic.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_federal_awardsA
Read-only

Search U.S. federal awards (USAspending contracts + IDVs) by recipient, agency, award type, NAICS, or minimum amount, joined to the resolved recipient entity. Ordered by award amount (largest first). Use for 'NASA contracts to Boeing over $1B' or an operator's federal funding footprint.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 50, max 500)
naicsNoNAICS code prefix (e.g. 5415 for computer systems design)
sinceNoOnly awards starting on/after this date (YYYY-MM-DD)
agencyNoSubstring match on awarding/sub/funding agency (e.g. NASA, Department of Defense)
entity_idNoFilter by resolved recipient entity UUID
recipientNoSubstring match on recipient/company name (e.g. boeing)
award_typeNoAward type: 'contract' or 'idv'
min_amountNoMinimum award amount in USD (e.g. 1000000000 for $1B+)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true; description adds that results are ordered by award amount and joined to resolved entity, but does not cover pagination, rate limits, or error states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: two sentences with no unnecessary words. Action, parameters, ordering, and use cases are all presented efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description provides enough context (join, ordering, examples) for typical award search queries. Could mention return fields, but still functional.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions already cover all parameters (100% coverage). Description merely lists example filter fields without adding new semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches U.S. federal awards from USAspending, specifying the resource (contracts+IDVs) and join to resolved recipient entity. It distinguishes from sibling search tools like search_entities which search for entities, not awards.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides two explicit use cases ('NASA contracts to Boeing over $1B' and 'operator's federal funding footprint'), indicating when to use. However, does not explicitly contrast with alternatives or state when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_filingsA
Read-only

Search space regulatory filings by keyword, agency, type, status, and date range. Returns a paginated list of filings from FCC, ITU, UNOOSA, and other agencies.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch query for filing titles and summaries
pageNoPage number (default 1)
typeNoFilter by filing type (SATELLITE_LICENSE, EARTH_STATION_PERMIT, SPECTRUM_COORDINATION, etc.)
agencyNoFilter by source agency (FCC, ITU, UN_OOSA, FAA_AST, NOAA)
docketNoFilter by docket number (exact match)
statusNoFilter by status (FILED, GRANTED, DENIED, UNDER_REVIEW, etc.)
per_pageNoResults per page (default 10, max 100)
count_onlyNoIf true, return only {total: N} without fetching rows
filed_afterNoMinimum filed date (YYYY-MM-DD)
filed_beforeNoMaximum filed date (YYYY-MM-DD)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description adds limited behavioral context beyond that (e.g., paginated list, agencies). It does not disclose rate limits, authentication, or response structure, but the main traits are adequately covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and key filters. Every sentence adds value with no redundancy. Efficiently communicates the tool's purpose and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters and no output schema, the description is adequate but incomplete. It mentions pagination and agencies but doesn't describe the response fields, count_only behavior, or default ordering. More context would help agents understand the returned data structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds little beyond summarizing the main filters (keyword, agency, type, status, date range). It omits mentioning page, per_page, count_only, docket, which are in the schema, but overall it provides a concise overview without new semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search space regulatory filings by keyword, agency, type, status, and date range', specifying the action, resource, and key filters. It distinguishes from siblings like get_filing_detail (single filing) and search_entities (entities).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. For example, it doesn't mention that get_filing_detail should be used for individual filing details. The description only states what it does, not when to choose it over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_ground_stationsA
Read-only

Search ground / earth stations by name, frequency band, operator, or geographic proximity (near='lat,lon' within radius_km, ordered by great-circle distance). Proximity defaults to the authoritative FCC IBFS registry (reliable coordinates); band/entity searches use the entity-linked extracted set. Each result is labeled with its source. Use for 'earth stations within 200km of 38.9,-77.0' or an operator's gateway footprint.

ParametersJSON Schema
NameRequiredDescriptionDefault
bandNoFrequency band, exact match against the station's band list (e.g. Ku); requires source=extracted
nameNoSubstring match on station name / FCC call sign
nearNoProximity anchor as 'lat,lon' (e.g. '38.9,-77.0'); returns stations within radius_km ordered by distance
limitNoMax results (default 50, max 500)
sourceNoDataset: 'fcc' (authoritative FCC IBFS registry, reliable coordinates) or 'extracted' (entity-linked, LLM-extracted from filings, carries bands). Defaults to fcc for proximity, extracted for band/entity searches.
operatorNoSubstring match on operator / licensee name
entity_idNoFilter by resolved operator entity UUID; requires source=extracted
radius_kmNoSearch radius in km for near= (default 500)

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description adds transparency by stating results are ordered by great-circle distance and labeled with source. No contradictions; it provides useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured: a summary sentence, followed by source details and an example. Every sentence adds value without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, the description comprehensively covers search functionality, source selection logic, defaults, ordering, and examples. It leaves no ambiguity for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema description coverage is 100%, the description adds significant meaning: it clarifies the interplay between source, near, band, operator, and default radius. For example, it states band search requires source=extracted, which enriches the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches ground/earth stations by name, frequency band, operator, or geographic proximity, with specific examples. It distinguishes from sibling search tools by detailing its unique capabilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use each source (fcc vs extracted) and provides explicit examples like 'earth stations within 200km of 38.9,-77.0'. It also notes default behaviors for proximity vs band/entity searches, giving clear guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_positionsA
Read-only

Search LLM-extracted policy arguments across COMMENT / REPLY / PETITION filings. Filter by docket, overall stance, argument type, target party, or filer. Use this to answer questions like 'who opposed X?', 'what did SpaceX argue in 25-306?', 'which filings support modular satellite licensing?'. Returns one row per (filing, argument).

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSubstring search across argument text and executive summaries
filerNoSubstring match on the filing party's canonical name
limitNoMax results (default 25, max 200)
docketNoFilter by docket number (e.g. '25-306')
stanceNoFilter by overall stance: support|oppose|qualified_support|qualified_opposition|informational
positionNoFilter by per-argument position: support|oppose|modify|neutral
target_partyNoSubstring match on target_party (the entity being addressed or opposed)
argument_typeNoFilter by argument type: legal|technical|economic|policy|procedural

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the description doesn't need to restate safety. It adds value by explaining the data origin (LLM-extracted) and return granularity (one row per filing, argument), which are behavioral traits beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: first sets function and scope, second lists filter options, third gives concrete examples and return format. No redundancy, front-loaded with key purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the description explains the return structure (one row per filing, argument). It covers filter categories and provides examples. Missing details on pagination or ordering, but limit parameter covers result count.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description lists filter categories but does not add detail beyond what the schema already provides for each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches LLM-extracted policy arguments across COMMENT/REPLY/PETITION filings with specific filters. It distinguishes from sibling tools like search_filings (filings-level) and search_semantic (semantic search) by focusing on structured arguments and providing concrete example questions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes example questions ('who opposed X?', 'which filings support modular satellite licensing?'), which imply appropriate use cases. However, it does not explicitly state when not to use this tool or mention alternatives like search_filings for raw filings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_satellitesA
Read-only

Search the satellite catalog (UCS + Space-Track SATCAT) by name, operator, country, orbit class, status, COSPAR, or NORAD id. Joined to the resolved operator entity. Use for 'what does SpaceX have in LEO?', 'find NORAD 44713', or building an operator's fleet.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSubstring match on satellite name
limitNoMax results (default 50, max 500)
noradNoNORAD catalog id (integer)
cosparNoCOSPAR / international designator (exact match)
statusNoOrbital status (e.g. active, decayed)
countryNoOperator country code (exact match)
operatorNoSubstring match on operator name (e.g. SpaceX); note many rows use a country code (US, CIS, PRC) as the operator
entity_idNoFilter by resolved operator entity UUID
orbit_classNoOrbit class (e.g. LEO, MEO, GEO)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses data sources, the join to resolved operator entity, and a nuance about operator field using country codes. Adds value beyond the readOnlyHint annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with examples, no fluff. Front-loaded with action and efficiently conveys key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers search purpose and data sources well. Lacks explicit mention of pagination or default/max limits, but limit is described in schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description lists parameters but adds no new information beyond the schema except noting the operator quirk.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches satellite catalogs (UCS + Space-Track SATCAT) by multiple identifiers and provides specific example queries, making the purpose unambiguous and distinct from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete example use cases ('what does SpaceX have in LEO?', 'find NORAD 44713'). Does not explicitly state when not to use, but context makes it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_screeningA
Read-only

Check entities against consolidated sanctions / export-control screening lists (OFAC SDN, BIS Entity List, ITAR Debarred, etc.). Filter by entity, name, list source, or minimum match similarity. Use for compliance / due-diligence questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
listNoSubstring match on screening list source (e.g. SDN, Entity List, ITAR)
nameNoSubstring match on entity or matched name
limitNoMax results (default 50, max 500)
entity_idNoFilter by resolved entity UUID
min_similarityNoMinimum match similarity 0-1 (e.g. 0.9)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with the readOnlyHint annotation, as 'Check entities' implies a read operation. It adds value by specifying the consolidated lists and filtering options, going beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with purpose followed by usage tip. No wasted words, highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 optional parameters and no output schema. The description explains the purpose and lists checked but omits response format. However, it is adequate for an agent to infer the tool's role.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-documented in the schema. The description recaps the filters (entity, name, list, similarity) but does not add significant new semantic detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool checks entities against sanctions/export-control screening lists, listing specific lists like OFAC SDN, BIS Entity List, ITAR Debarred. This distinguishes it from sibling search tools like search_entities, which is a general entity search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use for compliance / due-diligence questions,' providing a clear usage context. It doesn't specify when not to use or mention alternatives, but the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_sec_filingsA
Read-only

Search SEC filings for tracked space companies (8-K material events, 10-Q, 10-K). Filter by ticker, CIK, company name, resolved entity, form type, or date. Use for financial signals — e.g. recent 8-Ks for a satellite operator.

ParametersJSON Schema
NameRequiredDescriptionDefault
cikNoSEC CIK number
limitNoMax results (default 50, max 500)
sinceNoOnly filings on/after this date (YYYY-MM-DD)
tickerNoCompany ticker (e.g. ASTS)
companyNoSubstring match on company name
entity_idNoFilter by resolved entity UUID
form_typeNoSEC form type (e.g. 8-K, 10-Q, 10-K)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description adds limited behavioral context beyond specifying the scope (space companies, form types). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. Front-loaded with the core action and scope. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, full schema coverage, and no output schema, the description is mostly complete. It could mention sorting or default limits, but the limit parameter covers pagination. Adequate for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 7 parameters adequately. The description lists some filter options but adds no new meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches SEC filings for tracked space companies and lists specific form types (8-K, 10-Q, 10-K). It distinguishes from siblings like search_filings by mentioning space companies, but does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description suggests usage for financial signals with an example, but does not provide explicit when-not-to-use guidance or name alternatives. Usage context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_semanticA
Read-only

Semantic vector search across filing text using natural language. Uses nomic-embed-text-v1.5 embeddings to find filings by meaning, not just keywords. Note: FCC filings have limited embedding coverage — use search_filings for FCC keyword search.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 10, max 50)
queryYesNatural language search query
agencyNoFilter by source agency
filed_afterNoMinimum filed date (YYYY-MM-DD)
filed_beforeNoMaximum filed date (YYYY-MM-DD)
min_similarityNoMinimum cosine similarity threshold (default 0.5)

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond annotations by specifying the use of nomic-embed-text-v1.5 embeddings and noting limited FCC filing coverage. This complements the readOnlyHint annotation with operational constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, each serving a clear purpose: the first defines the tool's function and method, the second provides a critical caveat and alternative. No filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters and no output schema, the description sufficiently covers its purpose, embedding technique, limitation, and alternative tool, providing a complete mental model for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the description adds context about the embedding model and why parameters like limit might matter, but does not repeat schema details. This provides meaningful additional guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs semantic vector search using natural language, distinguishing it from keyword search by explicitly mentioning 'meaning' vs 'keywords'. It also names the sibling tool search_filings for FCC searches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises to use search_filings for FCC keyword search due to limited embedding coverage, providing clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_spectrumA
Read-only

Find which entities hold a frequency band. Given a range in MHz, returns spectrum allocations overlapping it, joined to the source filing and applicant — e.g. 'who is allocated 11700-12200 MHz downlink?'. Filter by agency, direction, polarization, or holder name.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 50, max 500)
agencyNoFilter by source agency (FCC, ITU, ...)
holderNoSubstring match on the allocation holder (applicant entity)
directionNoFilter by direction (e.g. uplink, downlink)
freq_low_mhzNoLower bound of the band to search, in MHz
polarizationNoFilter by polarization
freq_high_mhzNoUpper bound of the band to search, in MHz

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is consistent with the readOnlyHint annotation, but it does not disclose additional behavioral traits such as pagination, rate limits, or data freshness. It adds minimal context beyond what annotations already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences with no wasted words. The first sentence immediately states the purpose, and the example reinforces usage efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and 7 parameters, the description adequately explains inputs (range) and outputs (allocations joined to filing and applicant). It could mention default limit but is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 7 parameters have descriptions in the schema (100% coverage), so the description adds little new semantic value beyond contextualizing freq_low_mhz and freq_high_mhz as a range. The schema already handles parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool finds entities holding a frequency band and returns spectrum allocations. It provides a clear example and distinguishes from sibling tools which cover different domains (e.g., satellites, filings).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage via the example and listing of filter options, but it does not explicitly state when to use this tool over alternatives or provide exclusions. Usage is clear but not comprehensive.

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.

  1. 1 tool updatev0.6.6
    • Changedmilestone_adherence1 field changed
      • changedInput schema / properties / classification / description
        Previous value: -"Filter by classification: met|met_late|pending|extended|waived|missed|missed_unverified|unknown"New value: +"Filter by classification: met|met_computed|met_late|pending|extended|waived|missed|verification_required|not_deployment_obligation|attribution_ambiguous|attribution_undetermined|unknown. 'missed_unverified' no longer exists — unverified adverse grades are now 'verification_required'"
  2. 1 tool update
    • Addedmilestone_adherence
  3. 20 tool updatesv0.3.1
    • First observedget_bond_portfolio
    • First observedget_entity_dossier
    • First observedget_entity_profile
    • First observedget_filing_detail
    • First observedget_filing_distribution
    • First observedget_filing_trends
    • First observedget_launch_history
    • First observedget_system_status
    • First observedget_top_filers
    • First observedresearch
    • First observedsearch_entities
    • First observedsearch_federal_awards
    • First observedsearch_filings
    • First observedsearch_ground_stations
    • First observedsearch_positions
    • First observedsearch_satellites
    • First observedsearch_screening
    • First observedsearch_sec_filings
    • First observedsearch_semantic
    • First observedsearch_spectrum

TDQS

A4.2/5.0

Scored across 21 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap. For example, 'research', 'search_filings', and 'search_semantic' target different search methods, while 'get_bond_portfolio', 'get_entity_dossier', and 'get_entity_profile' provide different granularities of entity data.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern ('get_', 'search_'), but 'milestone_adherence' and 'research' lack a prefix. This minor inconsistency does not impair readability.

Tool Count5/5

21 tools cover a broad domain (regulatory filings, entities, satellites, spectrum, etc.) without being overwhelming. Each tool provides unique value, and the count feels justified for the server's purpose.

Completeness5/5

The tool set offers comprehensive coverage of space/telecom regulatory data: entity profiles, filings (keyword, semantic, trends), spectrum, satellites, ground stations, launches, bonds, SEC filings, federal awards, sanctions screening, and policy arguments. No obvious gaps for a read-only data retrieval service.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers