MCP tools
Agent Pay status: Approve does not execute. Execution: not enabled. ACH settlement: not enabled. prepare_payment never moves money. Machine-readable: /docs/agents/status.json.
Names, scopes, and schemas generated from code. Machine-readable: /docs/agents/reference/mcp-tools.json.
Server points-mcp version 2.2.0, MCP protocol 2025-11-25, Streamable HTTP at https://thepoints.io/mcp. Every call needs an OAuth access token, and the tool's scope is checked on every call. No tool accepts an account identifier: the account comes from the OAuth grant.
| Tool | Scope | Read-only | Listed by tools/list |
|---|---|---|---|
get_account_summary | balances:read | Yes | Yes |
list_transactions | transactions:read | Yes | Yes |
find_savings_opportunities | optimize:read | Yes | Yes |
create_payment_draft | payments:draft | No | No (retired, fails closed) |
prepare_payment | payments:draft | No | Yes |
get_payment_status | payments:status | Yes | Yes |
get_connection_identity | identity:read | Yes | Yes |
get_account_status | module-status:read | Yes | Yes |
get_agent_pay_policy_vocabulary | module-status:read | Yes | Yes |
get_wallet_status | module-status:read | Yes | Yes |
get_account_summary
Get account summary. Read-only balance summary for the connected account. The available balance is unreserved cash, after Agent Pay reserved and escrowed amounts. Sources are labelled sandbox.
- Scope:
balances:read - Annotations:
readOnlyHinttrue,destructiveHintfalse,idempotentHinttrue,openWorldHintfalse - Listed by tools/list: yes
Input schema:
{
"type": "object",
"properties": {},
"additionalProperties": false
}
list_transactions
List transactions. Read-only sandbox transaction list for the connected account.
- Scope:
transactions:read - Annotations:
readOnlyHinttrue,destructiveHintfalse,idempotentHinttrue,openWorldHintfalse - Listed by tools/list: yes
Input schema:
{
"type": "object",
"properties": {},
"additionalProperties": false
}
find_savings_opportunities
Find savings opportunities. Read-only sandbox savings suggestions scoped to the connected account.
- Scope:
optimize:read - Annotations:
readOnlyHinttrue,destructiveHintfalse,idempotentHinttrue,openWorldHintfalse - Listed by tools/list: yes
Input schema:
{
"type": "object",
"properties": {},
"additionalProperties": false
}
create_payment_draft
Create payment draft. Retired. Not listed by tools/list. A direct call fails closed with an explicit message to use prepare_payment.
- Scope:
payments:draft - Annotations:
readOnlyHintfalse,destructiveHintfalse,idempotentHinttrue,openWorldHintfalse - Listed by tools/list: no
- Every call returns:
create_payment_draft is no longer an advertised POINTS MCP tool. Refresh tool discovery and use prepare_payment for Agent Pay payment preparation.
Input schema:
{
"type": "object",
"properties": {
"amountCents": {
"type": "integer",
"minimum": 1,
"maximum": 10000000
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$"
},
"recipient": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"reference": {
"type": "string",
"minLength": 1,
"maxLength": 240
},
"idempotencyKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,120}$"
}
},
"required": [
"amountCents",
"currency",
"recipient",
"reference",
"idempotencyKey"
],
"additionalProperties": false
}
prepare_payment
Prepare agent payment. Agent Pay entry point. Checks policy, spending controls, and caps, then stages a draft that always needs human approval. It never moves money.
- Scope:
payments:draft - Annotations:
readOnlyHintfalse,destructiveHintfalse,idempotentHinttrue,openWorldHintfalse - Listed by tools/list: yes
Input schema:
{
"type": "object",
"properties": {
"amountCents": {
"type": "integer",
"minimum": 1,
"maximum": 10000000
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$"
},
"merchant": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"category": {
"type": "string",
"enum": [
"ai_compute",
"advertising_marketing",
"saas_apis",
"ecommerce_procurement",
"logistics"
]
},
"reference": {
"type": "string",
"minLength": 1,
"maxLength": 240
},
"idempotencyKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,120}$"
},
"paymentPattern": {
"type": "string",
"enum": [
"standard",
"sell_side_job",
"micropayment"
],
"description": "Optional Agent Pay P2 pattern. sell_side_job holds escrow before work; micropayment reserves fee before send and charges only on HTTP 2xx. Never moves money while execution is disabled."
},
"policySchemaVersion": {
"type": "integer",
"minimum": 1,
"maximum": 32,
"description": "Policy schema version from get_agent_pay_policy_vocabulary.policySchemaVersion. Unsupported versions fail closed on spend. Omit only for legacy clients."
}
},
"required": [
"amountCents",
"currency",
"merchant",
"idempotencyKey"
],
"additionalProperties": false
}
get_payment_status
Get payment draft status. Read-only status of a payment draft on the connected account, with read-time expiry applied. executed is always false.
- Scope:
payments:status - Annotations:
readOnlyHinttrue,destructiveHintfalse,idempotentHinttrue,openWorldHintfalse - Listed by tools/list: yes
Input schema:
{
"type": "object",
"properties": {
"draftId": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"draftId"
],
"additionalProperties": false
}
get_connection_identity
Get connection identity. Read-only redacted identity of the connected account and its server-side mappings. No balances or secrets.
- Scope:
identity:read - Annotations:
readOnlyHinttrue,destructiveHintfalse,idempotentHinttrue,openWorldHintfalse - Listed by tools/list: yes
Input schema:
{
"type": "object",
"properties": {},
"additionalProperties": false
}
get_account_status
Get account status. Read-only account type and module activation status.
- Scope:
module-status:read - Annotations:
readOnlyHinttrue,destructiveHintfalse,idempotentHinttrue,openWorldHintfalse - Listed by tools/list: yes
Input schema:
{
"type": "object",
"properties": {},
"additionalProperties": false
}
get_agent_pay_policy_vocabulary
Get Agent Pay policy vocabulary. Read-only policy vocabulary: schema version, canonical categories, matching rules, velocity caps, and the allow and block lists for this connection.
- Scope:
module-status:read - Annotations:
readOnlyHinttrue,destructiveHintfalse,idempotentHinttrue,openWorldHintfalse - Listed by tools/list: yes
Input schema:
{
"type": "object",
"properties": {},
"additionalProperties": false
}
get_wallet_status
Get wallet status. Read-only stored wallet status (staging) for the connected AI Agent. No balances and no raw wallet identifiers.
- Scope:
module-status:read - Annotations:
readOnlyHinttrue,destructiveHintfalse,idempotentHinttrue,openWorldHintfalse - Listed by tools/list: yes
Input schema:
{
"type": "object",
"properties": {},
"additionalProperties": false
}