Gatherings MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Gatherings MCP Servercalculate reimbursements for our weekend trip gathering"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
gatherings MCP Server
A Model Context Protocol server for managing gatherings and expense sharing.
This is a TypeScript-based MCP server that helps track expenses and payments for social events, making it easy to calculate reimbursements and settle balances between friends.
Architecture Note
Important: This project uses a non-standard architecture for a Node.js application. The TypeScript MCP server acts as a wrapper around a Python backend implementation. The Node.js server receives MCP requests, translates them to command-line calls to the Python script, and returns the results.
While this architecture works for our current needs, it's not the most efficient or maintainable approach for a production application.
TODO
Refactor the implementation to use a more standard architecture:
Either fully migrate the backend to TypeScript/JavaScript
Or implement proper inter-process communication between Node.js and Python components
Or replace with a REST API approach where the Python backend provides an API that the MCP server consumes
Improve error handling between the Node.js and Python components
Add automated tests for the integration between components
Optimise Dockerfile
Related MCP server: Expense Tracker MCP
Features
Tools
create_gathering- Create a new gatheringTakes
gathering_idandmembersas required parameters
add_expense- Add an expense for a memberTakes
gathering_id,member_name, andamountas required parameters
calculate_reimbursements- Calculate reimbursements for a gatheringTakes
gathering_idas a required parameter
record_payment- Record a payment made by a memberTakes
gathering_id,member_name, andamountas required parameters
rename_member- Rename an unnamed memberTakes
gathering_id,old_name, andnew_nameas required parameters
show_gathering- Show details of a gatheringTakes
gathering_idas a required parameter
list_gatherings- List all gatheringsclose_gathering- Close a gatheringTakes
gathering_idas a required parameter
delete_gathering- Delete a gatheringTakes
gathering_idas a required parameter, optionalforceparameter
add_member- Add a new member to a gatheringTakes
gathering_idandmember_nameas required parameters
remove_member- Remove a member from a gatheringTakes
gathering_idandmember_nameas required parameters
Development
Install dependencies:
npm installBuild the server:
npm run buildFor development with auto-rebuild:
npm run watchInstallation
Configuration
To use with Claude Desktop, add the server config:
{
"mcpServers": {
"gatherings": {
"command": "node",
"args": ["/path/to/gatherings-server/build/index.js"],
"env": {
"GATHERINGS_DB_PATH": "gatherings.db",
"GATHERINGS_SCRIPT": "/path/to/gatherings-server/gatherings.py"
},
"disabled": false,
"autoApprove": [],
"alwaysAllow": [
"create_gathering",
"add_expense",
"calculate_reimbursements",
"record_payment",
"rename_member",
"show_gathering",
"list_gatherings",
"close_gathering",
"delete_gathering",
"add_member",
"remove_member"
],
"timeout": 300
}
}
}Configuration Options
commandandargs: Specifies how to run the serverenv: Environment variablesGATHERINGS_DB_PATH: Path to the database fileGATHERINGS_SCRIPT: Path to the Python script for handling gathering operations
alwaysAllow: List of tools that will be automatically allowed without promptingtimeout: Maximum execution time in seconds
Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
npm run inspectorThe Inspector will provide a URL to access debugging tools in your browser.
Available Tools
11 toolsadd_expenseC
Add an expense for a member
| Name | Required | Description | Default |
|---|---|---|---|
| gathering_id | Yes | ID of the gathering | |
| member_name | Yes | Name of the member who paid | |
| amount | Yes | Amount paid by the member |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Add an expense') but lacks details on permissions needed, whether it's idempotent, how it affects the system (e.g., updates balances), or error handling. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, clearly stating the core action without unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain return values, error cases, or how it integrates with sibling tools (e.g., impact on 'calculate_reimbursements'), leaving gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (gathering_id, member_name, amount) with descriptions. The description adds no additional meaning beyond what the schema provides, such as context or examples, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Add') and resource ('expense for a member'), making the purpose understandable. It doesn't explicitly distinguish from sibling tools like 'record_payment' or 'calculate_reimbursements', which might handle similar financial transactions, so it misses full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'record_payment' or in what context (e.g., during a gathering, for reimbursement calculations). The description implies usage for adding expenses but offers no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_memberC
Add a new member to a gathering
| Name | Required | Description | Default |
|---|---|---|---|
| gathering_id | Yes | ID of the gathering | |
| member_name | Yes | Name of the member to add |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't mention permissions needed, whether the addition is reversible, error conditions (e.g., duplicate names), or effects on the gathering, which are critical for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste, front-loading the core action. It's appropriately sized for the tool's simplicity, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., success/failure responses, side effects) and doesn't compensate for the missing structured data, leaving gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no meaning beyond the schema, such as format examples or constraints, but meets the baseline since the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and target ('a new member to a gathering'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'rename_member' or 'remove_member' beyond the basic verb, missing specific distinctions about scope or effect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'rename_member' or 'remove_member'. The description lacks context about prerequisites (e.g., if the gathering must be open) or exclusions, leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_reimbursementsC
Calculate reimbursements for a gathering
| Name | Required | Description | Default |
|---|---|---|---|
| gathering_id | Yes | ID of the gathering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool calculates reimbursements, implying a read-only or computational operation, but does not specify if it requires specific permissions, whether it modifies data, what the output format is, or any rate limits. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Calculate reimbursements for a gathering'. It is front-loaded with the core action and resource, with no unnecessary words or redundancy. Every part of the sentence earns its place by conveying the essential purpose without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (involving financial calculations) and the lack of annotations and output schema, the description is incomplete. It does not explain what the calculation is based on (e.g., expenses, payments), what the output looks like, or any behavioral traits. For a tool with no structured data to supplement it, the description should provide more context to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'gathering_id' documented as 'ID of the gathering'. The description does not add any meaning beyond this, such as explaining what a gathering entails or how the ID is used. With high schema coverage, the baseline score is 3, as the schema handles the parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Calculate reimbursements for a gathering' states a clear verb ('calculate') and resource ('reimbursements'), but it lacks specificity about what the calculation entails (e.g., based on expenses, payments, or member contributions) and does not distinguish it from sibling tools like 'record_payment' or 'close_gathering', which might involve financial operations. It avoids tautology by not restating the tool name, but remains vague on the exact purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., whether expenses or payments must be recorded first), exclusions, or comparisons to sibling tools like 'record_payment' or 'close_gathering', leaving the agent to infer usage from context alone. This lack of explicit when/when-not instructions limits its utility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_gatheringC
Close a gathering
| Name | Required | Description | Default |
|---|---|---|---|
| gathering_id | Yes | ID of the gathering to close |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('close') but doesn't explain what 'close' entails (e.g., is it reversible, does it affect related data like expenses or members, are there permission requirements, or what the response looks like). This is a significant gap for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence ('Close a gathering') with zero waste. It's appropriately sized for a simple tool and front-loaded with the core action, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool (closing a gathering) with no annotations and no output schema, the description is incomplete. It doesn't explain the behavior, consequences, or return values, leaving critical gaps for an agent to use the tool correctly in context with siblings like 'delete_gathering'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents the 'gathering_id' parameter. The description doesn't add any parameter details beyond the schema, but with only one parameter and high coverage, the baseline is 3. It earns a 4 because the description is concise and doesn't create confusion, though it doesn't compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Close a gathering' states a clear verb ('close') and resource ('gathering'), but it's vague about what 'close' means operationally (e.g., finalizing, ending, archiving) and doesn't differentiate from siblings like 'delete_gathering' or 'show_gathering'. It avoids tautology by not restating the name/title, but lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'delete_gathering' or 'show_gathering'. The description implies usage for closing gatherings but doesn't specify contexts, prerequisites, or exclusions, leaving the agent to infer based on sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_gatheringC
Create a new gathering
| Name | Required | Description | Default |
|---|---|---|---|
| gathering_id | Yes | Unique ID for the gathering (format: yyyy-mm-dd-type) | |
| members | Yes | Number of members in the gathering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool creates something but doesn't explain what happens upon creation (e.g., whether it's mutable, requires permissions, has side effects like notifications, or returns specific data). For a creation tool with zero annotation coverage, this leaves critical behavioral traits unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence ('Create a new gathering'), which is front-loaded and wastes no words. While it may be under-informative, it earns full marks for brevity and clarity within its limited scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a creation tool with no annotations, no output schema, and 2 required parameters, the description is incomplete. It doesn't address what the tool returns, error conditions, or behavioral nuances, leaving significant gaps for an AI agent to understand how to use it effectively in context with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('gathering_id' and 'members') with their types and descriptions. The description adds no additional meaning beyond what the schema provides, such as explaining the purpose of these parameters or their constraints. Baseline 3 is appropriate when the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the basic action ('Create a new gathering') which is clear but vague. It doesn't specify what a 'gathering' represents in this context or differentiate it from sibling tools like 'add_member' or 'list_gatherings'. The purpose is understandable but lacks specificity about the resource being created.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether a gathering must be initialized first), exclusions, or relationships with sibling tools like 'add_member' or 'close_gathering'. The description offers no context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_gatheringC
Delete a gathering
| Name | Required | Description | Default |
|---|---|---|---|
| gathering_id | Yes | ID of the gathering to delete | |
| force | No | Force deletion even if gathering is closed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Delete a gathering', implying a destructive mutation, but doesn't mention permissions needed, whether deletion is permanent, error conditions, or side effects. This is a significant gap for a tool that likely removes data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence ('Delete a gathering'), which is front-loaded and wastes no words. It efficiently communicates the core action without unnecessary elaboration, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a deletion tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like permanence, authorization, or error handling, which are critical for safe tool invocation. This leaves gaps that could lead to misuse by an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents both parameters ('gathering_id' and 'force'). The description adds no additional meaning beyond what's in the schema, such as explaining when to use 'force' or the implications of deletion. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Delete') and resource ('a gathering'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'close_gathering' or 'remove_member', which might have overlapping or related functionality, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't clarify if deletion is irreversible compared to 'close_gathering', or if it should be used after certain conditions. This lack of context leaves the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gatheringsC
List all gatherings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List all gatherings' implies a read-only operation, but it doesn't specify aspects like pagination, sorting, filtering, or error handling. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with 'List all gatherings', a single phrase that front-loads the core action. There is no wasted language, making it efficient and easy to parse, though this conciseness comes at the cost of detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'gatherings' are, the return format, or behavioral traits. For a tool in a set with siblings like 'show_gathering', more context is needed to distinguish usage and understand output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, meaning there are no parameters to document. The description doesn't need to add parameter semantics, so it meets the baseline of 4 for tools with no parameters, as it doesn't mislead or omit necessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all gatherings' clearly states the verb ('List') and resource ('gatherings'), providing basic purpose. However, it lacks specificity about what 'gatherings' are in this context and doesn't differentiate from sibling tools like 'show_gathering' or 'create_gathering', making it somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, such as whether it's for viewing all gatherings versus specific ones (e.g., 'show_gathering' for details). This leaves the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_paymentC
Record a payment made by a member
| Name | Required | Description | Default |
|---|---|---|---|
| gathering_id | Yes | ID of the gathering | |
| member_name | Yes | Name of the member making the payment | |
| amount | Yes | Amount paid (negative for reimbursements) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool records a payment, implying a write operation, but fails to detail critical aspects like whether this is idempotent, requires specific permissions, affects gathering status, or has side effects (e.g., updating balances). For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly. This exemplifies optimal conciseness for a simple tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity as a mutation operation with no annotations and no output schema, the description is incomplete. It does not explain what happens after recording (e.g., confirmation, error handling, or impact on other tools like 'calculate_reimbursements'). For a tool that modifies data, more context is needed to ensure safe and correct usage by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear parameter definitions (e.g., 'amount' includes note on negative values for reimbursements). The description adds no additional parameter semantics beyond what the schema provides, such as examples or constraints. Given the high schema coverage, the baseline score of 3 is appropriate, as the schema adequately documents parameters without extra help from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Record a payment') and the resource ('made by a member'), making the purpose specific and understandable. However, it does not differentiate this tool from potential siblings like 'add_expense' or 'calculate_reimbursements', which might involve similar financial operations, leaving room for ambiguity in tool selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as whether a gathering must exist or be open, or specify scenarios like recording payments versus expenses. This lack of context could lead to incorrect tool invocation in a workflow with multiple financial tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_memberC
Remove a member from a gathering
| Name | Required | Description | Default |
|---|---|---|---|
| gathering_id | Yes | ID of the gathering | |
| member_name | Yes | Name of the member to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action ('Remove') but lacks critical behavioral details: whether this is reversible, if it requires specific permissions, what happens to associated data (e.g., expenses), or error conditions. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a mutation tool removing members), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like side effects, permissions, or return values, which are crucial for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters ('gathering_id' and 'member_name') clearly documented in the schema. The description adds no additional meaning beyond implying these parameters are needed, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and target ('a member from a gathering'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'rename_member' or 'delete_gathering', which also involve member or gathering modifications, so it lacks sibling differentiation for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., member must exist), exclusions, or compare to siblings like 'rename_member' or 'delete_gathering', leaving the agent without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_memberC
Rename an unnamed member
| Name | Required | Description | Default |
|---|---|---|---|
| gathering_id | Yes | ID of the gathering | |
| old_name | Yes | Current name of the member | |
| new_name | Yes | New name for the member |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action is a rename operation, implying mutation, but doesn't cover permissions needed, whether changes are reversible, error conditions, or what happens on success. This is a significant gap for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations, no output schema, and 3 parameters, the description is incomplete. It doesn't explain behavioral aspects like side effects, return values, or error handling, leaving significant gaps for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (gathering_id, old_name, new_name). The description adds no additional meaning beyond what the schema provides, such as clarifying what 'unnamed member' means in relation to these parameters. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Rename an unnamed member' states the action (rename) and target (unnamed member), but is vague about what constitutes an 'unnamed member' and doesn't differentiate from sibling tools like 'add_member' or 'remove_member'. It provides basic purpose but lacks specificity about the resource context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the member must exist and be unnamed), exclusions, or relationships to sibling tools like 'add_member' or 'remove_member'. Usage context is implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_gatheringC
Show details of a gathering
| Name | Required | Description | Default |
|---|---|---|---|
| gathering_id | Yes | ID of the gathering to display |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it 'shows details' without disclosing behavioral traits. It doesn't mention if this is a read-only operation, what permissions are needed, how errors are handled, or the format/scope of returned details, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. However, it's front-loaded but lacks depth, making it concise but potentially under-specified for a tool with no annotations or output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a read operation with no annotations, no output schema, and 1 parameter), the description is incomplete. It doesn't explain what details are shown, the return format, or error conditions, making it inadequate for an agent to use this tool effectively without guesswork.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'gathering_id' fully documented in the schema. The description adds no additional meaning beyond the schema, such as examples or context for the ID, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show details of a gathering' clearly states the verb ('show') and resource ('gathering'), but it's vague about what specific details are shown. It doesn't distinguish this tool from siblings like 'list_gatherings' or 'create_gathering' beyond the basic action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a gathering_id), exclusions, or comparisons to siblings like 'list_gatherings' for overviews or 'create_gathering' for setup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
- First observed
add_expense - First observed
add_member - First observed
calculate_reimbursements - First observed
close_gathering - First observed
create_gathering - First observed
delete_gathering - First observed
list_gatherings - First observed
record_payment - First observed
remove_member - First observed
rename_member - First observed
show_gathering
TDQS
Each tool has a clearly distinct purpose with no overlap: add_expense, add_member, calculate_reimbursements, close_gathering, create_gathering, delete_gathering, list_gatherings, record_payment, remove_member, rename_member, and show_gathering all target specific actions on distinct resources (expenses, members, gatherings, payments). An agent can easily differentiate them without confusion.
All tool names follow a consistent verb_noun pattern using snake_case, such as add_expense, create_gathering, list_gatherings, and show_gathering. There are no deviations in style or convention, making the set predictable and readable.
With 11 tools, the count is well-scoped for managing gatherings, expenses, members, and payments. Each tool serves a clear purpose (e.g., CRUD operations for gatherings and members, financial actions like expenses and reimbursements), and none feel redundant or unnecessary for the domain.
The tool set provides strong coverage for core gathering management workflows, including creation, listing, showing, closing, and deletion of gatherings, as well as member and expense handling. Minor gaps exist, such as no tools for updating gathering details or expenses directly, but agents can work around these by using combinations like rename_member or recreating items.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Split shared expenses in a group — no account needed. See who owes whom and settle up.
Track and split shared expenses across trips, events, and groups. Create groups, add expenses, and…
Model Context Protocol server for Studex tools, notifications, and profile integrations
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that helps AI assistants manage expense-sharing for social events, enabling the creation of gatherings, tracking of expenses, and calculation of fair reimbursements among participants.Apache 2.0
- FlicenseBqualityDmaintenanceA Model Context Protocol server designed for tracking and managing personal or business expenses. It enables users to log financial transactions and organize expenditure data through integrated tools.4-
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI assistants to manage Splitwise expenses using natural language, with support for voice commands, smart name matching, and advanced split configurations.74MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol (MCP) server for managing shared expenses between groups, with tools for group management, expense tracking, and debt simplification.14MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/abutbul/gatherings-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server