Skip to main content
Glama
chrischall

splitwise-mcp

by chrischall

sw_get_user

Read-only

Look up any Splitwise user's profile by their ID, with name, email, registration status, and balance.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesUser ID
viewNoResponse shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns {id, name, email, registration_status, balance} per person — `name` is first_name + last_name joined, so the separate fields are on "full" only; "full" returns Splitwise's whole record.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.0.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. Changed1 schema field changedv2.4.0
    • addedInput schema / properties / view
      Added value: +{
      +  "description": "Response shape: \"compact\" (default) drops fields the response already carries elsewhere; \"full\" returns every field this server understands. compact returns {id, name, email, registration_status, balance} per person — `name` is first_name + last_name joined, so the separate fields are on \"full\" only; \"full\" returns Splitwise's whole record.",
      +  "enum": [
      +    "compact",
      +    "full"
      +  ],
      +  "type": "string"
      +}
  3. First observedv2.1.5

TDQS

A4.2/5.0
Behavior4/5

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

The readOnlyHint annotation already covers the safety profile, so the bar is lower. The description adds meaningful behavioral context by explaining the default compact response merges first_name/last_name into name while view:'full' keeps them separate. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff: the first states the purpose, the second covers the shape semantics and references the sibling. Both sentences earn their place and the key scoping detail ('another', 'by id') is front-loaded.

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?

Core invocation details (id, view, shape, read-only nature) are well covered by the description and schema even though no output schema exists. Minor gaps like access requirements (e.g., friendship with the target user) or error behavior are not disclosed, but for a simple get-by-id tool this is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already fully documents both 'id' and 'view', including the compact/full field behavior. The description repeats the merge distinction but does not add new parameter-level meaning beyond what the schema provides, so the baseline 3 applies.

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?

Description states a specific verb ('Get'), resource ('another Splitwise user's profile'), and identifier ('by id'), and differentiates itself from sw_get_current_user by targeting another user rather than the current one. The purpose is immediately clear and distinct from the sibling set.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use the tool: to fetch a different user's profile by id, in contrast to sw_get_current_user for the current user. It does not provide explicit when-not or alternative routing, but the 'another' vs 'current' distinction and the sibling mention give adequate context.

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