Skip to main content
Glama
justinmclean

Podlings MCP

by justinmclean

Podlings MCP

A small dependency-free MCP server for working with Apache Software Foundation Incubator podlings.xml data.

It exposes tools to:

  • load podling metadata from a URL or local XML file

  • list podlings with optional filtering

  • list current, graduated, and retired podlings

  • fetch details for a specific podling

  • return basic Incubator summary statistics

  • return mentor-count coverage statistics

  • analyze podling starts and active population over time

  • analyze yearly completion counts

  • analyze graduation rate over time

  • analyze graduation and retirement duration over time

  • inspect podling reporting cadence and upcoming reporting periods

If source is omitted, the server defaults to https://incubator.apache.org/podlings.xml.

The default ASF podlings XML source is cached locally for 24 hours. Set PODLINGS_MCP_CACHE_DIR to override the cache directory.

Requirements

  • Python 3.12+

Related MCP server: Apache Health MCP

Install

python3 -m pip install .

For development tools:

python3 -m pip install -e .[dev]

Run

After installation, run the stdio MCP server with:

podlings-mcp

For local development without installing first, you can still run:

python3 server.py

The server uses stdio, so it is intended to be launched by an MCP client. It accepts standard JSON-RPC 2.0 request objects and non-empty batches, ignores notifications, and returns structured JSON-RPC errors for malformed input, invalid request shapes, unknown methods, and invalid MCP tool parameters.

Test

python3 -m unittest discover -s tests -v

The tests cover parser behavior, tool functions, error cases, and a small end-to-end MCP stdio exchange.

Developer Commands

make format
make check-format
make test
make coverage
make lint
make typecheck
make check

Formatting and linting use ruff, including make check-format for CI-style format verification, and type checking uses mypy. See docs/architecture.md for the current module layout.

Example MCP client config

{
  "mcpServers": {
    "podlings": {
      "command": "podlings-mcp"
    }
  }
}

The package also keeps apache-podlings-mcp as a backwards-compatible command alias.

Concepts and Defaults

  • sponsor_type defaults to incubator across the filtering and analytics tools.

  • completed means podlings that reached an end state: graduated or retired.

  • Count and rate timeline tools use podling enddate to place outcomes into a year.

  • Duration timeline tools use both startdate and enddate to calculate months to graduate or retire.

  • completed_podlings_by_year returns both lists by default, and the graduated_podlings_by_year and retired_podlings_by_year tools are convenience wrappers over that same lookup.

  • reporting_schedule is schedule-aware, not submission-aware: it answers cadence, due-this-month, and expected-period questions from podlings.xml scheduling metadata only.

Tools

list_podlings

List podlings from podlings.xml.

Arguments:

  • source: URL or local file path

  • status: optional exact status filter

  • sponsor_type: optional sponsor type filter, defaults to incubator

  • search: optional case-insensitive name/description/champion search

  • limit: optional max number of results to return

source is optional and defaults to the ASF Incubator podlings.xml URL.

list_current_podlings

List podlings with status="current".

Arguments:

  • source: URL or local file path

  • sponsor_type: optional sponsor type filter, defaults to incubator

  • search: optional case-insensitive name/description/champion search

  • limit: optional max number of results to return

source is optional and defaults to the ASF Incubator podlings.xml URL.

list_graduated_podlings

List podlings with status="graduated".

Arguments:

  • source: URL or local file path

  • sponsor_type: optional sponsor type filter, defaults to incubator

  • search: optional case-insensitive name/description/champion search

  • limit: optional max number of results to return

source is optional and defaults to the ASF Incubator podlings.xml URL.

list_retired_podlings

List podlings with status="retired".

Arguments:

  • source: URL or local file path

  • sponsor_type: optional sponsor type filter, defaults to incubator

  • search: optional case-insensitive name/description/champion search

  • limit: optional max number of results to return

source is optional and defaults to the ASF Incubator podlings.xml URL.

get_podling

Return a single podling by name.

Arguments:

  • source: URL or local file path

  • name: podling name

source is optional and defaults to the ASF Incubator podlings.xml URL.

podling_stats

Return summary statistics for a podlings.xml source.

Arguments:

  • source: URL or local file path

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

The stats include sponsor classification so you can distinguish:

  • incubator: sponsored by the Incubator

  • project: sponsored by another ASF project/PMC

  • unknown: no sponsor value was found

mentor_count_stats

Return mentor coverage and mentor-count distribution stats for a podlings.xml source.

Arguments:

  • source: URL or local file path

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

raw_podlings_xml_info

Return source metadata and a small preview of parsed records for troubleshooting.

Arguments:

  • source: URL or local file path

source is optional and defaults to the ASF Incubator podlings.xml URL.

graduation_rate_over_time

Return yearly graduation and retirement counts plus graduation rate based on podling enddate.

Arguments:

  • source: URL or local file path

  • start_year: optional inclusive start year filter

  • end_year: optional inclusive end year filter

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

podlings_started_over_time

Return yearly podling start counts based on startdate.

Arguments:

  • source: URL or local file path

  • start_year: optional inclusive start year filter

  • end_year: optional inclusive end year filter

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

started_podlings_by_year

Return the podlings that started in a specific year.

Arguments:

  • source: URL or local file path

  • year: required year to inspect

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

active_podlings_by_year

Return yearly active-podling counts based on lifecycle span.

Arguments:

  • source: URL or local file path

  • start_year: optional inclusive start year filter

  • end_year: optional inclusive end year filter

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

active_podlings_in_year

Return the podlings that were active during a specific year.

Arguments:

  • source: URL or local file path

  • year: required year to inspect

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

completion_rate_over_time

Return yearly completion rate using completed outcomes divided by active population.

Arguments:

  • source: URL or local file path

  • start_year: optional inclusive start year filter

  • end_year: optional inclusive end year filter

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

completion_count_over_time

Return yearly completed podling counts based on enddate, split into graduated and retired outcomes.

Arguments:

  • source: URL or local file path

  • start_year: optional inclusive start year filter

  • end_year: optional inclusive end year filter

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

completed_podlings_by_year

Return the podlings that completed in a specific year, split into graduated and retired outcomes.

Arguments:

  • source: URL or local file path

  • year: required year to inspect

  • status: optional filter, graduated or retired

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

completed_podlings_in_range

Return the podlings that completed within an inclusive year range.

Arguments:

  • source: URL or local file path

  • start_year: required inclusive start year

  • end_year: required inclusive end year

  • status: optional filter, graduated or retired

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

graduated_podlings_by_year

Return the podlings that graduated in a specific year.

Arguments:

  • source: URL or local file path

  • year: required year to inspect

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

retired_podlings_by_year

Return the podlings that retired in a specific year.

Arguments:

  • source: URL or local file path

  • year: required year to inspect

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

graduation_time_over_time

Return yearly time-to-graduate stats in months based on podling startdate and enddate, including average, median, and percentile views.

Arguments:

  • source: URL or local file path

  • start_year: optional inclusive start year filter

  • end_year: optional inclusive end year filter

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

time_to_retirement_over_time

Return yearly time-to-retirement stats in months based on podling startdate and enddate, including average, median, and percentile views.

Arguments:

  • source: URL or local file path

  • start_year: optional inclusive start year filter

  • end_year: optional inclusive end year filter

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

reporting_schedule

Return reporting cadence and expected reporting periods for current podlings, or for a specific named podling.

Arguments:

  • source: URL or local file path

  • name: optional exact podling name lookup

  • as_of_date: optional ISO date used for schedule evaluation, defaults to today

  • report_month: optional reporting month in YYYY-MM format; defaults to the active reporting cycle derived from as_of_date

  • due_this_month: optional boolean filter

  • sponsor_type: optional sponsor type filter, defaults to incubator

source is optional and defaults to the ASF Incubator podlings.xml URL.

Usage Examples

These examples show natural-language requests an MCP client can answer with the tools below.

Current Podling Review Workflow

Use these when preparing for a regular review of the active Incubator podling roster:

  • "Show me the current Incubator-sponsored podlings."

  • "Summarize the current Incubator podlings, including how many have descriptions, sponsors, champions, and mentors listed."

  • "Which current podlings have unusually low mentor coverage?"

  • "Give me the full podlings.xml record for PodlingFoo."

This gives reviewers a quick view of the active roster, basic metadata coverage, and mentor coverage without needing to inspect podlings.xml directly.

Reporting Workflow

Use these when preparing the monthly IPMC reporting cycle:

  • "Which podlings are due to report this month?"

  • "Which podlings are due in the 2026-05 reporting cycle?"

  • "When is PodlingFoo next expected to report?"

  • "Show me the reporting cadence for current Incubator-sponsored podlings."

This gives the IPMC a schedule-oriented view based on podlings.xml reporting metadata without needing a separate Clutch-style workflow. When report_month is omitted, the tool treats the current cycle as running through the third Wednesday of the month, then rolls forward to the next month's cycle.

Cohort And Lifecycle Review

Use these when trying to understand how a group of podlings moved through incubation over time:

  • "How many Incubator-sponsored podlings started each year from 2020 onwards?"

  • "Which podlings started in 2022?"

  • "Show the active podling count by year from 2020 to 2025."

  • "Which podlings were active during 2023?"

This connects yearly trends to the specific podlings behind those trends.

Completion And Graduation Review

Use these when reviewing graduation and retirement outcomes for a period:

  • "Show yearly Incubator podling completions since 2020, split into graduations and retirements."

  • "What was the graduation rate for completed podlings each year from 2020 to 2025?"

  • "Which podlings completed between 2023 and 2024?"

  • "Which podlings retired in 2023?"

This is useful for turning trend charts into a concrete list of podlings to discuss.

Duration Trend Review

Use these when reviewing how long podlings take to reach terminal outcomes:

  • "How long did graduated podlings take to graduate each year, including median and percentile timings?"

  • "Show retirement timing by year for podlings that retired after 2020."

  • "What is the average and median time to retirement for recent retired podlings?"

This separates completion volume from time-to-outcome trends.

Source Troubleshooting Workflow

Use these when a local XML file or alternate URL does not produce the expected results:

  • "Inspect /path/to/podlings.xml and show me the source metadata plus a few parsed records."

  • "List the first 10 normalized podling records from /path/to/podlings.xml."

  • "In /path/to/podlings.xml, show me the parsed record for ExampleOne."

  • "Using /path/to/podlings.xml, show yearly completion counts from 2020 onwards."

This helps separate source-loading issues from filtering or analytics questions.

Source examples

  • ASF URL: https://incubator.apache.org/podlings.xml

  • Local file: /path/to/podlings.xml

Notes

  • Remote sources are fetched with Python's standard library.

  • XML parsing targets the ASF Incubator podlings.xml structure directly.

  • Tools that accept sponsor_type default to incubator.

  • Valid sponsor_type values are incubator, project, and unknown.

Available Tools

22 tools
active_podlings_by_yearC

Return yearly active-podling counts based on lifecycle span.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
start_yearNoOptional inclusive start year filter
end_yearNoOptional inclusive end year filter

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavioral traits. It only reveals a read-like operation ('return'), but does not explain what 'based on lifecycle span' means, aggregation logic, or if results are computed on the fly. This is insufficient for a transparent behavioral model.

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 a single, concise sentence that front-loads the purpose. It is efficient and free of unnecessary words. However, it could be slightly more informative without losing conciseness, hence a 4.

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

Completeness2/5

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

Given the absence of an output schema and the tool's complexity (4 parameters, no required fields), the description is too sparse. It does not explain what the output looks like, what 'yearly' implies, or how the lifecycle span is used. The description is incomplete for reliable tool 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 the parameters are already well-documented in the schema. The description adds no new parameter semantics beyond what is in the schema. A baseline score of 3 is appropriate since the description does not enhance parameter understanding.

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 states the verb 'Return' and resource 'yearly active-podling counts', indicating a counting operation. However, it does not differentiate from the sibling tool 'active_podlings_in_year', which likely has a similar purpose. A 4 is appropriate as it is clear but lacks sibling differentiation.

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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites or exclusions, leaving the agent to infer usage context. A score of 2 reflects the lack of usage guidance.

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

active_podlings_in_yearC

Return the podlings that were active during a specific year.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
yearYesRequired year to inspect

TDQS

C2.9/5.0
Behavior2/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 behavioral disclosure. It only says 'Return', implying a read operation, but does not confirm no side effects, no data modification, or any other behavioral traits like error handling or performance.

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?

A single sentence that directly states the tool's purpose with no extraneous words. However, it could be considered under-specified given the number of similar siblings.

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

Completeness2/5

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

Given no annotations, no output schema, and a very similar sibling tool, the description lacks context for an agent to reliably select this tool. It does not explain the relationship to 'active_podlings_by_year' or what constitutes 'active' in this 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?

The input schema already describes all three parameters with 100% coverage. The description adds no additional meaning beyond the schema, such as how parameters interact or default behaviors.

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 it returns podlings active during a specific year, with a specific verb and resource. However, it does not differentiate from the sibling tool 'active_podlings_by_year', which appears to have an identical purpose, missing the opportunity to clarify any distinction.

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?

The description provides no guidance on when to use this tool versus alternatives like 'active_podlings_by_year' or other year-based podling tools. No prerequisites, conditions, or exclusion criteria are mentioned.

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

completed_podlings_by_yearA

Return the podlings that completed in a specific year, split into graduated and retired outcomes.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
yearYesRequired year to inspect
statusNoOptional completion status filter: graduated or retired

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only describes the return content but does not disclose any behavioral traits such as read-only nature, potential side effects, or performance considerations. More context is needed.

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 concise sentence that is front-loaded with the action and resource. Every word is necessary and there is no redundancy.

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 100% schema coverage and a clear description, the tool's purpose and parameter usage are well covered. The only missing piece is possibly the output format or examples, but without output schema, the description is sufficient for a simple query 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 parameters adequately. The description adds value by explaining the output split but does not elaborate on parameter semantics beyond what the schema provides, keeping it at baseline.

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 'Return' and the resource 'podlings that completed in a specific year', and specifies the split into graduated and retired outcomes, which distinguishes it from siblings like graduated_podlings_by_year.

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 that this tool is for getting both graduated and retired podlings, but it does not explicitly state when to use this tool versus siblings like completed_podlings_in_range or the single-outcome variants. No when-not or alternatives are given.

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

completed_podlings_in_rangeB

Return the podlings that completed within an inclusive year range.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
start_yearYesOptional inclusive start year filter
end_yearYesOptional inclusive end year filter
statusNoOptional completion status filter: graduated or retired

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It fails to disclose that this is a read-only operation, does not mention the data source requirement, or any other behavioral traits beyond the basic purpose.

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 sentence of 12 words, front-loaded with the core action, and contains no fluff. It is appropriately sized for a straightforward tool.

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

Completeness2/5

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

Given the tool has 5 parameters, no output schema, and many siblings, the description is too minimal. It does not explain what podlings are, does not mention the source parameter, and does not describe the output format. It lacks necessary context for an agent to use 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?

The input schema has 100% coverage with descriptions for all parameters. The tool description adds no additional meaning beyond what the schema already provides, so 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 the verb 'Return' and the resource 'podlings that completed', with the condition 'within an inclusive year range'. It effectively distinguishes from sibling tools like 'completed_podlings_by_year' which likely returns for a single year.

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 alternatives. The description does not mention prerequisites, exclusions, or context for selection among numerous sibling tools.

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

completion_count_over_timeA

Return yearly completed podling counts based on end dates, split into graduated and retired outcomes.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
start_yearNoOptional inclusive start year filter
end_yearNoOptional inclusive end year filter

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the aggregation unit (year), date field (end dates), and outcome split, but does not mention whether the operation is read-only, permissions needed, response format, or pagination. Basic but minimally adequate.

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 with clear action and result. Front-loaded with purpose, no superfluous words. Earns its place effectively.

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 4 optional parameters, no output schema, and many siblings, the description covers the core function. However, it lacks details on response structure and how to specify source (URL vs path), which would aid usability. Slightly incomplete but not severely.

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. The description adds no extra meaning about parameters beyond what the schema already provides (source, sponsor_type, start_year, end_year). No syntax, valid values, or examples are given.

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 returns yearly completed podling counts split by outcome, with specific verb 'return' and resource 'yearly completed podling counts'. It distinguishes from siblings like 'graduated_podlings_by_year' and 'completion_rate_over_time' by specifying the split and aggregation.

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 alternatives. The description does not mention any constraints, prerequisites, or exclusion criteria like date range limitations or when count vs rate is appropriate.

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

completion_rate_over_timeB

Return yearly completion rate using completed outcomes divided by active population.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
start_yearNoOptional inclusive start year filter
end_yearNoOptional inclusive end year filter

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; description lacks behavioral details such as side effects, data freshness, permissions, or behavior under missing data. Only states what it returns.

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, no redundant information, very concise and to the point.

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

Completeness2/5

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

No output schema, but description fails to indicate return format (e.g., percentage, list per year) or any important context about the calculation or data source.

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 3 applies. Description does not add extra meaning beyond the schema for parameters.

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 returns yearly completion rate, specifies formula (completed outcomes divided by active population), and differentiates from sibling tools like completion_count_over_time or graduation_rate_over_time.

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 or not use this tool, no comparison with sibling tools, and no prerequisites mentioned.

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

get_podlingA

Return details for a single podling by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
nameYesPodling name

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It fails to disclose any behavioral traits beyond the basic read operation implied by 'Return details'. No mention of side effects, authentication, rate limits, or what 'details' entails.

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, well-formed sentence with no unnecessary words. It is concise and front-loaded with the core purpose.

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?

Given the simple tool (2 parameters, no output schema, no nesting), the description is minimally adequate. However, it would benefit from clarifying what 'details' includes, especially since there is no output schema to describe the return 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 description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema; it merely reiterates that podling is identified by name, while the schema already documents both parameters.

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 action ('Return details'), the resource ('single podling'), and the selection criterion ('by name'). It clearly distinguishes from sibling tools that list multiple podlings or aggregate statistics.

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?

No explicit guidance on when to use this tool versus alternatives. The name and description imply use when a specific podling's details are needed, but no when-not-to-use or alternative comparisons are provided.

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

graduated_podlings_by_yearC

Return the podlings that graduated in a specific year.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
yearYesRequired year to inspect
statusNoOptional completion status filter: graduated or retired

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden. It does not disclose any behavioral traits such as read-only nature, authorization requirements, rate limits, or what happens if no results are found. The description is minimal and lacks transparency.

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 sentence with no unnecessary words. It is appropriately sized and front-loaded for quick understanding, earning its place by stating the core purpose concisely.

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

Completeness2/5

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

Given the tool has 4 parameters, no output schema, no annotations, and many similar sibling tools, the description is insufficient. It does not explain the output format, how filters interact, or provide context to distinguish from alternatives, leaving gaps for the AI agent.

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 input schema already provides descriptions for all parameters. The description adds no additional meaning beyond what is in the schema, thus achieving the baseline score of 3.

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 verb 'Return' and resource 'podlings that graduated' with a condition 'in a specific year'. However, given multiple sibling tools like 'completed_podlings_by_year', it does not differentiate what 'graduated' means versus 'completed' or 'active', leading to potential ambiguity.

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 its many siblings. For example, it does not specify that this tool should be used for graduated podlings only, whereas 'completed_podlings_by_year' might include retired ones. No when-not-to-use information is provided.

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

graduation_rate_over_timeC

Return yearly graduation and retirement counts plus graduation rate based on podling end dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
start_yearNoOptional inclusive start year filter
end_yearNoOptional inclusive end year filter

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states returns based on end dates but does not disclose whether it is read-only, how missing data is handled, or any side effects. The behavior is implied but not explicit.

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?

Single sentence with 15 words, no wasted language. Very concise, but could be structured with more detail while maintaining brevity.

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

Completeness2/5

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

Given 4 parameters, no output schema, and no annotations, the description is minimal. It does not explain calculations, define graduation rate, or clarify what happens without filters, leaving significant gaps for an agent.

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 adds context that results are 'based on podling end dates', which provides some meaning beyond schema descriptions, but does not elaborate on parameter usage.

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?

Description clearly states the tool returns yearly graduation and retirement counts plus graduation rate based on podling end dates. It uses a specific verb and resource, but does not explicitly distinguish from sibling tools like completion_rate_over_time, though the mention of retirement counts adds specificity.

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 similar siblings or when not to use it. The description lacks any context about appropriate 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.

graduation_time_over_timeA

Return yearly average incubation time for graduated podlings based on start and end dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
start_yearNoOptional inclusive start year filter
end_yearNoOptional inclusive end year filter

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided; the description adds context by stating it returns yearly averages based on start and end dates, but lacks details on data handling, such as what happens with missing years or how incubation time is computed.

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 that is front-loaded with the core purpose, containing zero 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?

No output schema exists, yet the description does not specify the return format (e.g., units of time, structure). It is adequate for a simple aggregation tool but leaves some ambiguity.

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?

Input schema covers 100% of parameters with descriptions; the description reinforces that start and end dates are used but adds minimal new 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?

Description clearly states 'Return yearly average incubation time for graduated podlings' with a specific verb and resource, distinguishing it from siblings like 'graduation_rate_over_time' which focuses on rates.

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 average incubation time but provides no explicit guidance on when to use this tool versus alternatives like 'graduation_rate_over_time' or 'completed_podlings_by_year'.

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

list_current_podlingsC

List current podlings.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
searchNoOptional text search across name, description, and champion
limitNoOptional maximum number of results to return

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, and the description does not disclose any behavioral traits (e.g., read-only, pagination, data source). It merely repeats the tool name, adding no value beyond structured fields.

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 a single, concise sentence with no wasted words. It is front-loaded and efficient, though perhaps too brief for completeness.

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

Completeness2/5

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

Given the tool has 4 optional parameters, no output schema, and many siblings, the description lacks critical context: what 'current' means, how source is used, and the return format. This is insufficient for effective tool 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?

Since schema description coverage is 100%, the baseline is 3. The description adds no additional meaning to parameters, but the schema already provides adequate details.

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 action (list) and the resource (current podlings), distinguishing it from siblings like 'list_podlings' or 'list_graduated_podlings'. However, 'current' is not defined, leaving slight ambiguity.

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 over alternatives, such as filtering or search capabilities. The description lacks context for appropriate use cases.

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

list_graduated_podlingsC

List graduated podlings.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
searchNoOptional text search across name, description, and champion
limitNoOptional maximum number of results to return

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only says 'list graduated podlings'. No details on whether it returns all results by default, pagination behavior, authentication needs, or what 'graduated' means. The agent must infer behavior from the name alone.

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 description is extremely short (two words). While it is not verbose, it sacrifices valuable context that could be added without significant length. It is under-specified rather than concise.

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

Completeness2/5

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

Given no output schema and no annotations, the description is insufficient. It does not explain the return format, default behavior, or how it differs from sibling tools. For a list tool with four optional parameters, more context is needed.

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?

The input schema has 100% coverage with descriptions for each parameter (source, sponsor_type, search, limit). The description adds no extra meaning beyond what the schema already provides, so baseline 3 is appropriate.

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 verb 'list' and the resource 'graduated podlings', differentiating it from sibling tools like list_current_podlings or list_retired_podlings. However, it could be more specific, e.g., by clarifying the output format.

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 the many sibling tools (e.g., list_current_podlings, graduated_podlings_by_year). The agent has no indication of context, prerequisites, or alternatives.

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

list_podlingsC

List ASF Incubator podlings from podlings.xml with optional filtering.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
statusNoOptional exact status filter
searchNoOptional text search across name, description, and champion
limitNoOptional maximum number of results to return

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states 'List' (implying read-only) but does not disclose behavioral traits such as whether it fetches remote data, caching behavior, or performance implications. Minimal transparency.

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, no wasted words. Front-loaded with verb and resource. Efficient.

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

Completeness2/5

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

Given the lack of output schema, the description should explain what is returned (e.g., list of podling objects). It also does not mention that podlings.xml is a static source. Incomplete for a tool with multiple siblings and no output 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?

Input schema has 100% coverage with clear parameter descriptions. The description adds marginal value by stating 'optional filtering' but does not elaborate on parameter semantics beyond what the schema already provides. Baseline score of 3 applies.

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 action ('List') and resource ('ASF Incubator podlings from podlings.xml'), and mentions optional filtering. It is distinct from siblings like list_graduated_podlings which are more specific, though not explicitly differentiated.

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 its many siblings (e.g., active_podlings_by_year, list_current_podlings). The description does not explain that this is a general filtering tool for raw data, unlike the more curated siblings.

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

list_retired_podlingsC

List retired podlings.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
searchNoOptional text search across name, description, and champion
limitNoOptional maximum number of results to return

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. The description is minimal and does not disclose read-only nature, authentication needs, error behavior, or any side effects beyond 'list' implied by the verb.

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?

While short, the description is too minimal to be helpful; it sacrifices clarity for brevity. Could add more detail without losing conciseness.

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

Completeness1/5

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

With 4 parameters, many sibling tools, no output schema, and no annotations, the description fails to provide sufficient context for correct agent usage. Missing details on source location, filter behavior, and result format.

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 cover all 4 parameters (source, sponsor_type, search, limit), so baseline is 3. Description adds no additional meaning beyond what is 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?

Description clearly states the action (list) and the resource (retired podlings), distinguishing it from sibling tools like list_current_podlings and list_graduated_podlings.

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 such as list_podlings or other specific lists. No exclusions or prerequisites mentioned.

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

mentor_count_statsC

Return mentor coverage and mentor-count distribution stats for a podlings.xml source.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits like read-only nature or error handling. It only states the purpose, leaving side effects and output format unclear.

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 a single sentence, front-loaded with the action. It is concise, though slightly too brief to cover all needed information.

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

Completeness2/5

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

The description does not explain what the output looks like or how the stats are presented. Given no output schema and the complexity of 'stats', more detail is needed for completeness.

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?

The input schema already provides detailed descriptions for both parameters (source URL/path and sponsor_type with defaults). The tool description adds no further meaning, so the baseline of 3 applies given 100% schema coverage.

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 it returns mentor coverage and distribution stats from a podlings.xml source, which differentiates it from sibling tools focused on podling lists and timelines. However, the term 'mentor coverage' is not precisely defined.

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 many sibling tools. For example, it doesn't explain that this is for mentor-specific analysis rather than general podling queries.

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

podlings_started_over_timeB

Return yearly podling start counts based on start dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
start_yearNoOptional inclusive start year filter
end_yearNoOptional inclusive end year filter

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It does not disclose behavioral traits such as whether the tool is read-only, if it requires authentication, or if it aggregates across all data. The description is too vague on behavior beyond the basic output.

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 with no wasted words. Front-loaded with the core purpose. Ideal conciseness.

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?

No output schema exists, so description should explain return format. It only says 'counts' but not structure (e.g., list of year-count pairs). With 4 optional parameters and many siblings, more detail would be beneficial. Adequate but basic.

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 does not add any meaning beyond what the schema provides for parameters like 'source', 'sponsor_type', 'start_year', 'end_year'. It does not explain how they affect the results.

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?

Description clearly states the tool returns yearly podling start counts based on start dates, specifying both the verb ('Return') and the resource ('yearly podling start counts'). This distinguishes it from sibling tools like 'active_podlings_by_year' or 'completed_podlings_by_year'.

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 like 'started_podlings_by_year'. There are many sibling tools for different metrics, but the description gives no context or exclusions.

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

podling_statsC

Return summary statistics for a podlings.xml source.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as side effects, authorization needs, or rate limits. The description carries the full burden but adds minimal value beyond the basic function.

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 a single sentence with no wasted words. It is concise, though it could benefit from slightly more structure or detail to improve clarity without becoming verbose.

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

Completeness2/5

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

Given the absence of output schema and annotations, the description is incomplete. It does not specify what statistics are returned, how results are formatted, or any usage context, leaving significant gaps for an agent.

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?

The input schema has 100% coverage for both parameters (source and sponsor_type). The description adds no additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

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 it returns summary statistics for a podlings.xml source, using a specific verb and resource. However, it does not differentiate from many sibling tools that also deal with podling statistics, so it is clear but not distinguishing.

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 alternatives. There is no mention of prerequisites, filtering context, or exclusions, leaving the agent to infer usage from the name and schema alone.

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

raw_podlings_xml_infoC

Return parsing metadata and a small preview of podlings.xml content.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral traits. It states the output (metadata and preview) but does not disclose whether the tool is read-only, if it requires permissions, or any side effects.

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 a single, concise sentence that conveys the core functionality. It is front-loaded and to the point, though it lacks structured formatting.

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

Completeness2/5

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

For a simple tool with one parameter and no output schema, the description is too minimal. It does not specify what 'parsing metadata' includes or how large the preview is, leaving ambiguity.

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%, with the parameter already described as 'HTTPS URL or local path to podlings.xml'. The description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.

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 returns parsing metadata and a preview of podlings.xml content. The verb 'Return' and resource are specified, distinguishing it from sibling tools that focus on specific queries or statistics.

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 compared to its siblings. The description does not mention scenarios where this tool is preferred, prerequisites, or alternatives.

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

reporting_scheduleA

Return expected reporting cadence, due-this-month status, and next expected reporting period for podlings.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
nameNoOptional exact podling name lookup
as_of_dateNoOptional ISO date used for schedule evaluation, defaults to today
report_monthNoOptional reporting month in YYYY-MM format
due_this_monthNoOptional filter to keep only podlings that are due this month

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the transparency burden. It discloses the return fields (cadence, status, next period) but does not mention if the tool is read-only, any side effects, authorization needs, or performance implications. The safety profile is unclear.

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?

A single sentence that front-loads the purpose with no extraneous words. It is appropriately sized and efficient.

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?

No output schema is provided. The description mentions return fields but does not explain their format or semantics (e.g., what 'due-this-month status' means). With six parameters and no output schema, more detail would enhance completeness.

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 six parameters. The description adds no additional meaning or context beyond what the schema provides. 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 that the tool returns 'expected reporting cadence, due-this-month status, and next expected reporting period' for podlings, using specific verbs and resources. This distinguishes it from sibling tools that focus on listing podlings by various criteria or statistics.

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 context for reporting schedule queries but lacks explicit guidance on when to use this tool versus siblings (e.g., list_current_podlings, get_podling). No when-not-to-use or alternative tool names are provided.

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

retired_podlings_by_yearB

Return the podlings that retired in a specific year.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
yearYesRequired year to inspect
statusNoOptional completion status filter: graduated or retired

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description should disclose behavioral traits. However, it only states the output without mentioning safety, side effects, or limitations. Implied read-only but not explicit.

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 single sentence with no wasted words. The core purpose is front-loaded, making it quick to parse.

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?

Given 4 parameters and no output schema, the description is minimal but adequate for a simple filter tool. It lacks details on return format or parameter interactions, but the purpose is sufficiently clear.

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 parameters have descriptions in the input schema (100% coverage). The description adds no additional meaning beyond the schema, meeting the baseline expectation.

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 it returns podlings that retired in a specific year. The verb 'Return' and resource 'podlings that retired' are specific. While it doesn't explicitly differentiate from siblings like 'graduated_podlings_by_year', the distinct retirement status makes the purpose clear.

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 such as 'active_podlings_by_year' or 'graduated_podlings_by_year'. No prerequisites or context provided.

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

started_podlings_by_yearB

Return the podlings that started in a specific year.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
yearYesRequired year to inspect

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits. It only states it returns results; no mention of side effects, authentication needs, rate limits, or whether it is a read-only operation. The description adds no behavioral context beyond what the name implies.

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, succinct sentence that immediately conveys the core purpose. It is front-loaded with the key verb and resource, achieving clarity with minimal words.

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

Completeness2/5

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

Despite the tool having three parameters and no output schema, the description is extremely sparse. It does not explain what 'podlings' are, the role of the 'source' or 'sponsor_type' parameters, or indicate the return format. Given the lack of annotations and output schema, the description should provide more 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%, meaning all three parameters are already described in the input schema. The tool description does not add additional meaning or context for any parameter. By the rule, baseline is 3 when coverage is high, and no extra value is added.

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 action: 'Return the podlings that started in a specific year.' It uses a specific verb ('Return') and resource ('podlings that started in a specific year'). This distinguishes it from sibling tools that filter by different criteria like 'active', 'completed', 'graduated', etc.

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?

The description provides no guidance on when to use this tool versus alternatives. Given multiple sibling tools filtering by different statuses (active, completed, graduated, retired), the agent lacks explicit context on when to choose this tool over others.

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

time_to_retirement_over_timeC

Return yearly retirement timing stats based on podling start and end dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoHTTPS URL or local path to podlings.xml
sponsor_typeNoOptional sponsor type filter, defaults to incubator: incubator, project, or unknown
start_yearNoOptional inclusive start year filter
end_yearNoOptional inclusive end year filter

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description bears full burden for behavioral traits. It mentions 'based on podling start and end dates' but fails to indicate read-only nature, required permissions, or output format. Lacks transparency on data handling.

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?

Single sentence with no redundancy. Front-loaded with verb 'Return'. Brief, though could be more informative without sacrificing conciseness.

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

Completeness2/5

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

Given the presence of many sibling tools and no output schema or annotations, the description is insufficient. It does not explain the type of statistics computed, output structure, or typical usage scenarios.

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 adds no extra meaning beyond the schema, omitting mention of 'source' and 'sponsor_type', but the schema already describes all parameters adequately.

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

Purpose3/5

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

The description states it returns 'yearly retirement timing stats' but does not define what 'timing stats' means (e.g., averages, counts, distributions). It distinguishes from sibling 'retired_podlings_by_year' only by implication, lacking specificity.

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 alternative retirement-focused siblings (e.g., retired_podlings_by_year) or other time-based stats tools. The description does not mention prerequisites or context.

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. Dates show when Glama detected each change.

  1. 22 tool updatesv0.1.0
    • First observedactive_podlings_by_year
    • First observedactive_podlings_in_year
    • First observedcompleted_podlings_by_year
    • First observedcompleted_podlings_in_range
    • First observedcompletion_count_over_time
    • First observedcompletion_rate_over_time
    • First observedget_podling
    • First observedgraduated_podlings_by_year
    • First observedgraduation_rate_over_time
    • First observedgraduation_time_over_time
    • First observedlist_current_podlings
    • First observedlist_graduated_podlings
    • First observedlist_podlings
    • First observedlist_retired_podlings
    • First observedmentor_count_stats
    • First observedpodling_stats
    • First observedpodlings_started_over_time
    • First observedraw_podlings_xml_info
    • First observedreporting_schedule
    • First observedretired_podlings_by_year
    • First observedstarted_podlings_by_year
    • First observedtime_to_retirement_over_time

TDQS

B3/5.0
Disambiguation3/5

Several tools have overlapping purposes (e.g., active_podlings_by_year vs active_podlings_in_year, graduated_podlings_by_year vs list_graduated_podlings). Descriptions help but some ambiguity remains, causing potential misselection.

Naming Consistency3/5

Naming follows a mostly verb_noun pattern but mixes conventions like 'active_podlings_by_year' and 'list_graduated_podlings'. Inconsistent use of 'list_' vs direct nouns and suffixes like '_over_time' vs '_by_year'.

Tool Count3/5

22 tools is on the higher side for a focused domain. While each tool serves a specific filtering or statistics purpose, the count feels slightly bloated and could be reduced by combining some similar ones.

Completeness4/5

The tool set covers listing, filtering, statistics (counts, rates, timing), and reporting schedule. Minor gaps exist (e.g., no tool for podling mentors by podling), but overall it provides a comprehensive read-only surface.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP server designed for interacting with the Model Context Protocol Registry API to discover and retrieve information about available MCP servers. It provides tools to search, list, and view detailed configurations and version history for servers within the registry.
    4
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server for querying and analyzing Apache Incubator podling health reports. It provides tools to list, search, and compare podling metrics across different time windows from Apache's health report Markdown files.
    9
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A dependency-free MCP server for Apache Incubator PMC oversight that helps identify podlings needing attention, assess graduation readiness, and generate podling briefings by combining lifecycle data and community health signals.
    21
    2
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Read-only MCP server for the Apache Incubator Confluence wiki, enabling page lookup, search, and navigation through natural language.
    7
    MIT

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/justinmclean/PodlingsMCP'

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