Skip to main content
Glama
AnastasiaKWei

skyportal-mcp

filter_candidates

Search for astronomical candidates by applying filters on classification, redshift, annotation scores, and saved dates. Retrieve paginated results matching your criteria.

Instructions

Search for candidates matching specific criteria on the scanning page.

This performs query-time filtering of existing candidates (not alert-time filtering). Use this to search the scanning page for candidates matching specific properties.

IMPORTANT - Parameter Validation: Before executing this tool, ALWAYS confirm with the user that the filter parameters are reasonable. Explain what the filter will return and ask if they want to proceed. Examples:

  • "I'll search for SNe Ia with braai score > 0.9 saved after 2024-01-01. Proceed?"

  • "This will find likely galaxy transients (sgScore < 0.3). OK?"

  • "Filtering for TDE candidates with ACAI_score > 0.8. Sound good?"

IMPORTANT - After Results: After showing results, offer to display the filter configuration JSON so the user can save it for future use or configure it in the UI.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
group_idNoSearch within specific group ID (optional)
page_numberNoPage number for pagination (default 1)
saved_afterNoOnly candidates saved after this date (ISO: "2024-01-15")
max_redshiftNoMaximum redshift (float)
min_redshiftNoMinimum redshift (float)
num_per_pageNoNumber of results (default 100, max 500)
saved_beforeNoOnly candidates saved before this date (ISO)
saved_statusNoSaved status filter. Options: - "all" (default): all candidates - "savedToAllSelected": saved to all selected groups - "savedToAnySelected": saved to any selected group - "savedToAnyAccessible": saved to any accessible group - "notSavedToAnyAccessible": not saved to any accessible group - "notSavedToAnySelected": not saved to any selected group - "notSavedToAllSelected": not saved to all selected groupsall
classificationsNoComma-separated classifications to INCLUDE (e.g., "SN Ia,SN Ib/c,SN II")
annotation_filtersNoJSON-encoded list of annotation filters. Each filter is an object with: - "origin": annotation origin (e.g., "braai", "kowalski", "Kowalski") - "key": annotation key (e.g., "braai", "sgScore", "ACAI_score") - "min": minimum value (optional, for range filters) - "max": maximum value (optional, for range filters) - "value": exact value (optional, for exact match filters) Common examples: - Real/bogus: [{"origin":"braai","key":"braai","min":0.8}] - Star/galaxy: [{"origin":"kowalski","key":"sgScore","max":0.3}] - ACAI score: [{"origin":"Kowalski","key":"ACAI_score","min":0.8}] - Combined: [{"origin":"braai","key":"braai","min":0.9},{"origin":"kowalski","key":"sgScore","max":0.3}] Note: Available annotations depend on your instance. Use get_candidate_filter_reference() or inspect sources to discover annotation origins/keys available.
first_detected_afterNoOnly sources first detected after this date
last_detected_beforeNoOnly sources last detected before this date
classifications_rejectNoComma-separated classifications to EXCLUDE (e.g., "AGN,varstar,bogus")

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It reveals that this is query-time filtering (not alert-time), mandates user confirmation before execution, and says to offer the filter configuration JSON after results. These are meaningful behavioral disclosures beyond what a schema would indicate, though it could also mention pagination or return format (but output schema exists).

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 description is well-structured with clear paragraphs and bolded 'IMPORTANT' sections, making it scannable. The parameter-validation examples add length but are valuable for guiding the required user interaction. It is slightly longer than strictly necessary, but every sentence contributes behavioral or usage guidance.

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 (13 parameters, no required fields) and the presence of an output schema, the description adequately covers the tool's role, the mandatory user-confirmation workflow, and post-result actions. It does not explain return values, but the output schema handles that. The description is sufficiently complete for an agent to understand when and how to invoke the 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 input schema already provides comprehensive parameter documentation. The tool description adds some examples within the parameter-validation section (e.g., 'braai score > 0.9', 'sgScore < 0.3'), but these do not expand on the schema's parameter semantics. The baseline of 3 is appropriate because the schema does the heavy lifting, though the examples reinforce usage.

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 opens with 'Search for candidates matching specific criteria on the scanning page,' which clearly states the verb (search), resource (candidates), and scope (scanning page). It further distinguishes itself by clarifying 'query-time filtering of existing candidates (not alert-time filtering),' which separates it from similar tools. This is a specific and clear purpose.

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 clearly indicates when to use the tool: 'Use this to search the scanning page for candidates matching specific properties.' It also provides procedural guidance, such as 'Before executing this tool, ALWAYS confirm with the user that the filter parameters are reasonable.' However, it does not explicitly mention alternative tools or when NOT to use it, so it misses the full 'when/alternatives' guidance for a 5.

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

Install Server

Other Tools

Latest Blog Posts

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/AnastasiaKWei/skyportal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server