list_grants
Public to any signed-in agentPublished kindness grants — issued and planned — with recipient, amount, category and proof link.
Arguments (all optional)
| Name | Type | Description |
|---|
| status | string | issued or planned. |
| category | string | Exact category match. |
| search | string | Case-insensitive partial match on title, recipient or location. |
| limit | integer | Page size 1–100. Default 25. |
| offset | integer | Rows to skip. Default 0. |
Response schema (structuredContent)
| Field | Type | Description |
|---|
| grants[].title | string | Short title of the grant. |
| grants[].recipient | string | Who received it. |
| grants[].location | string | null | City or region, when published. |
| grants[].category | string | null | Grant category. |
| grants[].amountCents | number | Grant amount in cents. |
| grants[].status | string | issued or planned. |
| grants[].issuedAt | string | null | ISO 8601 date paid, if issued. |
| grants[].proofUrl | string | null | Public link to proof. |
| total | number | Total rows matching the filter. |
| limit | number | Page size actually applied. |
| offset | number | Offset actually applied. |
| nextOffset | number | null | Offset for the next page, or null on the last page. |
Example request
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_grants",
"arguments": { "status": "issued", "limit": 2 }
}
}
Example response (result)
{
"content": [
{
"type": "text",
"text": "Grants 1-2 of 14\nISSUED · $5.00 · Coffee for the night shift → Sacred Heart ER (Spokane, WA)\nISSUED · $5.00 · Art supplies → Ms. Rivera's class (Spokane, WA)"
}
],
"structuredContent": {
"grants": [
{
"title": "Coffee for the night shift",
"recipient": "Sacred Heart ER",
"location": "Spokane, WA",
"category": "gratitude",
"amountCents": 500,
"status": "issued",
"issuedAt": "2026-08-14T00:00:00.000Z",
"proofUrl": "https://sharepayitforward.com/grant-ledger"
}
],
"total": 14,
"limit": 2,
"offset": 0,
"nextOffset": 2
}
}
get_ripple_report
Operator only (admin account)Month-to-date totals: gross received, card fees, platform fee, grant pool, grants issued and planned, and members joined.
Arguments (all optional)
| Name | Type | Description |
|---|
| month | string | YYYY-MM. Defaults to the current month. |
Response schema (structuredContent)
| Field | Type | Description |
|---|
| month | string | Month reported, YYYY-MM. |
| grossCents | number | Total received in cents. |
| stripeFeeCents | number | Card processing fees in cents. |
| platformFeeCents | number | Platform fee in cents. |
| poolCents | number | Added to the grant pool in cents. |
| grantsIssuedCents | number | Grants already paid out in cents. |
| grantsPlannedCents | number | Approved but unpaid grants in cents. |
| memberCount | number | Members who joined in the month. |
Example request
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_ripple_report",
"arguments": { "month": "2026-08" }
}
}
Example response (result)
{
"content": [{ "type": "text", "text": "Ripple report for 2026-08\nMembers joined: 12\nGross received: $85.00 …" }],
"structuredContent": {
"month": "2026-08",
"grossCents": 8500,
"stripeFeeCents": 540,
"platformFeeCents": 1200,
"poolCents": 6760,
"grantsIssuedCents": 2500,
"grantsPlannedCents": 1500,
"memberCount": 12
}
}
list_members
Operator only (admin account)Members with ripple code, join date, membership status and referrer.
Arguments (all optional)
| Name | Type | Description |
|---|
| status | string | active, pending, refunded or failed. |
| search | string | Partial match on email or ripple code. |
| referredBy | string | Only members referred by this ripple code. |
| joinedFrom | string | YYYY-MM-DD, inclusive lower bound. |
| joinedTo | string | YYYY-MM-DD, inclusive upper bound. |
| limit | integer | Page size 1–100. Default 20. |
| offset | integer | Rows to skip. Default 0. |
Response schema (structuredContent)
| Field | Type | Description |
|---|
| members[].rippleCode | string | The member's unique referral code. |
| members[].email | string | null | Member email. |
| members[].joinedAt | string | ISO 8601 timestamp of joining. |
| members[].membershipStatus | string | active, pending, refunded or failed. |
| members[].referredBy | string | null | Ripple code of the referrer. |
| total | number | Total rows matching the filter. |
| limit | number | Page size actually applied. |
| offset | number | Offset actually applied. |
| nextOffset | number | null | Offset for the next page, or null on the last page. |
Example request
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "list_members",
"arguments": { "status": "active", "limit": 1 }
}
}
Example response (result)
{
"content": [{ "type": "text", "text": "Members 1-1 of 4\nx7viegaz · active · joined 2026-09-05 · referred by s4hhud93" }],
"structuredContent": {
"members": [
{
"rippleCode": "x7viegaz",
"email": "member@example.com",
"joinedAt": "2026-09-05T18:12:04.221Z",
"membershipStatus": "active",
"referredBy": "s4hhud93"
}
],
"total": 4,
"limit": 1,
"offset": 0,
"nextOffset": 1
}
}
list_payments
Operator only (admin account)Payments with the reconciled split: gross, card fee, platform fee and grant pool share.
Arguments (all optional)
| Name | Type | Description |
|---|
| status | string | succeeded, pending, failed, refunded or disputed. |
| search | string | Partial match on payer email. |
| from | string | YYYY-MM-DD, inclusive lower bound. |
| to | string | YYYY-MM-DD, inclusive upper bound. |
| limit | integer | Page size 1–100. Default 20. |
| offset | integer | Rows to skip. Default 0. |
Response schema (structuredContent)
| Field | Type | Description |
|---|
| payments[].date | string | ISO 8601 timestamp of the payment. |
| payments[].status | string | succeeded, pending, failed, refunded or disputed. |
| payments[].email | string | null | Payer email. |
| payments[].grossCents | number | Amount charged in cents. |
| payments[].stripeFeeCents | number | Card processing fee in cents. |
| payments[].platformFeeCents | number | Platform fee in cents. |
| payments[].poolCents | number | Routed to the grant pool in cents. |
| payments[].currency | string | ISO currency code, e.g. usd. |
| total | number | Total rows matching the filter. |
| limit | number | Page size actually applied. |
| offset | number | Offset actually applied. |
| nextOffset | number | null | Offset for the next page, or null on the last page. |
Example request
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "list_payments",
"arguments": { "status": "succeeded", "from": "2026-08-01", "limit": 1 }
}
}
Example response (result)
{
"content": [{ "type": "text", "text": "Payments 1-1 of 9\n2026-09-05 · succeeded · $5.00 gross → pool $3.55, platform $1.00, stripe $0.45" }],
"structuredContent": {
"payments": [
{
"date": "2026-09-05T18:12:04.221Z",
"status": "succeeded",
"email": "member@example.com",
"grossCents": 500,
"stripeFeeCents": 45,
"platformFeeCents": 100,
"poolCents": 355,
"currency": "usd"
}
],
"total": 9,
"limit": 1,
"offset": 0,
"nextOffset": 1
}
}