{"name":"io.github.chrischall/splitwise-mcp","slug":"chrischall-splitwise-mcp","title":null,"description":"Splitwise expense and group management for Claude — shared expenses, settle up, friends","url":"https://mcp.market/server/chrischall-splitwise-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":29,"stars":1,"forks":0,"downloads_week":204,"last_push_at":"2026-09-17T23:33:07.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/chrischall/splitwise-mcp","website":null,"version":"3.0.0","remotes":[],"packages":[{"registryType":"npm","identifier":"splitwise-mcp","version":"3.0.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Your Splitwise API key (splitwise.com/apps/api)","isRequired":true,"format":"string","isSecret":true,"name":"SPLITWISE_API_KEY"},{"description":"Directory sw_get_receipt writes downloaded receipts into (default: the working directory)","format":"string","name":"SPLITWISE_OUTPUT_DIR"}]}],"tools":[{"name":"sw_add_user_to_group","description":"Add a user to a Splitwise group. Provide user_id (preferred, use sw_list_friends to resolve a name) or first_name + last_name + email to invite by email.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_create_comment","description":"Add a comment to a Splitwise expense (visible to other participants). Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it posts.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sw_create_expense","description":"Create a Splitwise expense. Use split_equally:true to split evenly among group members, or provide a users array for custom per-person splits (paid_share and owed_share as decimal strings like \"25.00\"). cost must be a decimal string. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it creates the expense.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sw_create_friend","description":"Add a Splitwise friend by email (sends them an invite). Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it adds the friend.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sw_create_group","description":"Create a new Splitwise group.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sw_delete_comment","description":"Delete a comment by id. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it deletes.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sw_delete_expense","description":"Soft-delete a Splitwise expense by id. Returns {success: true} on success. Use sw_undelete_expense to restore. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it deletes.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sw_delete_friend","description":"Remove a Splitwise friendship by user id. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it removes the friendship.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sw_delete_group","description":"Soft-delete a Splitwise group. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it deletes.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sw_get_categories","description":"Get the hierarchical list of Splitwise expense categories. Use the returned id as category_id when creating expenses.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_get_comments","description":"Get all comments on a Splitwise expense.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_get_currencies","description":"Get all Splitwise-supported currency codes and units. Use the currency_code value when creating expenses in non-default currencies.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_get_current_user","description":"Get the authenticated Splitwise user's profile. Use the returned id when building custom expense splits. The compact default returns id, name (first_name + last_name joined), email and registration_status; pass view:'full' for Splitwise's raw record, which keeps first_name and last_name separate — the form sw_update_user takes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_get_expense","description":"Get full details of a single Splitwise expense by id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_get_group","description":"Get details of a single Splitwise group including all members and balances.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_get_notifications","description":"Get recent Splitwise activity notifications for the current user.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_get_receipt","description":"Download the receipt image or PDF attached to a Splitwise expense. The receipt URLs returned by sw_get_expense need the server's credentials — fetching them directly returns 401 — so use this tool instead. Set inline:true to get the bytes back in the result (images AND PDFs), or extract_text:true to get a PDF's text without the binary at all — both work when the caller can't see this server's file","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_get_user","description":"Get another Splitwise user's profile by id. Same shape as sw_get_current_user: the compact default merges first_name/last_name into name, and view:'full' keeps them separate.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_list_expenses","description":"List or search Splitwise expenses. All filters are optional. Use group_id to filter by group, dated_after/dated_before for date ranges.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_list_friends","description":"List all Splitwise friends. Use this to resolve a friend's name to a user_id before adding them to a group or building a custom expense split. The compact default returns id, name (first_name + last_name joined), email, registration_status and any non-empty balance per friend; pass view:'full' for Splitwise's raw records, which keep first_name and last_name separate.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_list_groups","description":"List all Splitwise groups the current user belongs to. Returns id, name, and members for each group. Use this to resolve a group name to its id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_remove_user_from_group","description":"Remove a user from a Splitwise group. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it removes the user.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sw_undelete_expense","description":"Restore a soft-deleted Splitwise expense.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_undelete_group","description":"Restore a soft-deleted Splitwise group.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sw_update_expense","description":"Edit an existing Splitwise expense. Provide expense_id and any fields to change. For custom split updates, the full users array must be provided (the API replaces the entire split). Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it updates the expense.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sw_update_user","description":"Update the current user's profile fields. id must be the current user's id.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-19T19:21:59.115Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:21:59.076Z","components":{"code":{"score":25,"max":25,"notes":["17 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 2 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"splitwise-mcp","version":"3.0.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":5,"publishedAt":"2026-09-17T23:37:44.859Z","repositoryUrl":"git+https://github.com/chrischall/splitwise-mcp.git","weeklyDownloads":204}],"repo":{"found":true,"owner":"chrischall","repo":"splitwise-mcp","archived":false,"pushedAt":"2026-09-17T23:33:07Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/10564245?v=4","ownerCreatedAt":"2015-01-16T16:58:09Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":1,"forks":0,"downloadsWeek":204,"license":"MIT","lastPushAt":"2026-09-17T23:33:07.000Z","score":29}}}},"grade_history":[{"kind":"downgrade","fromGrade":"A","toGrade":"B","reason":"score 83","createdAt":"2026-09-19T00:28:49.759Z"}],"reviews":[]}