revenue-mcp
Server Details
CrossingKey MCP for agent commerce, prepaid credits, and bounded paid XKEY validation.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 6 tools
Most tools target distinct concepts (fulfillment, services, offers, intake), but get_request_credit_links and get_stripe_checkout_link both return Stripe Payment Links and could be confused. list_request_services and list_stripe_offers also overlap conceptually in naming.
Naming is inconsistent: mixes get_, list_, and the unique xkey_ prefix, and uses varied noun phrases like request_credit_links, stripe_checkout_link, and request_services. The 'xkey_validate_intake' name breaks the otherwise verb_noun pattern.
Six tools is a reasonable, focused set for a payment/fulfillment integration. Each tool has a plausible role, though two pairs could potentially be consolidated without much loss.
The set covers reading offers, services, payment links, fulfillment status, and intake validation, but lacks write/update operations (e.g., creating offers, updating fulfillment, refunding credits). It seems adequate for a read-oriented client but incomplete for full lifecycle management.
Available Tools
6 toolsget_fulfillment_statusCheck fulfillment readinessARead-onlyInspect
Checks whether a Stripe offer has a verified delivery file bound to this server.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Checks whether' aligns with that read-only profile — no contradiction. The description adds genuine value beyond annotations by disclosing the operational criterion: the check is scoped to a 'verified delivery file bound to this server,' which clarifies the exact state being probed. It doesn't describe return shape, but for a safety-covered read operation the added criterion is meaningful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. Every element — the verb, the resource, and the verification criterion — earns its place, and the description reads naturally with no redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only tool with safety annotations, the core check is stated, but the return value is never described: an agent doesn't know whether it receives a boolean, a status string, or a richer object. With no output schema present, the description should hint at the result shape. The missing return semantics and implicit parameter identity are the main gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description bears the burden. It partially compensates by naming the resource type (Stripe offer), making it inferable that the single 'id' parameter is the offer identifier, but it never explicitly states what id refers to, its format, or provenance. Since there is only one simple string parameter and the resource is named, this is adequate but not thorough — a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (checks whether) with a clear resource (Stripe offer) and an outcome criterion (verified delivery file bound to this server). This distinguishes it from siblings like get_stripe_checkout_link and get_request_credit_links, since none of those reference delivery-file verification. It doesn't name a sibling explicitly, which prevents a 5, but the resource+criterion combination makes its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't state prerequisites (e.g., that an offer must already exist), exclusions, or conditions that would route an agent to a sibling like list_stripe_offers or get_stripe_checkout_link. The title 'Check fulfillment readiness' implies a follow-up-after-purchase context, but this is left to inference rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_request_credit_linksGet request-credit payment linksARead-onlyInspect
Returns the live Stripe Payment Links for prepaid CrossingKey request credits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the readOnlyHint annotation and adds a minor detail ('live') about the data freshness. However, it does not disclose any additional behavior, side effects, or limitations beyond what the annotations already indicate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the purpose without unnecessary filler. It is well-structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with no parameters and no output schema, the description is sufficiently complete. It identifies what is returned and the context, though it could be slightly more explicit about the structure of the payment links or their intended use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the schema coverage is effectively 100%. The description does not need to explain parameters, and the baseline for high schema coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (returns), the resource (Stripe Payment Links), and the specific context (prepaidKey request credits). This makes the tool's purpose unambiguous and distinct from siblings like get_stripe_checkout_link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the sibling tools, such as get_stripe_checkout_link or list_stripe_offers. There is no mention of conditions or scenarios that would make this tool the preferred choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stripe_checkout_linkGet Stripe checkout linkARead-onlyInspect
Returns the exact Stripe Payment Link for a known CrossingKey offer. Never invents a checkout URL.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds a valuable behavioral guarantee: it never fabricates a checkout URL, ensuring accuracy. This goes beyond the annotations, which is meaningful for an agent relying on exact data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary purpose is front-loaded, and the second sentence adds a crucial reliability constraint. Every word earns its place; it's concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter, no output schema, and annotations covering safety, the description is largely complete. It states what it returns (the exact link) and the precondition (known offer). It doesn't explain error behavior (e.g., what happens if the offer doesn't exist), but that's a minor gap given the simplicity and the read-only nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implies that 'id' is the identifier for a known CrossingKey offer, which adds meaning beyond the raw schema. However, it doesn't explicitly specify the exact nature of the id (e.g., internal offer ID vs. Stripe object ID) or its format, leaving some ambiguity. A more explicit mapping would be stronger.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns'), a precise resource ('Stripe Payment Link'), and a clear condition ('for a known CrossingKey offer'). It clearly distinguishes from siblings like list_stripe_offers (which lists offers) and get_request_credit_links (other link types). The 'Never invents a checkout URL' reinforces the exactness, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when you already have a known offer ID, and the 'Never invents' warning cautions against guessing URLs. However, it doesn't explicitly name alternatives or state when not to use it (e.g., 'use list_stripe_offers to find offers'). The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_request_servicesList paid request servicesARead-onlyInspect
Lists request services approved after the safe-file scan. Empty until services are explicitly approved.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: that the list is empty until services are approved after a safe-file scan. This explains the state and the gating mechanism, which annotations don't provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no wasted words. The core action is stated first, followed by the crucial state condition. Everything earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-output-schema tool with annotations covering safety, the description is complete enough. It tells what the tool lists, under what condition, and when it is empty. An agent can decide to call it without additional missing information. Slightly more detail about return structure could be added, but it's not necessary given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the schema coverage is 100% (empty schema). With no parameters, there is nothing to explain. The description adds no parameter details because none exist, which is appropriate. Baseline of 4 for no parameters is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Lists' and a specific resource 'request services' with a clear condition ('approved after the safe-file scan'). This distinguishes it from sibling tools like list_stripe_offers or get_fulfillment_status, which handle different resources or purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need request services that have been approved. It states the list is empty until services are explicitly approved, giving clear context about the data state. It doesn't explicitly name alternatives or exclusions, but the context is sufficient for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_stripe_offersList CrossingKey Stripe offersARead-onlyInspect
Lists the known CrossingKey Stripe Payment Links. Digital offers report whether the exact fulfillment file has been verified on this server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds that digital offers report whether the exact fulfillment file is verified, which is useful behavioral context beyond the annotations. However, it does not disclose any other side effects or output specifics, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted words. It front-loads the primary purpose and immediately adds a relevant detail about digital offers. It is appropriately sized for a zero-parameter list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description covers the essential purpose and mentions the key verification flag for digital offers. It does not specify the full output structure (e.g., fields like name, price), but given the simplicity, this is a minor gap. The description is sufficiently complete for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema fully covers them. The description adds no parameter details because none are needed. Baseline for 0 params is 4, and there is no requirement to describe parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Lists') and a specific resource ('known CrossingKey Stripe Payment Links'), and the added clause about digital offers distinguishes it from the sibling get_stripe_checkout_link (singular). It unambiguously conveys this tool lists all offers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. The description does not mention alternatives or conditions, leaving the agent to infer that this is for listing all offers rather than getting a single link.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xkey_validate_intakeValidate structured XKEY intakeCInspect
Paid bounded intake validation. Costs 1 prepaid credit on verified success. Safe validation failures release the reserved credit.
| Name | Required | Description | Default |
|---|---|---|---|
| raw_intake | Yes | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the credit cost on success and the release on failure, which are behavioral traits not captured in the annotations. This provides useful transparency about side effects and resource consumption.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using only two sentences without unnecessary verbiage. However, the structure is somewhat disjointed, mixing payment details with the core function, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete for effective agent use. It lacks details on the validation logic, expected input format, possible outputs (no output schema), and error conditions. Critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Neither the schema nor the description explains the meaning or expected format of 'raw_intake' or 'idempotency_key'. The description fails to compensate for the complete lack of parameter documentation, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Paid bounded intake validation' is vague and does not clearly state what the tool actually does or what 'intake' refers to. It focuses more on the payment model than on the validation functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the listed sibling tools. It does not mention any specific use case or selection criteria, leaving the agent without direction for appropriate invocation.
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.
6 tool updates
- First observed
get_fulfillment_status - First observed
get_request_credit_links - First observed
get_stripe_checkout_link - First observed
list_request_services - First observed
list_stripe_offers - First observed
xkey_validate_intake
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity – fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge – works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge – works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
MCP Server for agents to onboard, pay, and provision services autonomously with InFlow
Agent Commerce Payments MCP Server by MEOK AI Labs
Agent Commerce Protocol MCP — bridges Stripe ACP + Google AP2 + Coinbase x402 for agent payments
Prepaid inference for agents over hosted MCP. Chat, image, and video.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceMCP Server for agents to onboard, pay, and provision services autonomously with InFlow6MIT- AlicenseNot gradedqualityCmaintenanceMCP server for AgentPay — the payment gateway for autonomous AI agents. Fund a wallet once, give your agent the key, and it discovers, provisions, and pays for tool APIs on its own. One key, every tool.1121MIT
- AlicenseNot gradedqualityCmaintenanceEnables agents to query and execute 1,005 autonomous MCP micro-services via the M2MCent Gateway with x402 V2 micropayment protocol.MIT
- AlicenseCqualityCmaintenanceAgent Commerce Payments - MCP server providing AI-powered tools and automation by MEOK AI Labs525MIT