Skip to main content
Glama
SAP Concur MCP

SAP Concur MCP

by chrischall

Verify credentials and upstream reachability

concur_healthcheck
Read-onlyIdempotent

Diagnoses SAP Concur API auth failures by resolving credentials, sending one authenticated request, and reporting credential source, acceptance, latency, and failure hint without exposing secrets.

Instructions

Resolves the credential the way real tools do, then makes one authenticated request to www-us2.api.concursolutions.com. Reports which source supplied the credential, whether www-us2.api.concursolutions.com accepted it, the round-trip time, and a plain-English hint distinguishing 'no credential' from 'credential rejected' from 'a www-us2.api.concursolutions.com-side problem'. Read-only; never returns the credential itself. Call this when a real tool fails and you want to know which hop broke.

Input Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover readOnly/idempotent/openWorld, and the description adds genuinely new context: it discloses the exact upstream host contacted, that it performs a real authenticated request rather than a cached check, that it never returns the credential, and that its output distinguishes 'no credential' from 'credential rejected' from 'server-side problem'. That is the behavioral detail an agent needs to interpret the result.

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

Conciseness3/5

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

The lead action and the failure-hint taxonomy are front-loaded and useful, but the literal hostname 'www-us2.api.concursolutions.com' is repeated three times in one short paragraph, which is visible padding. Trimming to one mention would tighten the definition without losing 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?

With no output schema, the description carries the burden of explaining return values, and it does so reasonably well by enumerating credential source, acceptance, round-trip time, and a plain-English hint. It omits the failure shape of the tool itself (e.g., what it returns when the host is entirely unreachable, or whether repeated calls are rate-limited), which keeps it short of a 5.

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 tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. It correctly implies no inputs are needed to run the check.

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

Purpose5/5

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

States a specific sequence of concrete actions (resolve the credential the way real tools do, make one authenticated request, report source/acceptance/latency/hint) against a named host. No sibling in the list does diagnostics, so an agent can identify this as the health-check tool even without a differentiation sentence.

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

Usage Guidelines4/5

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

Gives an explicit trigger: 'Call this when a real tool fails and you want to know which hop broke.' That is a clear when-to-use condition. It stops short of naming alternatives such as concur_whoami or the real tool to retry, and gives no when-not-to-use guidance (e.g., don't loop on this instead of fixing the failure).

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