Skip to main content
Glama

Corply — Start and run your company

Request money or get reimbursed with Corply Pay

request_money

Corply Pay is Corply's white-labelled payments product. Ask someone to pay the company a single amount, or to reimburse an expense. Use reason:reimbursement with expenseDescription (and expenseCategory/expenseDate when known) for requests like "help me get reimbursed from Grow LLC for $70 for gas, their email is ops@grow.co" (payerOrganization "Grow LLC", amountCents 7000, expenseCategory gas); use reason:payment for any other money owed. The company is the merchant and the payer pays exactly the invoice total (never add a fee to it). Fees come out of the company's proceeds: when payments run on Stripe, Corply takes no fee and Stripe deducts its processing fee (the preview shows Stripe's estimate); otherwise Corply Pay deducts a 1% software fee. State the fee exactly as the preview's money facts say. Call once without previewSha256 to preview: nothing is created or emailed, and the result shows the exact recipient, subject, email text, amount, fees and net. In clients that render the Corply invoice card, the founder's Send button confirms and sends it: do not call the confirming step yourself after showing the card. Otherwise show that preview, get the founder's fresh plain-text confirmation, then call again with the same arguments plus the exact returned previewSha256 and sendConfirmed:true. A different request fails with AUTHORIZATION_CHANGED. Reuse the same idempotencyKey on retries; the confirmed call emails the payer only and returns payUrl, pdfUrl and emailDelivery (queued is not received). If it fails with CORPLY_PAY_NOT_READY or CORPLY_PAY_TERMS_REQUIRED, run set_up_corply_pay first. Never ask for, repeat or accept card numbers or bank account details in chat: the payer enters them only on the returned Corply Pay link. Card payments confirm right away; US bank (ACH) payments clear in about 4 business days. Prerequisite: authenticated active company access plus every prerequisite stated above. Canonicality: invokes the shared backend action; trust the returned actual_tool_output and context_engineering instead of adding a state-recovery call. Idempotency: obey the tool-specific retry key or guarantee; if none is stated, inspect refreshed state before retrying. Confirmation boundary: obtain fresh, explicit user confirmation before calling.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
memoNo
dueOnNoYYYY-MM-DD. Defaults to 7 days from today.
titleNo
reasonYes
companyIdNo
payerNameNo
payerEmailYes
amountCentsYesInteger cents the payer pays, e.g. $70.00 -> 7000.
expenseDateNoYYYY-MM-DD the expense was incurred; never in the future.
previewSha256NoThe previewSha256 the preview call returned. Omit on the preview call.
sendConfirmedNoOnly after the founder's fresh plain-text confirmation of the exact previewed recipient, email and amounts. Omit on the preview call.
allowedMethodsNo
idempotencyKeyYes
_corply_contextNo
expenseCategoryNo
payerOrganizationNo
expenseDescriptionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only say it is a non-read-only, open-world, non-destructive mutation. The description goes far beyond: fee mechanics (Stripe processing vs 1% Corply software fee), that preview creates/sends nothing, that the confirmed call emails the payer only and returns payUrl/pdfUrl/emailDelivery where 'queued is not received', ACH vs card settlement timing, the AUTHORIZATION_CHANGED failure on stale preview, and a hard prohibition on handling card/bank data.

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 operational content is front-loaded and largely earns its place, but the closing block ('Canonicality...', 'Idempotency: obey the tool-specific retry key...', 'Confirmation boundary: obtain fresh, explicit user confirmation') is generic template padding that restates rules already given concretely earlier, inflating an already long description.

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 17-param, no-output-schema mutation with a multi-step preview/confirm flow, the description supplies the return fields, the prerequisite setup tool, the error-recovery path and the authorization ritual, which is close to sufficient. The gap is allowedMethods and the several request-shaping fields it never mentions.

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?

With only 29% schema description coverage across 17 params, the description has to compensate, and it does for reason, expenseDescription, expenseCategory, expenseDate, payerOrganization, amountCents, previewSha256, sendConfirmed and idempotencyKey. It is silent on allowedMethods (card/ach selection), memo, title, payerName, companyId and _corply_context, so coverage is strong but not complete.

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

Purpose5/5

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

States a specific verb (request money / get reimbursed) and resource (Corply Pay invoice) and explicitly splits the two reasons: 'use reason:reimbursement with expenseDescription... use reason:payment for any other money owed.' An agent can distinguish this from siblings like request_payment or send_invoice from the text alone.

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?

Gives explicit when-to-use routing between the two reason values with worked examples, prescribes the preview-then-confirm sequence, and names the recovery path ('If it fails with CORPLY_PAY_NOT_READY or CORPLY_PAY_TERMS_REQUIRED, run set_up_corply_pay first'). Alternatives and exclusions are covered.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.