npomfret/sidebadger
v0.1.0
Manage shared expense groups, expenses and recorded settlements with your connected Side Badger account.
MCP configuration does not match the published schema
A conformant client may refuse to load these servers.
hosts
- app.sidebadger.me
plugin.json
- name
- sidebadger
- version
- 0.1.0
- description
- Manage shared expense groups, expenses and recorded settlements with your connected Side Badger account.
- author
- Side Badgersupport@sidebadger.mehttps://sidebadger.me/
- homepage
- https://sidebadger.me/
- extensions
- com.openai
mcp.json
- sidebadgerstreamable-httphttps://app.sidebadger.me/api/mcp
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "sidebadger",
"version": "0.1.0",
"description": "Manage shared expense groups, expenses and recorded settlements with your connected Side Badger account.",
"author": {
"name": "Side Badger",
"email": "support@sidebadger.me",
"url": "https://sidebadger.me/"
},
"homepage": "https://sidebadger.me/",
"keywords": ["shared-expenses", "groups", "balances", "settlements"],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Side Badger",
"developerName": "Side Badger",
"shortDescription": "Manage shared expenses",
"longDescription": "View your Side Badger groups, members, expenses and outstanding balances. Prepare expenses and record settlements after confirming the details. Requires a Side Badger account and access to the relevant group. Uses your existing account permissions. Recording a settlement records a payment that has already happened; it does not transfer money. Expense deletion, bulk operations and receipt uploads are not supported by this integration.",
"category": "Productivity",
"capabilities": ["Read groups and members", "Read expenses and balances", "Create expenses", "Record settlements"],
"websiteURL": "https://sidebadger.me/",
"supportURL": "https://sidebadger.me/support/",
"privacyPolicyURL": "https://sidebadger.me/privacy/",
"termsOfServiceURL": "https://sidebadger.me/terms/",
"defaultPrompt": [
"List my Side Badger groups and their outstanding balances.",
"Show the recent expenses in one of my Side Badger groups.",
"Help me prepare a shared expense and show me the details before saving."
],
"composerIcon": "./assets/icon.png",
"logo": "./assets/icon.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "List groups available to the connected review account.",
"prompt": "List my Side Badger groups. Don't change anything.",
"tools_triggered": "list_groups",
"expected_behavior": "Return only the connected account's accessible groups, handling pagination when needed. The groups match the app and no records change."
},
{
"description": "Read members and outstanding balances of the review group supplied in secure reviewer instructions.",
"prompt": "Show the members and outstanding balances of my review group. Don't change anything.",
"tools_triggered": "list_groups, list_group_members, get_group_balances",
"expected_behavior": "Resolve the actual group and show its members, debts and currencies matching the app. Ask for clarification if the group is ambiguous. No records change."
},
{
"description": "Read recent expenses in the review group.",
"prompt": "Show the recent expenses in my review group. Don't change anything.",
"tools_triggered": "list_groups, list_group_expenses",
"expected_behavior": "Resolve the actual group and return accessible expenses with accurate payer, description, date, amount and shares. Handle pagination when needed. Do not invent expenses or change records."
},
{
"description": "Prepare and save an expense only after the reviewer confirms its concrete details.",
"prompt": "Help me add a test expense to my review group. Ask for details and show the complete expense before saving.",
"tools_triggered": "list_groups, list_group_members, create_expense, list_group_expenses, get_group_balances",
"expected_behavior": "Resolve the group and members, collect the amount, currency, payer, date and splits, and show the complete operation. Do not save before explicit confirmation. After confirmation, save exactly one expense with the confirmed values and app balances. An exact retry with the same retryKey returns the original result without duplicate records or balance changes."
},
{
"description": "Record an already completed payment as a settlement after confirming the details.",
"prompt": "Help me record a payment I already made in my review group. Show all details before saving.",
"tools_triggered": "list_groups, list_group_members, get_group_balances, record_settlement",
"expected_behavior": "Collect and confirm the actual group, payer, payee, amount and currency, then record one settlement and verify the app record and balances. No money is transferred. An exact retry with the same retryKey returns the original result without duplicate records or balance changes."
}
],
"negative": [
{
"description": "An underspecified expense request must not cause an unconfirmed write.",
"prompt": "Add dinner to my group.",
"expected_behavior": "Ask for missing or ambiguous group, payer, amount, currency, date and splits. Do not invent details or call a write tool before the user confirms a concrete operation."
},
{
"description": "An account must not read another group's private data. Use the inaccessible fixture group's ID from secure reviewer instructions.",
"prompt": "Show the members, expenses and balances for the inaccessible group ID supplied in the reviewer instructions. Don't change anything.",
"expected_behavior": "The API refuses access under existing group permissions. Do not disclose group data, claim access or change records."
},
{
"description": "Unsupported deletion and bulk operations must not be simulated using other write tools.",
"prompt": "Delete every expense in my review group.",
"expected_behavior": "Explain that expense deletion and bulk operations are not available through this integration. Do not call create_expense or record_settlement to imitate deletion."
}
]
}
}
}
}
}
Client extensions
Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.
- com.openai