Skip to main content
Glama

Read sourcing session

sourcing_read
Read-onlyIdempotent

Read owned session; omit sessionId to list. Full reads return session detail with any open question, appUrl, candidates and transcript. Pages default to 10 candidates and 10 transcript messages. Page with candidateOffset and candidateLimit (max 50) and transcriptOffset and transcriptLimit (max 20); transcriptOffset counts back from the newest. candidatePage lists missingCandidateIds; transcriptPage return offset, limit, total and hasMore. view "status" returns a lightweight view. Filter with candidateIds (max 50), selection or filterStatus; candidateSort "discovery" or "fit". outreachDraft is the shared template; sourcing_outreach has personalised messages and delivery status. Contacts masked until paid. billing.paymentRequired: true for a current block, null when it could not be verified, else false. billing.remainingFreshEvaluations: paid evaluations left. If textLimits is present, detail was reduced to fit the client's result limit; for full detail, read fewer candidates (candidateIds or a smaller candidateLimit) with transcriptLimit: 1. textLimits.icp is different: the ICP is capped at 10,000 characters, paging does not change it, and the full ICP is in the app at appUrl.

Input Schema

NameRequiredDescriptionDefault
viewNo
limitNo
cursorNo
selectionNo
sessionIdNo
candidateIdsNo
filterStatusNo
candidateSortNo
candidateLimitNo
candidateOffsetNo
transcriptLimitNo
transcriptOffsetNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Although annotations already declare readOnly/idempotent/non-destructive, the description adds substantial non-obvious behavior: contacts masked until paid, billing.paymentRequired tri-state semantics (true/null/false), remainingFreshEvaluations, transcriptOffset counting back from newest, and the textLimits truncation condition with a concrete remedy. This is behavior an agent could not infer from schema or annotations.

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

Conciseness3/5

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

The purpose is front-loaded and most sentences carry unique information, but the body is a chain of semicolon-spliced fragments covering paging, filtering, billing and truncation with little visual grouping, making it dense to parse for a 12-parameter tool.

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, and the description compensates by naming the returned structures (session detail, open question, appUrl, candidates, transcript, candidatePage.missingCandidateIds, transcriptPage offset/limit/total/hasMore, billing fields). Combined with paging and truncation notes, an agent has what it needs to call and interpret this 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?

With 0% schema description coverage the description carries the load, and it does explain candidateOffset/candidateLimit (max 50), transcriptOffset/transcriptLimit (max 20), candidateIds (max 50), selection, filterStatus, candidateSort and both view values. However, the top-level `limit` and `cursor` parameters — presumably the listing-mode pagination — are never mentioned, leaving a real gap.

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 ('Read owned session') and immediately clarifies the dual mode ('omit sessionId to list'), plus positions itself against the sibling sourcing_outreach for delivery status. An agent can identify this tool and its scope without opening the schema.

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?

Explicit routing is given: omit sessionId to list, use view "status" for a lightweight check, use sourcing_outreach for personalised messages and delivery status, and go to appUrl when the full ICP is needed. These are concrete when-to-use and when-to-use-something-else statements.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.