Skip to main content
Glama
coreprocess

Periscope MCP

Official
by coreprocess

Start a query

query
Read-only

Starts a read-only query against a selected source and returns a resultId immediately; rejects invalid or non-read-only queries. Call get_result or read_result to fetch paged or downloadable results.

Instructions

Starts a read-only query and returns a resultId immediately. Query language depends on the source (see list_sources). Invalid or non-read-only queries are rejected right away with a reason. Then call get_result / read_result.

Input Schema

NameRequiredDescriptionDefault
queryYesSQL, Cosmos SQL, KQL, a blob glob or a Redis command
paramsNoBind parameters (format depends on the source)
sourceYesSource name from list_sources
optionsNoType-specific options (see list_sources)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.0.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, yet the description still adds real value: the call returns immediately with a resultId rather than results, and invalid/non-read-only queries fail fast with a rejection reason. Missing detail on size limits or timeouts, but the async-vs-sync behavior is the critical disclosure and it is present.

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 tight sentences with the return behavior front-loaded, then the language dependency, then the follow-up call. No filler and no repetition of the title.

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 correctly supplies the return value (resultId) and the continuation path, which is the main thing an agent needs. It could say more about result lifetimes or options, but for a 4-parameter read-only launcher this is close to 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?

Schema description coverage is 100% and the schema even enumerates the query dialects, so the baseline is 3. The description's only added semantics is that the applicable language is determined by the chosen source via list_sources, which is useful but marginal; nothing is said about `params` or `options` formats 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?

States a specific verb and resource (starts a read-only query) plus the exact return contract (a resultId, immediately), which signals the async pattern. It also distinguishes itself from the follow-up siblings get_result/read_result by naming them as the next step.

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?

Gives clear context: query language depends on the source (see list_sources), and the agent is told to follow up with get_result/read_result. It stops short of stating when NOT to use this tool (e.g. re-reading an existing resultId, or cancelling via cancel_query), so it is strong but not fully routing-aware.

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