Skip to main content
Glama
dreamiurg

Mountaineers MCP Server

by dreamiurg

Mountaineers MCP Server

npm

Other projects you might like: PNW Climb Planner · mountaineers-assistant · peakbagger-cli · claude-mountaineering-skills

What is this?

This lets AI assistants like Claude and ChatGPT search and browse mountaineers.org on your behalf. Instead of clicking through the website, you can ask questions in plain English:

  • "Find me a beginner-friendly day hike near Seattle this weekend"

  • "What scrambles are available in August?"

  • "Show me trip reports for Mount Pilchuck"

  • "What's the elevation gain on the Mount Si trail?"

  • "What activities am I signed up for?"

  • "What badges have I earned?"

The AI reads the Mountaineers website, understands the results, and gives you a conversational answer -- no manual searching required. Read the full story: I Built an MCP Server for Mountaineers.org.

Related MCP server: parks-mcp

What can it do?

Search public data:

  • Search activities by type, branch, difficulty, date, and more

  • Search courses, clinics, and seminars

  • Browse trip reports

  • Search routes and places

  • Get full details for any activity, trip report, route, or course

Access your account:

  • See your upcoming and past activities

  • See your completed activity history

  • See your course enrollments

  • View your earned badges and certifications

  • View member profiles and activity rosters

Setup

IMPORTANT

A one-time login is required for all tools, including public search. mountaineers.org is behind Cloudflare, which blocks plain HTTP clients. After installing the server (below), just ask your assistant to run the login tool — a Chrome window opens, you sign in once on mountaineers.org, and the server caches the clearance + session cookies. Your password is typed into the real site, never into the chat or any config. See Authentication for details and the requirements (desktop with Google Chrome).

Follow the instructions for your AI app below.

Claude Desktop

  1. Download mountaineers-mcp-X.Y.Z.mcpb from the latest release — one bundle covers Intel and Apple Silicon Macs and Windows

  2. Open Claude Desktop → Settings → Extensions → Install Extension

  3. Select the downloaded .mcpb file

  4. Ask your assistant to run the login tool (one time) — a Chrome window opens, you sign in, and authentication is cached. Required before any other tool works. See Authentication.

That's it -- no Node.js setup required. Just run the one-time Authentication step (the login tool) before using other tools.

Requires Node.js 18+.

  1. Go to Settings > Developer > Edit Config

  2. Paste this and save:

{
  "mcpServers": {
    "mountaineers": {
      "command": "npx",
      "args": ["-y", "mountaineers-mcp"]
    }
  }
}
  1. Quit and reopen Claude Desktop (not just close the window -- fully quit)

Then run the Authentication step (the login tool). Don't add MOUNTAINEERS_USERNAME/MOUNTAINEERS_PASSWORD to this config — the server reads the cached cookie, not env vars.

ChatGPT Desktop

ChatGPT Desktop supports MCP through Developer Mode, but only remote HTTP servers -- it cannot run local command-line tools like Claude Desktop can. To use this server with ChatGPT Desktop, you would need to run it behind a tunnel (e.g., mcp.run or ngrok). This is not yet streamlined; we plan to add Streamable HTTP transport in a future release.

Requires ChatGPT Plus, Pro, Team, or Enterprise.

Claude Code (CLI)

Run this in your terminal:

claude mcp add mountaineers -- npx -y mountaineers-mcp

Or add to your .mcp.json:

{
  "mcpServers": {
    "mountaineers": {
      "command": "npx",
      "args": ["-y", "mountaineers-mcp"]
    }
  }
}

Then run the Authentication step (the login tool).

Codex CLI

Add to ~/.codex/config.toml:

[mcp_servers.mountaineers]
command = "npx"
args = ["-y", "mountaineers-mcp"]

Then run the Authentication step (the login tool).

Or use the CLI:

codex mcp add mountaineers -- npx -y mountaineers-mcp

Authentication

Mountaineers.org is behind Cloudflare, which blocks plain HTTP clients — so every tool (public search included) needs a valid Cloudflare clearance cookie, plus a session cookie for account tools. The server doesn't log in itself; it replays cookies you mint once with a real browser.

Just ask your assistant to run the login tool (e.g. "log in to mountaineers"). A Chrome window opens to the mountaineers.org sign-in page; you complete the login there (your password goes to the site, never to the chat, the server, or any config). The server then caches the cookies and every other tool works. If the browser is already signed in from a previous run, you won't need to type anything (it still takes a few tens of seconds to open Chrome, settle the session, and close).

The cookies are saved to ~/.cache/mountaineers-mcp/clearance.json (or under $XDG_CACHE_HOME), owner-readable only. The server reads the cache on startup and re-reads it automatically if the clearance expires mid-session — so re-running login takes effect without a restart.

Requirements: a desktop with Google Chrome installed and a visible display. (Headless servers can't show the sign-in window.)

When to re-run: Cloudflare clearance eventually expires (lifetime is set by Cloudflare and varies). When a tool reports the clearance expired, run login again.

Alternative: npm run login (from a checkout)

For scripted/automated setups you can mint the cache from a local checkout, auto-filling credentials from the environment:

git clone https://github.com/dreamiurg/mountaineers-mcp.git
cd mountaineers-mcp
npm install
MOUNTAINEERS_USERNAME=your-username MOUNTAINEERS_PASSWORD=your-password npm run login

This writes the same cache file the server reads. The credentials are used only by this command (passed as env vars, not persisted).

Tools reference

Run login once before anything else (Cloudflare gates the whole site); the data tools below then work, split by the kind of data they return.

Setup

Tool

Description

login

Open a browser to sign in to mountaineers.org and cache the Cloudflare clearance + session cookies. Required once before any other tool; re-run when clearance expires.

Public data

Tool

Description

search_activities

Search activities with filters (type, branch, difficulty, date, day of week)

search_courses

Search courses, clinics, and seminars

search_trip_reports

Search trip reports by text and activity type

search_routes

Search routes and places with filters (activity type, difficulty, climbing category)

get_activity

Get full activity details (leader notes, route, equipment)

get_trip_report

Get trip report details (conditions, route info)

get_route

Get route details (difficulty, elevation, directions, maps, related routes)

get_course

Get course details (schedule, pricing, leaders, badges earned)

Your account

Tool

Description

whoami

Get your name, profile URL, and member slug

get_my_activities

Your registered activities (upcoming) with filtering

get_my_courses

Your course enrollments with filtering

get_activity_history

Your completed activity history with filtering by result, type, and date

get_my_badges

Your earned badges and certifications with dates

get_member_profile

View a member's profile, badges, and committees

get_activity_roster

See who's signed up for an activity

Privacy

Your credentials are used only by npm run login (passed as environment variables, not persisted) and are sent only to mountaineers.org. What's saved on your computer is the resulting session cookie cache (~/.cache/mountaineers-mcp/clearance.json, owner-readable only). Nothing — credentials or cookies — is ever sent to any AI provider or third party.

Development

npm install
npm run dev          # Run from TypeScript sources via tsx (no build step)
npm run check        # Typecheck + lint
npm test             # Run tests
npm run ci           # Full CI: check + coverage + build

License

MIT


More from @dreamiurg

Made by @dreamiurg in Seattle. If this project saved you time, you can buy me a coffee — appreciated, never expected.

Available Tools

28 tools
get_activityB

Get detailed information about a specific activity by URL or slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull activity URL or activity slug (e.g. 'day-hike-rock-candy-mountain-11')

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; description only says 'detailed information' without specifying behavior, side effects, or access requirements.

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?

One concise sentence with no extraneous 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?

Tool is simple but lacks explanation of return values or when to use, missing crucial context 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 coverage is 100% and the description essentially repeats the schema's parameter description, adding minimal value.

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 retrieves detailed information about a specific activity by URL or slug, and distinct from sibling search tools.

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 search_activities or other get_ tools.

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

get_activity_historyA

Get the logged-in user's completed activity history (past trips, courses, events). Supports filtering by category, result, activity type, and date range. For arbitrary members use get_member_history.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (default 20, use 0 for all)
resultNoFilter by result: 'Successful', 'Canceled', etc.
date_toNoFilter to this date (YYYY-MM-DD)
categoryNoFilter by category (e.g. 'trip', 'course')
date_fromNoFilter from this date (YYYY-MM-DD)
activity_typeNoFilter by activity type: 'Climbing', 'Day Hiking', etc.

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions the tool gets 'completed' history and supports filtering, but does not state whether the operation is read-only, any authorization requirements, pagination behavior, or side effects. The description is adequate but lacks detail.

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 two sentences: first states the core purpose, second adds filtering capabilities and an alternative tool. No unnecessary words, well front-loaded.

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?

The tool has 6 optional parameters and no output schema. The description covers the filtering capabilities but does not explain return format, default ordering, or pagination beyond the limit parameter. It also does not define 'completed' explicitly. Given the complexity, it could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning each parameter has a description in the schema. The tool description mentions filtering by category, result, activity type, and date range, but does not add meaning beyond what the schema already 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 the tool retrieves the logged-in user's completed activity history (trips, courses, events). It differentiates from the sibling tool get_member_history by explicitly mentioning 'logged-in user' and directing to the alternative for arbitrary members.

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?

The description explicitly states when to use this tool (logged-in user's history) and when not to use it (arbitrary members, pointing to get_member_history). This provides clear guidance on tool selection.

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

get_activity_rosterA

Get the participant roster for a specific activity by URL or slug. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull activity URL or activity slug (e.g. 'day-hike-rock-candy-mountain-11')

TDQS

A3.8/5.0
Behavior3/5

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

Without annotations, the description carries the full burden. It discloses authentication requirement but does not describe the return format, pagination, or any side effects. For a read tool, this is adequate but not thorough.

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?

Two concise sentences with no wasted words. The first sentence clearly states the action and resource, the second adds the auth prerequisite.

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

Completeness4/5

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

Given the single parameter and no output schema, the description covers the essential purpose and constraint. A brief note about the expected output (e.g., list of participants) would improve completeness, but it is largely sufficient.

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 the 'url' parameter as 'Full activity URL or activity slug'. The description repeats this without adding new meaning, so 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 the tool retrieves a participant roster for a specific activity using a URL or slug, which distinguishes it from sibling tools like get_activity (activity details) and get_activity_history (activity history).

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 mentions authentication is required, which implies the tool is used when the agent is authenticated and needs a roster. However, it does not explicitly state when not to use it or suggest alternatives (e.g., use get_activity for details).

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

get_badgeA

Get detailed information about a specific mountaineers.org badge by URL: title, description, badge_type, branch_slug (for branch-scoped award badges), body text with criteria/instructions, and an optional categories array (for award badges with Category A/B/C/... requirements). Earners list is not exposed by the site and is not returned. Use search_badges to discover badge URLs; for the authenticated user's earned badges use get_my_badges.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull badge URL or path (e.g. /membership/badges/award-badges/seattle-branch/sea-kayaking-scavenger-hunt)

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations, the description bears full burden. It details what is returned (title, description, badge_type, branch_slug, body text, categories) and explicitly states what is not returned ('earners list is not exposed'). This is thorough, though it could mention error handling or rate limits for a 5.

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 three concise sentences, front-loaded with the purpose, and each sentence adds essential information without redundancy.

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?

For a single-parameter read tool with no output schema, the description is remarkably complete: it lists all returned fields, notes exclusions, and directs the agent to related tools. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for the 'url' parameter. The tool description adds meaningful context by providing an example URL path, going beyond the schema's generic 'Full badge URL or path' description.

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 'Get detailed information about a specific mountaineers.org badge by URL' with specific verb and resource, and explicitly distinguishes itself from sibling tools like search_badges and get_my_badges.

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?

The description provides explicit guidance: 'Use search_badges to discover badge URLs; for the authenticated user's earned badges use get_my_badges.' This clearly directs the agent on when to use this tool versus alternatives.

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

get_courseB

Get detailed information about a specific course, including schedule, pricing, leaders, and badges earned.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull course URL or course slug (e.g. 'basic-climbing-course-seattle-2025')

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits like authentication requirements, rate limits, or side effects. It only lists returned fields without behavioral context.

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 that is front-loaded with the purpose and includes key fields. No superfluous words.

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 no output schema, the description adequately lists the main returned fields (schedule, pricing, leaders, badges). It provides a solid summary, though some fields may be omitted.

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% with a single parameter 'url' described in the schema. The description adds no additional meaning beyond stating it is for a specific course. 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 the tool retrieves detailed information about a specific course and lists specific fields (schedule, pricing, leaders, badges). It distinguishes from siblings like 'search_courses' which is for searching.

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 does not provide guidance on when to use this tool versus alternatives such as 'search_courses' or 'get_my_courses'. It only implies use when needing details on a specific course.

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

get_eventA

Get detailed information about a specific mountaineers.org event by URL: title, description, date/time string, committee, branch, body text, and any additional event-specific fields (expected attendance, contacts, custom Q&A).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull event URL or path (e.g. /about/vision-leadership/events/rockfest-2026)

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden. The description lists the returned fields but does not disclose behavioral traits like read-only nature, auth requirements, or error handling. However, the name 'get_event' implies a safe read operation, and the description adds value by detailing the output.

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 that is front-loaded with the purpose and lists the fields. It is efficient but slightly long; could be split for readability. No wasted words.

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?

For a simple 'get' tool with one parameter and no output schema, the description adequately explains what the tool returns (title, description, date/time, etc.). It does not cover edge cases or error responses, but these are less critical for a retrieval operation.

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% with a single 'url' parameter described. The description adds the same example as the schema, providing no additional semantics. 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 'get' and resource 'detailed information about a specific mountaineers.org event', and specifies the method 'by URL'. It lists the fields returned, distinguishing it from sibling tools like 'search_events' which searches for events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly tells when to use this tool: when you have a specific event URL. It does not explicitly state when not to use it or mention alternatives, but the sibling list includes 'search_events' for finding events without a URL, providing context.

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

get_member_activitiesA

Get a member's upcoming/registered activities by slug or profile URL. Returns activities the member is currently signed up for — for past completed activities use get_member_history. Mirrors get_my_activities for any member. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax number of results to return (default 20, use 0 for all)
memberYesMember slug (e.g. 'jane-doe'), /members/{slug} path, or full profile URL
resultNoFilter by result: 'Successful', 'Canceled', etc.
statusNoFilter by status: 'Registered', 'Waitlisted', etc.
date_toNoFilter activities to this date (YYYY-MM-DD)
categoryNoFilter by category: 'trip' or 'course'
date_fromNoFilter activities from this date (YYYY-MM-DD)

TDQS

A4.4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses authentication requirement and that it returns currently signed-up activities. However, it lacks information on rate limits, data freshness, or behavior on errors (e.g., member not found).

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

Conciseness5/5

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

Three sentences with no fluff. First sentence states purpose, second provides sibling differentiation, third notes auth requirement. Information is front-loaded and efficient.

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 7 parameters (all documented in schema), no output schema, and no annotations, the description covers core purpose, usage, and auth. It could mention output format or pagination behavior, but overall it is sufficiently complete for a read operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description adds value for the 'member' parameter with format examples and for 'limit' with default and '0 for all' usage. Other parameters are already well-described in 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 tool gets a member's upcoming/registered activities by slug or profile URL. It distinguishes from siblings by referencing get_member_history for past activities and noting it mirrors get_my_activities.

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 states when to use this tool (for upcoming/registered activities) and when to use an alternative (get_member_history for past completed). Also notes authentication requirement.

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

get_member_coursesA

Get a member's courses (upcoming + past, merged into one list ordered by enrolled date ascending), given their slug or profile URL. Mirrors get_my_courses for any member. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoFilter by role: 'Student', 'Instructor', etc.
limitNoMax number of results to return (default 20, use 0 for all)
memberYesMember slug (e.g. 'jane-doe'), /members/{slug} path, or full profile URL
resultNoFilter by result: 'Successful', 'Canceled', etc.
statusNoFilter by status: 'Registered', 'Waitlisted', etc.
date_toNoFilter courses enrolled to this date (YYYY-MM-DD)
date_fromNoFilter courses enrolled from this date (YYYY-MM-DD)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description discloses key behavioral traits: merging upcoming and past courses, ordering by enrolled date ascending, and authentication. It does not cover rate limits or error handling, but adds value beyond the parameter schema.

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?

Two sentences, no fluff. Information is front-loaded and every word adds value.

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?

The description covers core behavior and member identification, but lacks return value description (e.g., fields returned) or pagination info. With no output schema and 7 parameters, more detail on filters and behavior would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are documented. The description adds useful context for the 'member' parameter (accepts slug, path, or URL). Other parameters have no additional info, but the baseline is 3 and this extra detail raises it.

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 'Get a member's courses' and specifies the merging behavior and ordering. It distinguishes from siblings like get_course (single course) and get_my_courses (own courses) by noting it works for any member.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool ('Mirrors get_my_courses for any member') and mentions authentication requirement. However, it doesn't provide explicit when-not or compare with other siblings like search_courses.

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

get_member_historyA

Get the past activity history for any mountaineers.org member, given their slug or profile URL. Returns completed activities only (not future-registered). Same filters as get_activity_history (which is the self-only version). Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (default 20, use 0 for all)
memberYesMember slug (e.g. 'jane-doe'), /members/{slug} path, or full profile URL
resultNoFilter by result: 'Successful', 'Canceled', etc.
date_toNoFilter to this date (YYYY-MM-DD)
categoryNoFilter by category (e.g. 'trip', 'course')
date_fromNoFilter from this date (YYYY-MM-DD)
activity_typeNoFilter by activity type: 'Climbing', 'Day Hiking', etc.

TDQS

A3.8/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 that only completed activities are returned and authentication is required. However, it does not mention rate limits, pagination behavior, or error handling for missing members. The disclosure is adequate but not comprehensive.

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 three concise sentences that front-load the main purpose and key constraints. Every sentence provides value, though the structure could be slightly more explicit (e.g., separating constraints).

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 7 parameters, no output schema, and no annotations, the description covers core purpose, constraints, and authentication. However, it omits behavioral details like pagination defaults or error scenarios, leaving some gaps for an agent 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 description coverage is 100%, so the baseline is 3. The description adds no additional parameter semantics beyond what the schema already provides; it only references that filters are the same as get_activity_history, which is redundant given 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?

The description clearly states it retrieves past activity history for any member via slug or profile URL, and explicitly distinguishes itself from the sibling tool get_activity_history (self-only). This provides a specific verb+resource+scope with clear 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use for any member's history, while get_activity_history is for self-only. It also states authentication is required. Although it doesn't provide explicit 'when not to use' beyond the sibling mention, the context is sufficient for an agent to decide.

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

get_member_profileA

Get a member's profile information including name, branch, committees, and badges. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
member_slugYesMember slug from their profile URL, e.g. 'john-smith'

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does mention the authentication requirement, which is important for a read operation. However, it does not disclose other traits like error handling, rate limits, or data freshness. The description provides minimal but adequate transparency for a simple retrieval tool.

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 two sentences, concise and front-loaded. Every sentence serves a purpose: first states what the tool does, second states a key requirement. No 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?

Given the tool's simplicity (single parameter, no output schema, no annotations), the description covers purpose and authentication. However, without an output schema, it could describe the return format or field details to be more complete. The current description is adequate but not thorough.

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% (one parameter fully described with example). The description adds no additional meaning beyond the schema for the parameter, so the 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 action ('Get'), the resource ('member's profile'), and lists specific fields ('name, branch, committees, and badges'). It distinguishes this tool from siblings like get_member_activities or search_members by focusing on profile information.

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 mentions 'Requires authentication' as a prerequisite, but does not provide explicit guidance on when to use this tool versus alternatives (e.g., search_members for finding members). Usage is implied by the name and description.

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

get_my_activitiesA

Get the logged-in user's registered activities (upcoming and past). Supports filtering by category, status, result, and date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax number of results to return (default 20, use 0 for all)
resultNoFilter by result: 'Successful', 'Canceled', etc.
statusNoFilter by status: 'Registered', 'Waitlisted', etc.
date_toNoFilter activities to this date (YYYY-MM-DD)
categoryNoFilter by category: 'trip' or 'course'
date_fromNoFilter activities from this date (YYYY-MM-DD)

TDQS

A3.6/5.0
Behavior3/5

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

The description implies read-only behavior by saying 'Get', and mentions filtering. However, with no annotations provided, it doesn't explicitly state that the tool is non-destructive or safe, nor does it discuss pagination or authorization details beyond the implied logged-in user context.

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 conveying the tool's purpose and filtering ability without redundancy. Every word earns its place.

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?

For a filtered list tool with full schema coverage, the description is mostly complete. It covers the resource, scope, and filters. Minor gaps: no mention of default sort order or response structure (but no output schema 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?

Schema coverage is 100% with each parameter described. The description merely summarizes the filter capabilities, adding no new meaning beyond what the schema already provides.

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 'Get', the specific resource 'the logged-in user's registered activities', and includes scope ('upcoming and past'). It effectively distinguishes from siblings like search_activities or get_member_activities by focusing on the user's own registrations.

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. For example, it doesn't contrast with search_activities for broader searches or get_member_activities for viewing others' activities.

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

get_my_badgesA

Get the logged-in user's earned badges and certifications. Supports filtering by name and active status.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter by badge name (case-insensitive substring match)
active_onlyNoIf true, exclude badges whose expires date is in the past

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Describes basic behavior (get user's badges with filters) but omits details like pagination, error handling, or whether expired badges are included by default. Adequate for a simple read operation.

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?

Two sentences, front-loaded with purpose, no redundant information. Every word contributes to understanding.

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?

No output schema or nested objects; tool is simple. Description sufficiently explains input and purpose. Minor gap: doesn't state whether result includes certifications alongside badges, but implied by 'and certifications'.

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%; both parameters already have clear descriptions. The tool description paraphrases them but adds no new meaning beyond what the schema provides.

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 action 'Get' and specific resource 'logged-in user's earned badges and certifications'. Distinguishes from siblings like search_badges (all badges) and get_badge (specific badge) by scoping to current user.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States filtering by name and active status, implying when to use. Lacks explicit exclusion criteria (e.g., for other users use search_badges), but context from sibling tools provides some guidance.

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

get_my_coursesA

Get the logged-in user's course enrollments (current and past). Supports filtering by status, role, result, and date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoFilter by role: 'Student', 'Instructor', etc.
limitNoMax number of results to return (default 20, use 0 for all)
resultNoFilter by result: 'Successful', 'Canceled', etc.
statusNoFilter by status: 'Registered', 'Waitlisted', etc.
date_toNoFilter courses enrolled to this date (YYYY-MM-DD)
date_fromNoFilter courses enrolled from this date (YYYY-MM-DD)

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses the main action and filtering capability, but lacks details on pagination (limit parameter behavior), authentication requirements, rate limits, or whether enrollments are active only. The 'current and past' scoping is good but insufficient for complete 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?

Two sentences, front-loaded with the primary action, no filler. Every word earns its place.

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?

Moderately complete: covers core purpose and filtering, but lacks output format description, pagination behavior, and confirmation that all parameters are optional. For a tool with 6 optional parameters and no output schema, more context would be beneficial.

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 mentions filtering by 'status, role, result, and date range', grouping parameters usefully, but does not add significant meaning beyond what the schema descriptions already provide.

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 'Get', the resource 'the logged-in user's course enrollments', and scopes to 'current and past'. It distinguishes from siblings like 'get_member_courses' (other users) and 'search_courses' (general search).

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 the logged-in user's enrollments and mentions filtering, but does not explicitly state when to use this tool versus alternatives like 'get_course' for a single course or 'search_courses' for broader search. No when-not-to-use guidance.

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

get_routeA

Get detailed information about a specific route or place on mountaineers.org, including difficulty, elevation, directions, and maps.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull route URL or route slug (e.g. 'mount-si-old-trail')

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description alone must convey behavioral traits. It states the return type (detailed info with specific fields) but does not disclose read-only status, lack of side effects, or any potential limits. For a 'get' tool, the default assumption of read-only is acceptable, but no explicit confirmation is given.

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, front-loaded sentence with no extraneous words. Every word adds value, making it efficient and easy to parse.

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 no output schema and no annotations, the description adequately specifies the tool's purpose and expected return data. However, it does not mention error handling or performance considerations. For a simple get tool, this is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the single parameter 'url' with a description. The tool description adds an example format ('mount-si-old-trail'), which provides concrete usage guidance beyond the schema. This enhances agent understanding.

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 uses a specific verb 'Get detailed information' and identifies the resource as 'a specific route or place' along with concrete data fields (difficulty, elevation, directions, maps). This clearly distinguishes it from sibling tools like search_routes (which retrieves lists) and get_route_trip_reports.

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 (e.g., search_routes for exploration, get_route_trip_reports for user reports). No context about prerequisites or exclusions is given.

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

get_route_trip_reportsA

List trip reports filed against a specific route/place URL. Paginated, 20 per page; results follow the site's default order (typically newest first). Use this when you have a route URL and want member-written reports for that route specifically — more accurate than searching trip reports by route name.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (0-based, 20 results per page)
route_urlYesFull route URL, /activities/routes-places/... path, or route slug (e.g. 'mount-si-main-trail')

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and discloses pagination (20 per page), default ordering (typically newest first), and the scope constraint (specific route/place URL). It lacks details on authentication or error handling, but covers the key behavioral traits for a read-only list operation.

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?

Two sentences, front-loaded with the primary purpose, followed by essential behavioral details and usage guidance. Every word earns its place with no redundancy or filler.

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?

Given no output schema, the description provides sufficient context: listing, ordering, pagination, and route specificity. It fully equips an agent to invoke this tool correctly in typical use cases, matching the completeness of high-caliber examples.

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 documents both parameters (route_url and page) with clear descriptions, achieving 100% coverage. The description adds no extra parameter meaning beyond the schema, so the 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 states a specific verb ('List') and resource ('trip reports') with a clear scope ('filed against a specific route/place URL'), distinguishing it from related tools like search_trip_reports and get_trip_report. The purpose is immediately clear and actionable.

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?

The description explicitly states when to use the tool ('when you have a route URL and want member-written reports for that route specifically') and provides a comparative alternative ('more accurate than searching trip reports by route name'), giving clear context for tool selection.

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

get_trip_reportA

Get detailed information about a specific trip report by URL or slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull trip report URL or slug

TDQS

A3.9/5.0
Behavior3/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 says 'Get detailed information' but does not elaborate on what details are included, potential errors, authentication requirements, or rate limits. For a simple read operation, moderate transparency is acceptable.

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, efficient sentence with no waste. It is front-loaded and immediately understandable.

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?

Given the tool's simplicity (1 parameter, no output schema, no nested objects), the description adequately covers what the tool does and how to use it. No additional context is critically 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?

Schema description coverage is 100% (1 parameter with clear description). The description adds minimal extra meaning beyond the schema, repeating the idea of 'by URL or slug'. 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 the verb 'Get', the resource 'trip report', and the method 'by URL or slug'. It distinguishes from sibling tools like search_trip_reports (search-oriented) and get_route_trip_reports (grouped by route).

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 when you have a specific trip report identifier (URL or slug), but does not explicitly state when to use it versus alternatives, nor does it mention prerequisites or exclusions.

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

get_versionA

Get the mountaineers-mcp server name and version. Useful for verifying which server build a client is connected to when debugging version-specific behavior.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It names the return values (name and version) and implies a safe read operation. It could mention that no side effects occur, but the verb 'get' strongly implies that.

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?

Two efficient sentences, front-loading the action and purpose. Every sentence adds value with no redundancy.

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?

Given zero parameters and no output schema, the description fully covers what the tool does and when to use it. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the baseline is 4. The description adds no parameter info, which is appropriate since none are needed.

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 'Get' and the resource 'mountaineers-mcp server name and version', distinguishing it from all sibling tools which fetch other entities like activities, courses, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a use case for debugging version-specific behavior, implying when to use. It does not explicitly state when not to use, but no alternatives exist among siblings.

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

list_branchesA

List all mountaineers.org branches (e.g. Seattle, Tacoma, Olympia). Returns slug + display name + URL. Use the slug as input to list_committees.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the return format but does not explicitly state that the operation is read-only, has no side effects, or that it returns all branches. This is adequate for a simple list operation but could be more 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?

Two concise sentences with no fluff. The first sentence states the purpose, the second specifies the output and provides actionable usage guidance.

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

Completeness4/5

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

For a parameterless tool with no output schema, the description is nearly complete: it states what it returns and how to use the output. It implicitly returns all branches, but could explicitly state that. Slight gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so the description adds value by explaining the returned slug's purpose (input to list_committees) and providing examples, which goes beyond the schema's empty definition.

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 lists mountaineers.org branches, provides examples (Seattle, Tacoma, Olympia), specifies the return fields (slug, display name, URL), and indicates how the slug is used for the next tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells users to use the slug as input to list_committees, which is a clear usage hint. However, it does not explicitly state when to use this tool versus alternatives or when not to use it, leaving some ambiguity among the many sibling tools.

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

list_committeesA

List all committees for a given branch (e.g. 'seattle-branch'). Returns slug + name + URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
branchYesBranch slug (e.g. 'seattle-branch') or full branch URL

TDQS

A4.3/5.0
Behavior4/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 clearly indicates a read operation ('List') and states the return values. While it doesn't explicitly mention safety or permissions, the action is inherently non-destructive and the description is transparent about the behavior.

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 16 words, front-loaded with the action and scope. Every part is necessary, with no redundancy or fluff. It is efficiently structured for quick understanding.

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?

Despite the tool's simplicity, the description fully covers the essential aspects: what the tool does (list committees), the input (branch), and the output (slug, name, URL). No output schema exists, but the description compensates. It is complete for this straightforward 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 baseline is 3. The description mentions the parameter 'branch' with an example, but the example is the same as in the schema. No additional semantic information beyond the schema is provided, so score remains 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 uses specific verb 'List' and resource 'committees' with a clear scope 'for a given branch'. It also states the return fields (slug, name, URL). This distinguishes it from siblings like list_branches, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states the condition for use (given a branch) and implies listing all committees. It does not explicitly mention when not to use or compare to alternatives, but the context of siblings and the specificity of the action provide sufficient guidance.

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

loginA

Sign in to mountaineers.org. Opens a Chrome window where YOU complete the login (your password is never sent to this server or the AI); it then caches your session. Required once before any other tool works — mountaineers.org blocks unauthenticated clients. Re-run when a tool reports your session has expired. Requires a desktop with Google Chrome (stable channel) installed; the call blocks for up to ~3 minutes while you sign in. If you're already signed in from a previous run, it may finish in seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description fully discloses behaviors: opens Chrome window, user completes login manually, password never sent to server, session caching, up to ~3 minute block, and quick finish if already logged in. No contradictions.

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 paragraph but well-structured: purpose first, then process, prerequisites, and edge cases. Every sentence provides essential information without 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?

Despite no output schema or annotations, the description covers all critical context: purpose, usage flow, prerequisites, blocking behavior, and session management. Complete for a zero-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has no parameters, so the description does not need to add parameter info. Baseline of 4 is appropriate as no further elaboration is required.

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 is for signing in to mountaineers.org, using a specific verb ('Sign in') and naming the exact resource. No sibling tool handles authentication, so it is well-differentiated.

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 'Required once before any other tool works' and 'Re-run when a tool reports your session has expired,' providing clear when-to-use guidance. Also specifies prerequisites (desktop Chrome) and blocking time.

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

search_activitiesA

Search currently-published outdoor activities on mountaineers.org (upcoming trips, course field trips, clinics). Supports filtering by type, branch, difficulty, date range, and more. Past activity instances are NOT in the search index — if you have a known historical activity URL use get_activity, or use get_member_history for a member's past activities.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (0-based, 20 results per page)
typeNoType: 'Trip', 'Course', 'Clinic', 'Seminar'
queryNoSearch text
branchNoBranch filter, e.g. 'Seattle', 'Tacoma', 'Olympia', 'Bellingham', 'Everett', 'Foothills', 'Kitsap'
audienceNoAudience filter: 'Adults', 'Families', 'Youth'
date_endNoEnd date filter (YYYY-MM-DD)
open_onlyNoOnly show activities open for registration
date_startNoStart date filter (YYYY-MM-DD)
difficultyNoDifficulty filter: 'Casual', 'Easy', 'Moderate', 'Moderate+', 'Challenging'
day_of_weekNoDay of week: 'Monday' through 'Sunday'
activity_typeNoActivity type filter, e.g. 'Day Hiking', 'Climbing', 'Sea Kayaking', 'Backpacking', 'Scrambling', 'Snowshoeing', 'Cross-Country Skiing', 'Alpine Skiing', 'Trail Running', 'Mountain Biking', 'Sailing', 'Stewardship'

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states that past activity instances are not in the search index, which is a key behavioral constraint. However, it does not mention other behaviors like rate limits, authentication requirements, or pagination details beyond what's in the schema.

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 concise and well-structured, with only three sentences. It front-loads the core purpose and immediately provides filtering capabilities, then adds important exclusions and alternatives. Every sentence adds value with 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?

Given the 11 parameters, 100% schema coverage, and no output schema or annotations, the description provides essential context about what is searched (current activities) and what is not (past). It could mention the pagination behavior (page parameter, 20 per page) to be fully complete, but it is still quite thorough.

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 covers all 11 parameters with descriptions (100% coverage). The description adds a summary of filter types but does not provide deeper meaning or usage examples beyond the schema. Since schema coverage is high, a 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 tool searches currently-published outdoor activities on mountaineers.org, including upcoming trips, course field trips, and clinics. It also distinguishes from sibling tools by specifying that past activities are not in the index, directing users to get_activity or get_member_history for those cases.

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?

The description explicitly tells when to use this tool (searching current/upcoming activities) and when not to (past activities not indexed). It lists alternative tools (get_activity, get_member_history) for historical data, providing clear usage boundaries.

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

search_badgesB

Search the mountaineers.org badge catalog. Returns title, URL, and badge_type derived from the URL (one of: award, instructor, leader, other). Optional free-text query.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (0-based, 20 results per page)
queryNoSearch text

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose authentication needs, rate limits, pagination behavior, or query semantics (e.g., case sensitivity, wildcards).

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?

Two concise sentences, front-loaded with the verb and target resource. No redundancy.

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?

Missing output schema and annotations. Description does not explain pagination details, default behavior, or sorting. Incomplete for a search tool with many siblings.

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 covers 100% of parameters with descriptions. The description adds 'Optional free-text query' but otherwise repeats schema info. 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?

Clearly states it searches the badge catalog and returns specific fields (title, URL, badge_type). Distinguishes from sibling search tools for other resources.

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?

Implied usage for searching badges, but no explicit guidance on when to use this vs get_badge or get_my_badges. No contrast with alternatives.

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

search_coursesA

Search currently-published courses, clinics, and seminars on mountaineers.org (upcoming and rolling-enrollment only). Past course instances (prior years) are NOT in the search index, even though their URLs still resolve — if you have a known historical course URL use get_course, or use get_my_courses for the authenticated user's past courses.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (0-based, 20 results per page)
queryNoSearch text
branchNoBranch filter, e.g. 'Seattle', 'Tacoma', 'Olympia'
open_onlyNoOnly show courses open for registration
difficultyNoDifficulty filter: 'Casual', 'Easy', 'Moderate', 'Challenging'
activity_typeNoActivity type filter, e.g. 'Climbing', 'Scrambling', 'Sea Kayaking', 'Navigation'

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries full burden and discloses that past courses are not in the index and that URLs can still resolve but search won't find them. However, it does not mention authentication, rate limits, or pagination behavior beyond what's in the schema.

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?

Two sentences: first defines purpose and scope, second provides exclusions and alternatives. No wasted words, front-loaded with key information.

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?

Adequately covers the key constraint of only current offerings. Lacks details on return format (no output schema) but the schema explains pagination. For a search tool, this is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds context about the date scope (upcoming and rolling-enrollment only) and exclusions, which goes beyond schema parameter descriptions.

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 searches 'currently-published courses, clinics, and seminars' on a specific site, and distinguishes it from siblings like get_course and get_my_courses by specifying scope and alternatives.

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 when to use (search current offerings) and when not to use (past instances), and provides alternative tools (get_course, get_my_courses), giving clear guidance.

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

search_eventsA

Search mountaineers.org events (festivals, clinics, social gatherings, branch meetings — distinct from activities and courses). Returns title, URL, date string, and location. Optionally filter by free-text query.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (0-based, 20 results per page)
queryNoSearch text

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description must fully convey behavior. It states it is a search and returns specific fields, but does not disclose potential behavioral traits such as rate limits, authentication requirements, or whether it is destructive. For a search tool, this is adequate but not thorough.

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?

Two sentences with no wasted words. The first sentence establishes purpose and distinction; the second specifies return fields and optional filter. Information is front-loaded and structured efficiently.

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?

For a simple search tool with two parameters and no output schema, the description adequately covers the resource, return fields, and filtering. However, it could mention pagination behavior more explicitly, though the schema covers the page parameter sufficiently.

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 each parameter already having clear descriptions (e.g., 'Page number (0-based, 20 results per page)'). The tool description adds no new information beyond 'Optionally filter by free-text query', which partially repeats the schema. Thus, no significant added value over schema, earning baseline 3.

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 specifies the verb (search), resource (mountaineers.org events), and lists event types (festivals, clinics, etc.), distinguishing from activities and courses. It also mentions return fields, making purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly contrasts events with activities and courses, helping users understand when to use this tool over siblings like search_activities and search_courses. However, it does not provide explicit when-not-to-use or alternative tools beyond that distinction.

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

search_membersA

Search the mountaineers.org member directory by name or text. Returns name + slug + profile URL. The directory includes both individual members and group/role accounts (e.g. committee mailboxes); both are returned with no type marker. Requires authentication and a non-empty query.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (0-based, 20 results per page)
queryYesSearch text (matches name, slug, or any indexed text)

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description adds valuable behavioral context: it notes that both individual and group accounts are returned without a type marker. This goes beyond the input schema and helps the agent understand the 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?

Two sentences, no fluff, front-loaded with the core purpose. Every sentence adds essential information.

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?

The description fully covers the tool's purpose, parameters, return format, and a behavioral nuance. No output schema exists, but the description compensates well, making it complete for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds meaning by explaining query matches and page numbering (0-based, 20 results), and it details the return fields, complementing 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?

The description explicitly states the verb 'Search', the resource 'member directory', and what is returned ('name + slug + profile URL'). It clearly distinguishes from sibling search tools targeting different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes prerequisites: 'Requires authentication and a non-empty query.' While it doesn't explicitly compare to alternatives, the sibling tool names make the resource distinction clear, so the context is sufficient.

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

search_routesB

Search routes and places on mountaineers.org. Filter by activity type, difficulty, climbing category, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (0-based, 20 results per page)
queryNoSearch text
used_forNoUsed for filter, e.g. 'Basic Alpine', 'Intermediate'
difficultyNoDifficulty filter: 'Casual', 'Easy', 'Moderate', 'Moderate+', 'Challenging'
activity_typeNoActivity type: 'Day Hiking', 'Climbing', 'Sea Kayaking', 'Backpacking', 'Scrambling', 'Snowshoeing', 'Cross-Country Skiing', 'Alpine Skiing', 'Trail Running', 'Mountain Biking', 'Sailing'
climbing_categoryNoClimbing category filter
snowshoeing_categoryNoSnowshoeing category filter

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 must bear full weight. It only states the tool searches and filters, omitting behavioral traits like pagination, rate limits, or auth requirements.

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 states purpose and key filters. No wasted words, front-loaded with main action.

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 7 parameters and no output schema/annotations, the description lacks detail on pagination, return values, or filter mechanics. Incomplete for a search 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 baseline is 3. The description mentions some filters (activity type, difficulty, climbing category) but adds no new semantic 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?

The description clearly states the tool searches routes and places on mountaineers.org, listing example filters (activity type, difficulty, climbing category). This differentiates it from sibling search tools like search_activities and search_trip_reports.

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 given on when to use this tool versus alternatives. With many sibling search tools, explicit usage context is missing.

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

search_trip_reportsA

Search trip reports on mountaineers.org. Trip reports are member-written accounts of past outings; the full historical archive (8000+ reports) is searchable here. To narrow to a specific route, pass the route name as the query.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (0-based, 20 results per page)
queryNoSearch text
activity_typeNoActivity type filter

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses that the tool searches over 8000+ trip reports and suggests query usage. However, it does not state that the tool is read-only, nor does it describe pagination or result format beyond what the schema provides.

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 three sentences, front-loaded with purpose, followed by context and usage tip. Every sentence earns its place with no redundancy or wasted words.

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 no output schema and 100% parameter coverage, the description explains the domain (mountaineers.org, 8000+ reports) and provides a usage tip. It could mention pagination or that results are a list, but it is largely complete for a search 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?

Schemas cover 100% of parameters. The description adds specific context for the query parameter (route name narrowing), but the baseline is 3 given high schema coverage. The page parameter detail (20 results per page) is already in the schema, so minimal added value.

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 searches trip reports on mountaineers.org, defines what trip reports are, and mentions the archive size. It distinguishes from sibling tools like get_trip_report (single report) and get_route_trip_reports (route-specific reports) by being the general search tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage tip: 'To narrow to a specific route, pass the route name as the query.' This helps the agent decide when to use this tool. However, it does not explicitly state when not to use it or mention alternatives like get_route_trip_reports.

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

whoamiA

Get the currently logged-in user's name, slug, and profile URL. Requires an active session — run the login tool first.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries full weight. It discloses the operation as read-only ('Get') and the session requirement. No contradictory or missing behavioral traits, though it doesn't detail error behavior if no session.

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?

Two short sentences: one for purpose, one for prerequisite. No fluff, highly efficient.

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?

Low complexity with no params and no output schema. Description covers the returned fields (name, slug, profile URL). Sufficient for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist in the schema. Baseline for 0 params is 4. Description adds no parameter info, but none needed.

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 'Get' and the resource 'currently logged-in user's name, slug, and profile URL'. It distinguishes itself from sibling tools which operate on other entities like activities, badges, courses, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly notes the prerequisite: 'Requires an active session — run the `login` tool first.' This guides the agent on when to use the tool. No mention of when not to use, but the sibling list provides alternatives.

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. 1 tool updatev1.12.1
    • Changedget_route_trip_reports1 field changed
      • changedInput schema / properties / route_url / description
        Previous value: -"Full route URL (e.g. https://www.mountaineers.org/activities/routes-places/mount-si-main-trail) or path"New value: +"Full route URL, /activities/routes-places/... path, or route slug (e.g. 'mount-si-main-trail')"
  2. 28 tool updatesv1.11.1
    • First observedget_activity
    • First observedget_activity_history
    • First observedget_activity_roster
    • First observedget_badge
    • First observedget_course
    • First observedget_event
    • First observedget_member_activities
    • First observedget_member_courses
    • First observedget_member_history
    • First observedget_member_profile
    • First observedget_my_activities
    • First observedget_my_badges
    • First observedget_my_courses
    • First observedget_route
    • First observedget_route_trip_reports
    • First observedget_trip_report
    • First observedget_version
    • First observedlist_branches
    • First observedlist_committees
    • First observedlogin
    • First observedsearch_activities
    • First observedsearch_badges
    • First observedsearch_courses
    • First observedsearch_events
    • First observedsearch_members
    • First observedsearch_routes
    • First observedsearch_trip_reports
    • First observedwhoami

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct aspect of the domain (activities, courses, events, badges, routes, trip reports, members, auth). Even tools with similar prefixes (e.g., get_activity vs get_activity_history) have clearly different purposes and descriptions that eliminate ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (get_, list_, search_, login, whoami) with clear and predictable naming. There are no mixed conventions or confusing variants.

Tool Count5/5

28 tools cover the full breadth of the mountaineering organization's data (activities, courses, events, badges, routes, trip reports, members, branches, auth). The count is well-scoped for the domain and each tool serves a necessary purpose.

Completeness5/5

The tool surface provides comprehensive read-only access to the organization's public and authenticated data. All major domains are covered: searching, retrieving details, listing branches/committees, and user-specific views. Missing write operations are appropriate for the server's purpose.

Maintenance

ActivityActive
ResponsivenessUnresponsive

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

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI clients to search and browse camping availability across Alberta Parks, BC Parks, and Parks Canada, including front-country and backcountry campgrounds, through a unified set of tools.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to search FamilySearch's Family Tree, view person details, explore ancestors and descendants, and search historical records using browser session authentication.
    9
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Exposes the Camptocamp.org API to LLMs, enabling querying of alpine routes, summit altitudes, and course descriptions with reliable data to avoid hallucinations.
    6
    74
    1
    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/dreamiurg/mountaineers-mcp'

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