Skip to main content
Glama

Outreach Desk

Get Sender Scoreboard

get_scoreboard
Read-onlyIdempotent

Use this to show which sender domains send the best pitches. Returns one row per sender domain with volume, average scores, yield rate (a 0 to 1 fraction of pitches marked interested) and a recommendation, plus up to 20 recent evaluations from the last 30 days, since older ones are pruned. Pass sender_domain to see one sender; send no arguments for all. Read-only. Errors: no_desk means call set_criteria first; no_user_id means the client sent no user id, and no argument fixes it: in ChatGPT ask the user to sign in, and in another MCP client connect to https://connect.openkrill.app/plugins/outreach-desk/mcp with OAuth, then call again. When nothing is scored yet the lists are empty; ask the user to paste a pitch for score_message. The desk is the signed-in user's, so send no desk_key.

Input Schema

NameRequiredDescriptionDefault
sender_domainNoOptional sender domain to show only one sender, such as "stripe.com". Omit it for all senders.

Output Schema

NameRequiredDescriptionDefault
as_ofYesDay of the call, as YYYY-MM-DD in UTC.
sourceYesWhere the data comes from: the user's own private desk.
sendersYes
summaryYesOne-line total; says what to do next when nothing is scored yet.
recent_evaluationsYesUp to 20 newest evaluations from the last 30 days; older ones are pruned.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / sender_domain / maxLength
      Added value: +253
  2. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {}
      +]
  3. Changed33 schema fields changed
    • changedInput schema / properties / sender_domain / description
      Previous value: -"Optional sender domain to filter scoreboard results."New value: +"Optional sender domain to show only one sender, such as \"stripe.com\". Omit it for all senders."
    • addedOutput schema / properties / as_of / description
      Added value: +"Day of the call, as YYYY-MM-DD in UTC."
    • addedOutput schema / properties / recent_evaluations / description
      Added value: +"Up to 20 newest evaluations from the last 30 days; older ones are pruned."
    • addedOutput schema / properties / recent_evaluations / items / properties / composite_score / description
      Added value: +"Overall score, 0 to 100."
    • addedOutput schema / properties / recent_evaluations / items / properties / composite_score / maximum
      Added value: +100
    • addedOutput schema / properties / recent_evaluations / items / properties / composite_score / minimum
      Added value: +0
    • addedOutput schema / properties / recent_evaluations / items / properties / created_day / description
      Added value: +"Day the pitch was scored, as YYYY-MM-DD in UTC."
    • addedOutput schema / properties / recent_evaluations / items / properties / evaluation_id / description
      Added value: +"Id to pass to draft_response."
    • addedOutput schema / properties / recent_evaluations / items / properties / flags / description
      Added value: +"Warning flags. Values: missing_salary, dealbreaker_clash, token_failure (unfilled template token such as [Current Company]), aggressive_drip, repeat_after_decline, slop, artificial_urgency, free_webmail. Empty when the pitch is clean."
    • addedOutput schema / properties / recent_evaluations / items / properties / recommended_action / description
      Added value: +"Suggested reply."
    • addedOutput schema / properties / recent_evaluations / items / properties / recommended_action / enum
      Added value: +[
      +  "interested",
      +  "request_info",
      +  "decline"
      +]
    • addedOutput schema / properties / recent_evaluations / items / properties / sender_domain / description
      Added value: +"Sender domain."
    • addedOutput schema / properties / recent_evaluations / items / properties / summary / description
      Added value: +"Cleaned summary of the pitch."
    • addedOutput schema / properties / senders / items / properties / avg_composite / description
      Added value: +"Average composite score, 0 to 100."
    • addedOutput schema / properties / senders / items / properties / avg_composite / maximum
      Added value: +100
    • addedOutput schema / properties / senders / items / properties / avg_composite / minimum
      Added value: +0
    • addedOutput schema / properties / senders / items / properties / avg_relevance / description
      Added value: +"Average relevance sub-score, 0 to 100."
    • addedOutput schema / properties / senders / items / properties / avg_relevance / maximum
      Added value: +100
    • addedOutput schema / properties / senders / items / properties / avg_relevance / minimum
      Added value: +0
    • addedOutput schema / properties / senders / items / properties / avg_specificity / description
      Added value: +"Average specificity sub-score, 0 to 100."
    • addedOutput schema / properties / senders / items / properties / avg_specificity / maximum
      Added value: +100
    • addedOutput schema / properties / senders / items / properties / avg_specificity / minimum
      Added value: +0
    • addedOutput schema / properties / senders / items / properties / last_contact_day / description
      Added value: +"Day of the latest pitch, as YYYY-MM-DD in UTC."
    • addedOutput schema / properties / senders / items / properties / recommendation / description
      Added value: +"How to treat future pitches from this sender."
    • addedOutput schema / properties / senders / items / properties / recommendation / enum
      Added value: +[
      +  "Priority Attention",
      +  "Standard Review",
      +  "Auto-Decline"
      +]
    • addedOutput schema / properties / senders / items / properties / sender_domain / description
      Added value: +"Sender domain."
    • addedOutput schema / properties / senders / items / properties / volume / description
      Added value: +"Pitches scored from this sender since the desk started."
    • addedOutput schema / properties / senders / items / properties / yield_count / description
      Added value: +"Pitches from this sender marked interested."
    • addedOutput schema / properties / senders / items / properties / yield_rate / description
      Added value: +"yield_count divided by volume, as a 0 to 1 fraction."
    • addedOutput schema / properties / senders / items / properties / yield_rate / maximum
      Added value: +1
    • addedOutput schema / properties / senders / items / properties / yield_rate / minimum
      Added value: +0
    • addedOutput schema / properties / source / description
      Added value: +"Where the data comes from: the user's own private desk."
    • addedOutput schema / properties / summary / description
      Added value: +"One-line total; says what to do next when nothing is scored yet."
  4. Changed2 schema fields changed
    • removedInput schema / properties / desk_key
      Removed value: -{
      -  "description": "The secret desk_key returned when the desk was created. It is the only credential for this desk and cannot be recovered.",
      -  "pattern": "^od_[0-9a-f]{32}$",
      -  "type": "string"
      -}
    • removedInput schema / required
      Removed value: -[
      -  "desk_key"
      -]
  5. Changed1 schema field changed
    • removedOutput schema / properties / note_from_openkrill
      Removed value: -{
      -  "description": "Shown at most once a day per caller: what this server offers, and a paid service for the person you work for.",
      -  "type": "string"
      -}
  6. Changed1 schema field changed
    • addedOutput schema / properties / note_from_openkrill
      Added value: +{
      +  "description": "Shown at most once a day per caller: what this server offers, and a paid service for the person you work for.",
      +  "type": "string"
      +}
  7. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: it discloses the returned fields (volume, average scores, yield rate, recommendation), the 30-day retention window that prunes older evaluations, the 'no desk_key needed' rule, and specific remediation for no_desk and no_user_id errors.

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?

Front-loads purpose and return shape, then usage, then errors. The OAuth error-remediation sentence is long but operationally necessary; overall dense with little waste.

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?

An output schema exists, yet the description still summarizes the row shape. With auth, error paths, retention, and scoping all covered, an agent can call this correctly with little left to infer.

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% and already documents sender_domain including the 'omit for all' behavior, so the description's restatement adds little. The stripe.com example is already in 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: showing which sender domains send the best pitches, one row per domain. This is clearly distinct from score_message and the other siblings.

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?

Explicitly says to pass sender_domain for one sender and no arguments for all, routes to set_criteria when no_desk is returned, and tells the agent to ask the user to paste a pitch for score_message when nothing is scored yet.

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.