A2Me 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., "@A2Me MCP ServerWhen is grandma's birthday?"
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.
A2Me MCP Server
v1 · read-only. A Model Context Protocol server that exposes read-only, privacy-redacted family-context tools for the A2Me family social platform — so assistants like Claude, ChatGPT, or KAI can answer "when is mom's birthday?" or help write a message to grandma, scoped to your own family.
Hosted at https://mcp.a2me.app/mcp and used in production for A2Me's Connect a2me feature.
Connect from an AI assistant
In Claude or ChatGPT, add a custom connector using the URL:
https://mcp.a2me.app/mcpYou'll be sent through OAuth to sign in to A2Me and grant read-only access; the assistant then has family-aware context scoped to your account.
Related MCP server: zkshare-mcp
Run it locally
npm install
npm run dev # stdio transport, mock data by defaultIt runs on stdio by default (for local MCP clients) and supports a remote HTTP transport (MCP_TRANSPORT=http) for the hosted deployment. By default it uses mock data (A2ME_USE_MOCK=true); set A2ME_API_URL + A2ME_USE_MOCK=false to call a real API. See .env.example.
Available Tools
Tool | Description |
| Returns the user's family members with relationship labels |
| Birthdays, anniversaries, and events in the next N days |
| Recent posts, photos, videos, birthday cards |
| A family member's profile, interests, and activity summary |
| How two family members are related |
| Context for writing a birthday card (memories, interests, tone) |
| Fuzzy search by name or relationship ("mom", "my grandmother") |
| Natural language date questions ("When is mom's birthday?") |
| Context for writing a message with suggestions |
| Upcoming events with the user's RSVP status and RSVP counts |
| A trip's dates, roster, travel details (flights/lodging), itinerary |
| A family member's life story chapters (or recent story answers) |
| Unanswered story questions — interview prep for a visit |
| A family member's wishlist for gift ideas |
| Keyword search over recent family posts and memories |
| Catch-up bundle: recent posts + what's coming up |
Prompts
The server also exposes prompts — one-click starting points that appear as connector commands in Claude (and suggestions in ChatGPT), so users get value without knowing tool names. Each steers the assistant to the read-only tools above:
Prompt | What it does |
| Draft a birthday card grounded in a person's context |
| Draft a message for any occasion/tone |
| Summarize what's new with the family |
| List upcoming birthdays/anniversaries with suggestions |
| Warm summary of a family member and how you're related |
The person argument on these prompts autocompletes from your family roster
(names + relationship labels) as you type — MCP argument completion, scoped to your
family. See src/prompts/index.ts and
src/completions.ts.
Example Scenarios
"Help me write a birthday card for my sister"
find_family_member→ resolves "my sister" to Sarah Walkerget_birthday_card_context→ returns interests (painting, hiking, coffee), tone suggestions
"When is grandma's birthday?"
answer_family_date_question→ returns Margaret Walker's birthday (November 8)
"What's been happening in the family?"
get_recent_family_activity→ returns recent posts, photos, events
"Help me write a thank you message to my dad"
get_message_context_for_person→ returns Robert Walker's context, interests, suggestions
"Who's in my family?"
get_family_members→ returns all family members with relationships
"What events are coming up?"
get_upcoming_family_dates→ returns upcoming birthdays, anniversaries, events
Architecture
┌─────────────────────────────────────────────────────────┐
│ MCP Client (LLM) │
│ (Claude, ChatGPT, KAI, etc.) │
└───────────────────────┬─────────────────────────────────┘
│ stdio (MCP Protocol)
┌───────────────────────▼─────────────────────────────────┐
│ A2Me MCP Server │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Tool Registry (16 tools) │ │
│ └──────────────────────┬──────────────────────────┘ │
│ │ │
│ ┌──────────────────────▼──────────────────────────┐ │
│ │ Family Context Resolver │ │
│ │ (fuzzy matching, relationship resolution) │ │
│ └──────────────────────┬──────────────────────────┘ │
│ │ │
│ ┌──────────────────────▼──────────────────────────┐ │
│ │ A2Me API Client │ │
│ │ (currently mock, future: real HTTP calls) │ │
│ └──────────────────────┬──────────────────────────┘ │
│ │ │
│ ┌──────────────────────▼──────────────────────────┐ │
│ │ Auth Context │ │
│ │ (currently mock, future: OAuth/Firebase) │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
│ (future)
┌───────────────────────▼─────────────────────────────────┐
│ A2Me REST API │
│ (kinnectd-api service) │
└─────────────────────────────────────────────────────────┘Authentication
Currently uses mock authentication — always returns an authenticated user ("Alex Walker") for local development.
Future production integration:
OAuth2/Firebase token validation via A2Me API
Token passed via MCP session context or environment
Per-user data isolation (users only see their own family)
Required A2Me API Endpoints (Future)
Method | Endpoint | Description |
GET |
| List user's family members |
GET |
| Upcoming dates with filters |
GET |
| Recent family activity feed |
GET |
| Person profile with safe context |
GET |
| Relationship path between two people |
GET |
| Birthday card writing context |
ChatGPT app widgets
For ChatGPT (Apps SDK), four tools render an interactive inline widget instead of plain JSON:
get_upcoming_family_dates→ an Upcoming family dates cardget_family_members→ a Your family rosterget_person_profile→ a Family member profile cardget_recent_family_activity→ a Recent family activity feed
Each widget is a small React bundle in widgets/src/ built by
npm run build:widgets into dist-widgets/<name>.js|.css. The server serves those as
static assets (/widgets/...) and exposes each as a ui://widget/<name>.html
resource (MIME text/html+skybridge); the paired tool carries
_meta["openai/outputTemplate"] pointing at it. The widget reads the tool's
structuredContent from window.openai.toolOutput and renders it. Other MCP clients
(Claude, KAI) ignore the widgets and use the same tools' text output. See
src/widgets/registry.ts.
Development
npm run dev # Run the server with tsx (hot reload)
npm run build # Compile server (tsc) + build widget bundles
npm run build:server # Server only
npm run build:widgets # Widget bundles only (-> dist-widgets/)
npm run test # Run tests (incl. widget render tests)
npm run test:watch # Watch mode
npm run lint # ESLint
npm run format # Prettier
npm run check # Type check onlyPrivacy Design
This server is designed to be privacy-first:
No email addresses, phone numbers, or physical addresses are ever returned
Birthdays are shown as month-day only (no birth year)
No financial or health information
All data scoped to the authenticated user's family only
Managed accounts (children) have additional protections
Privacy Policy
Privacy policy: https://a2me.app/privacy
This connector accesses A2Me data on behalf of the authenticated user, over an OAuth 2.0 "Connect A2Me" flow, and is bound by the A2Me privacy policy above.
What we collect / access: read-only family-context data for the authenticated user's own family — member names, relationship labels, month–day of birthdays and events, and recent activity summaries. We never return email addresses, phone numbers, physical addresses, birth years, or financial/health data.
How it's used: returned to the connected AI assistant solely to answer the user's request in-session. The connector does not train models on this data and performs no writes back to A2Me.
Storage & retention: the connector holds no family data at rest. For transparency and abuse prevention we log access metadata (timestamp, tool name, calling assistant, scopes) in an append-only audit log; users can review this under Settings → Connected apps in A2Me.
Third-party sharing: OAuth tokens are issued and validated via our auth provider (Scalekit); no family data is shared with third parties beyond the AI assistant the user explicitly connected.
Contact: privacy@a2me.app · security disclosures per SECURITY.md.
Tech Stack
Runtime: Node.js 20+
Language: TypeScript (strict mode)
MCP SDK:
@modelcontextprotocol/sdkValidation: Zod
Testing: Vitest
Transport: Streamable HTTP (remote/production) and stdio (local dev)
License
Private — Kinnectd / A2Me
Available Tools
16 toolsanswer_family_date_questionAnswer family date questionARead-onlyIdempotentInspect
Answers natural language questions about family dates like "When is mom's birthday?"
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | Natural language question about family dates |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety attributes. The description adds no additional behavioral details (e.g., return format, limitations, knowledge source), but given the annotation coverage, a score of 3 is appropriate.
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 two sentences, includes a relevant example, and contains no filler. Every word contributes to clarifying the tool's purpose.
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?
The tool has one simple parameter and no output schema. The description combined with the schema and annotations is sufficient for an agent to understand the tool's scope. It does not explicitly describe return values, but the tool name and purpose make this obvious.
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% and the single parameter 'question' is described as 'Natural language question about family dates'. The description repeats this concept and adds an example, but does not add significant meaning beyond the schema. Baseline 3 is appropriate.
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 tool's function: answering natural language questions about family dates, with a concrete example ('When is mom's birthday?'). This distinguishes it from sibling tools that retrieve specific data (e.g., get_upcoming_family_dates) rather than interpret arbitrary questions.
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 implies usage for natural language date questions and provides a clear example. It does not explicitly list exclusions or compare to alternatives, but the context is sufficiently clear for an agent to know when to invoke this tool versus sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_family_memberFind family memberARead-onlyIdempotentInspect
Searches for a family member by name or relationship. Supports "my grandmother", "mom", "Sarah".
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Name, relationship, or natural reference (e.g., "Sarah", "my grandmother") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds the behavioral trait that it accepts natural language references, which is useful, but it doesn't disclose return behavior or edge-case handling. With annotations covering safety, the moderate score reflects incomplete behavioral context.
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 two sentences long, front-loads the action ('Searches for...'), and includes concrete examples. Every sentence contributes meaning without redundancy or fluff.
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 simple one-parameter search tool with strong annotations, the description covers core functionality and expected inputs. However, since there is no output schema, it would be more complete to mention what the tool returns (e.g., a person object) or any limitations. Still, the current description is largely sufficient for this simple case.
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 coverage is 100%, and the query property description already includes the same examples ('Sarah', 'my grandmother') as the tool description. The description adds no new parameter semantics beyond what the schema provides, so it meets the baseline but doesn't go further.
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 tool 'searches for a family member' using a specific verb and resource, and specifies the query types ('by name or relationship'). This differentiates it from siblings like get_family_members, which likely lists all members, and get_person_profile, which fetches a known person's details.
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 implies when to use the tool by showing example queries ('my grandmother', 'mom', 'Sarah'), but it doesn't explicitly contrast with alternative tools or state when not to use it. The context is clear enough for an agent to infer the primary use case, but exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_birthday_card_contextGet birthday card contextARead-onlyIdempotentInspect
Returns context for writing a birthday card — recipient's interests, memories, and tone suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
| personId | Yes | Person ID of the birthday card recipient |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, covering safety. The description adds what content is returned (interests, memories, tone suggestions) but does not disclose behaviors like empty results or data source. This is adequate but not rich.
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, concise sentence that conveys the core purpose without any redundant or unnecessary wording. It is well-structured and front-loaded with the main action.
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 simple read-only tool with one parameter and no output schema, the description is largely complete. It explains the purpose and the nature of the returned context. It could mention edge cases like missing person data, but overall it is sufficient.
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 fully describes the only parameter (personId) with a meaningful description, so schema coverage is 100%. The description does not add any additional parameter context beyond the schema, so baseline 3 applies.
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 tool returns context for writing a birthday card, listing specific content types (interests, memories, tone suggestions). This distinguishes it from sibling tools like get_message_context_for_person by being birthday-specific.
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 implicitly conveys use when writing a birthday card, giving clear context. However, it does not explicitly compare with alternatives or state when not to use it, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_family_membersGet family membersARead-onlyIdempotentInspect
Returns the authenticated user's family members with relationship labels. Privacy-safe: no emails, phones, or full DOBs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful behavioral context by explicitly stating 'Privacy-safe: no emails, phones, or full DOBs,' which is beyond the annotations and clarifies the data exposure. This is valuable for the agent's decision-making, though it doesn't disclose other traits like pagination or ordering.
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 two brief sentences: the first states the core function, the second adds a meaningful privacy clarification. There is no fluff or redundancy. Every sentence earns its place, making it highly concise and well-structured.
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 simplicity (zero parameters, no output schema), the description adequately explains the return value as 'family members with relationship labels.' It also adds privacy context. It does not explicitly describe the return structure (e.g., array vs. object) or any limits, but for a simple read-only list operation, the information is sufficient to understand what to expect.
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 tool has zero parameters, so the description carries no burden for explaining parameter syntax or meaning. The schema is trivially complete (100% coverage) with no properties. The baseline for zero parameters is 4, and the description provides no conflicting or redundant info, so this score is appropriate.
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 a specific verb ('Returns') and a specific resource ('the authenticated user's family members') with a notable detail (relationship labels). It effectively distinguishes itself from sibling tools like find_family_member (which searches for a specific member) or get_person_profile (which returns details of a single person) by describing a list of all family members.
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 implies usage: use this tool to retrieve the user's family members. It provides the context of 'authenticated user' but does not explicitly state when to use this over alternatives (e.g., find_family_member for searching, get_person_profile for a single person). No exclusions or explicit alternative guidance is provided, leaving usage to be inferred rather than clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_life_storyGet life storyARead-onlyIdempotentInspect
The written life story (biography chapters) of a family member, built from family memories. Use for 'tell me about grandma's childhood', writing toasts/speeches/eulogies, or family history questions.
| Name | Required | Description | Default |
|---|---|---|---|
| personName | Yes | Family member name or relationship (fuzzy), or "me" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description doesn't need to restate these. It adds context that the story is 'built from family memories', which is somewhat useful, but it does not disclose additional behavioral traits like return format or potential incompleteness. The description does not contradict annotations.
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 two sentences, front-loaded with the core function, and follows with concise use-case examples. Every sentence earns its place with no redundant or vague wording.
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 simple single-parameter schema and rich annotations, the description is nearly complete. It explains what the tool returns and when to use it. It could arguably mention the format (e.g., 'returns text') but the term 'written life story' strongly implies narrative text, and no output schema exists to clarify further.
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 covers the only parameter (personName) completely with clear semantics. The description does not add any extra meaning about the parameter beyond what the schema provides, so a baseline score of 3 is appropriate.
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 it returns the written life story (biography chapters) of a family member, built from family memories. It distinguishes this from sibling tools like get_person_profile and search_family_memories by emphasizing narrative biography and specific use cases.
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 explicit use cases ('tell me about grandma's childhood', writing toasts/speeches/eulogies, family history questions), giving clear context on when to invoke this tool. However, it does not mention when not to use or name alternative tools, so it lacks the when-not/alternatives aspect for a top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_message_context_for_personGet message context for personARead-onlyIdempotentInspect
Returns context for writing a message to a family member with suggestions and privacy notes.
| Name | Required | Description | Default |
|---|---|---|---|
| tone | No | Desired tone (e.g., "warm", "funny", "formal") | |
| occasion | No | Occasion (e.g., "birthday", "thank you") | |
| personReference | Yes | Who the message is for (name or relationship) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds output content (suggestions and privacy notes) but does not disclose further behavioral traits like data freshness, pagination, or filtering. This is adequate but not rich.
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?
A single, front-loaded sentence with no redundant information. It efficiently communicates the tool's purpose and output.
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?
The tool is simple with 3 parameters and no output schema. The description adequately conveys the high-level return ('suggestions and privacy notes'), and the schema covers inputs. It could benefit from a bit more detail on what 'context' includes, but it is complete enough for this moderate complexity.
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%, and all three parameters (personReference, tone, occasion) are well-described in the schema. The description adds no additional parameter-specific meaning, so the baseline of 3 applies.
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 uses a specific verb ('Returns') and resource ('context for writing a message to a family member'), clearly distinguishing this from sibling tools like get_person_profile or get_birthday_card_context by mentioning 'suggestions and privacy notes'. It states exactly what the tool provides and for whom.
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 clearly implies when to use: when writing a message to a family member. However, it does not explicitly mention alternatives or exclusion criteria, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_person_profileGet person profileARead-onlyIdempotentInspect
Returns a family member's profile with interests and recent activity. No private contact info.
| Name | Required | Description | Default |
|---|---|---|---|
| personId | Yes | The person ID to look up |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds the behavioral constraint 'No private contact info,' which clarifies what will be excluded from the response. This adds value beyond the annotations, though it doesn't cover error cases or rate limits.
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?
Two short sentences, completely waste-free. The core purpose is front-loaded, and the privacy note is a useful qualifier that adds context without redundancy.
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 single-parameter read-only tool with no output schema, the description adequately conveys the return content (profile, interests, recent activity) and a key exclusion (private contact info). It could elaborate on the exact return structure, but given the simplicity, it is sufficient.
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 provides full coverage for personId with a clear description. The tool description does not add any additional parameter semantics, so the baseline 3 applies per the rubric.
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 it returns a family member's profile with interests and recent activity. The verb 'Returns' is specific, and the resource is well-defined, distinguishing it from sibling tools like get_family_members and get_recent_family_activity.
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 explicit when-to-use or alternative references are provided, but the description implies usage for retrieving a specific family member's profile and recent activity. It does not explain when to prefer this over get_family_members or get_recent_family_activity, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_person_wishlistGet person wishlistARead-onlyIdempotentInspect
A family member's wishlist — for gift ideas and birthday/holiday planning.
| Name | Required | Description | Default |
|---|---|---|---|
| personName | Yes | Family member name or relationship (fuzzy) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering safety and mutability. The description adds no additional behavioral details, such as return format or edge cases. Since annotations carry the burden, a baseline of 3 is appropriate; no contradiction exists.
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, concise sentence that immediately communicates the tool's purpose and context. Every word contributes value—no fluff or redundancy. This is an appropriately sized description for a simple tool.
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 simple one-parameter getter with robust annotations, the description is largely complete. It communicates the resource (wishlist) and the use case (gift planning). While it does not describe the return structure, the concept of a 'wishlist' is self-explanatory, and the annotations cover behavioral guarantees.
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 provides 100% coverage for the single parameter 'personName' with a description of 'Family member name or relationship (fuzzy)'. The tool description adds no extra parameter semantics beyond what the schema already specifies, so 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 identifies the tool as returning a family member's wishlist and explicitly states its intended use for gift ideas and birthday/holiday planning. This distinguishes it from sibling tools, none of which mention wishlists. However, the description uses a noun phrase rather than an explicit verb, relying on the title 'Get' to convey the 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 a clear usage context: 'for gift ideas and birthday/holiday planning.' This tells the agent when to invoke the tool. It does not explicitly mention when not to use it or alternative tools, but the context is sufficiently specific to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_family_activityGet recent family activityBRead-onlyIdempotentInspect
Returns recent family activity (posts, photos, videos, birthday cards, events).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default: 20) | |
| sinceHours | No | Hours to look back (default: 72) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds the content scope (posts, photos, etc.) but does not disclose behavioral details such as ordering, time-window defaults, or whether results are paginated. The added value over annotations is modest, so a 3 is appropriate.
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, clear, front-loaded sentence with no redundant words. It efficiently states the tool's output without rambling, earning a top score for conciseness.
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 simple read-only tool with rich annotations and complete schema, the description is adequate but not fully complete. It lacks differentiation from many sibling tools and does not mention return format or pagination. Given the absence of an output schema, a bit more context would improve completeness, but the description is minimally viable.
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% for the two parameters (limit and sinceHours), so the structured schema carries full semantic weight. The description adds no parameter-specific meaning, which is acceptable given the high schema coverage, yielding the baseline score of 3.
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 (returns) and resource (recent family activity) with specific content types (posts, photos, videos, birthday cards, events). It is specific enough to convey the tool's purpose, though it does not explicitly differentiate from sibling tools like 'whats_new' or 'get_upcoming_events'.
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. Given siblings like get_upcoming_events and whats_new, the description lacks any contextual cues or exclusions to help an agent choose this tool over similar ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_relationship_between_peopleGet relationship between peopleARead-onlyIdempotentInspect
Returns the relationship between two family members in the family graph.
| Name | Required | Description | Default |
|---|---|---|---|
| personAId | Yes | First person ID | |
| personBId | Yes | Second person ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering safety and idempotency. The description adds contextual detail ('family graph') but does not disclose additional behavioral traits such as return format, error handling, or edge cases. This is adequate but adds limited value beyond annotations.
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, concise sentence that is front-loaded and directly states the tool's purpose. Every word earns its place with zero 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?
The tool is simple with two parameters, annotations are comprehensive, and the description clearly explains the return value ('relationship between two family members'). No output schema exists, but the nature of the response is easily inferred, making the description complete for this context.
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% (personAId and personBId both have descriptions). The description does not add any parameter-specific meaning beyond what the schema provides, so the baseline of 3 applies.
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 tool's function: 'Returns the relationship between two family members in the family graph.' The verb 'Returns' and resource 'relationship between two family members' are specific, and the scope is distinguished from sibling tools like get_person_profile or get_family_members.
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, nor does it mention any prerequisites, exclusions, or scenarios. It is simply a purpose statement, leaving the agent to infer usage from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trip_overviewGet trip overviewARead-onlyIdempotentInspect
Everything about a family trip in one view: dates, destination, who's coming (with RSVP and pending invites), each person's travel details (flights and lodging — e.g. 'when does Marcia land'), and the itinerary of linked events.
| Name | Required | Description | Default |
|---|---|---|---|
| tripName | No | Trip name (fuzzy). Omit to use the only upcoming trip. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds meaningful context about the response contents (RSVP status, pending invites, flight/lodging details, linked event itinerary) and provides a concrete example ('when does Marcia land'). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a clear opening summary followed by a colon and a list of included data types. Every element adds value and there is no redundancy or filler.
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?
Despite lacking an output schema, the description thoroughly conveys what the returned data will include, even offering an example question ('when does Marcia land') to clarify the type of detail available. This is sufficient for an agent to set expectations for a composite overview response.
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 coverage is 100% with tripName described as 'fuzzy' and optional, with fallback to the only upcoming trip. The tool description itself does not elaborate on parameters, but the schema's description is sufficient, so the baseline 3 is appropriate.
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 tool provides 'Everything about a family trip in one view' and enumerates specific contents (dates, destination, attendees, travel details, itinerary), distinguishing it from sibling getters that focus on individual family members or events.
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 phrase 'in one view' implies using this tool when a holistic overview is needed rather than calling multiple specific getters. However, no explicit alternatives or when-not-to-use guidance is provided, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_unanswered_story_questionsGet unanswered story questionsARead-onlyIdempotentInspect
Story questions about a family member that nobody has answered yet — perfect for 'what should I ask Grandpa when I visit' interview prep.
| Name | Required | Description | Default |
|---|---|---|---|
| personName | Yes | Family member name or relationship (fuzzy), or "me" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint, openWorldHint, idempotentHint, and destructiveHint present, the description does not need to restate safety. It does add a behavioral filter: only unanswered questions are returned, and it frames results as interview prompts. However, this largely restates the tool name and does not disclose additional behavior like result ordering or what happens when no questions are available.
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 one concise sentence that front-loads the primary action and scope, then adds a memorable use case. There is no filler or repetition of schema field names.
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 simple read-only tool with one documented parameter and helpful annotations, the description covers what the tool returns and why someone would use it. No output schema exists, but the return concept is clear enough for an agent to select and invoke the tool.
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 already documents personName with 100% coverage (family member name/relationship, fuzzy, or 'me'). The description does not add parameter-specific details, which is acceptable given the schema coverage; baseline 3 applies.
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 uses a specific verb+resource ('Story questions about a family member that nobody has answered yet') and immediately clarifies the exact scope. It distinguishes itself from sibling getters like get_life_story or get_recent_family_activity by focusing on unanswered story questions for interview prep.
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 phrase 'perfect for "what should I ask Grandpa when I visit" interview prep' provides a clear use context. It does not explicitly name alternatives or say when not to use it, but the intended scenario is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upcoming_eventsGet upcoming eventsARead-onlyIdempotentInspect
Upcoming events the user is invited to or hosting, with dates and their RSVP status. Use for questions like 'what's coming up' or 'when is the reunion'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max events to return (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is read-only and non-destructive. The description adds useful context: results include dates and RSVP status, and the scope is limited to events the user is invited to or hosting. This goes beyond the annotations without contradicting them.
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 two sentences long, front-loaded with the tool's function and output, followed by usage examples. Every word adds value with no redundancy.
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 simple list tool with one optional parameter, comprehensive annotations, and no output schema, the description fully covers what an agent needs: purpose, scope, and example queries. It even implies the response shape (dates and RSVP status), making it complete.
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 only parameter, limit, is fully described in the schema with type, range, and default value. The tool description does not add additional parameter detail, so it relies on the schema. Since schema coverage is 100%, a baseline score of 3 is appropriate.
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 tool returns upcoming events the user is invited to or hosting, including dates and RSVP status. It provides concrete example queries, which makes the purpose unambiguous and distinguishes it from sibling tools like get_upcoming_family_dates.
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 gives explicit usage examples ('what's coming up', 'when is the reunion'), making it clear when to use the tool. It does not mention when not to use it or alternative tools, but the examples are sufficient for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upcoming_family_datesGet upcoming family datesARead-onlyIdempotentInspect
Returns upcoming birthdays, anniversaries, and family events. Dates shown as month-day only.
| Name | Required | Description | Default |
|---|---|---|---|
| daysAhead | No | Days to look ahead (default: 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the behavioral detail that dates are shown as month-day only, which is useful, though not extensive.
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?
Two short, focused sentences. The first states the core function and the second adds a relevant formatting detail. No filler or redundancy.
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 simple read-only tool with one optional parameter, the description is sufficient. It explains what is returned and the date format. The absence of an output schema is mitigated by the clear return description, though more detail about event types could be added.
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 covers the only parameter (daysAhead) with a full description and default value. The tool description adds nothing beyond the schema, so it meets the baseline for high schema 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 tool returns upcoming birthdays, anniversaries, and family events, using a specific verb and resource. This distinguishes it from siblings like get_upcoming_events by specifying the family-related scope.
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 purpose is implied well enough, but no explicit guidance is given on when to use this tool versus alternatives like get_upcoming_events or answer_family_date_question. The description does not mention exclusions or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_family_memoriesSearch family memoriesARead-onlyIdempotentInspect
Search recent family posts and memories by keyword, optionally filtered to one person or a time window. Use for 'what did we do last summer' or 'find the post about the lake trip'.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Keywords to search for | |
| sinceDays | No | Days back to search (default: 365) | |
| personName | No | Optionally restrict to posts by this family member (fuzzy name) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description only restates the filter options already present in the schema (time window, person) and does not disclose additional behavioral traits such as result ordering, limits, or pagination. This is adequate but not exceptional.
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 two sentences, opens with the core action, and follows with relatable examples. Every word earns its place, with no redundancy or filler.
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 simplicity, well-documented schema, and strong safety annotations, the description covers the main scope and usage context. The lack of an output schema could have been mitigated by describing the return format, but the purpose implies a list of posts/memories and the examples are sufficient for most cases.
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 provides 100% coverage for all three parameters with descriptive text, including the 'fuzzy name' note for personName. The description merely paraphrases these filter options, adding no extra semantic detail beyond the schema. Baseline 3 is appropriate given high schema 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 identifies the verb 'Search' and the resource 'family posts and memories', with optional filters for person or time window. This clearly distinguishes it from sibling tools like get_recent_family_activity or find_family_member, and example queries reinforce the intended use.
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 concrete example phrasings ('what did we do last summer', 'find the post about the lake trip') that clarify when to use the tool. However, it does not explicitly name alternatives or state when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whats_newWhat's newARead-onlyIdempotentInspect
A catch-up summary of what happened in the user's family recently plus what's coming up. Use when the user asks 'what did I miss' or 'catch me up'.
| Name | Required | Description | Default |
|---|---|---|---|
| sinceDays | No | Days back to summarize (default: 7) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds scope (recent + upcoming) but no other behavioral details like aggregation, limitations, or performance. This is adequate but not rich, warranting a 3.
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 two short sentences, front-loaded with the main purpose and usage triggers. Every word earns its place.
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 single-parameter, read-only tool with good annotations, the description adequately covers what the tool does and when to use it. It doesn't elaborate on the exact contents of the summary or return format, but given the lack of an output schema, this is acceptable. Score 4.
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 only parameter sinceDays is fully described in the schema with min, max, and default (100% coverage). The description does not add any additional parameter meaning, so the baseline 3 applies.
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 a catch-up summary of recent family activity plus upcoming events, which is a specific verb+resource. However, it does not explicitly differentiate from siblings like get_recent_family_activity or get_upcoming_events, so it earns a 4 rather than a 5.
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 explicitly says 'Use when the user asks "what did I miss" or "catch me up"', providing clear usage context. It does not mention when not to use or any alternatives, so it falls short of a 5.
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.
16 tool updates
v1.0.0- First observed
answer_family_date_question - First observed
find_family_member - First observed
get_birthday_card_context - First observed
get_family_members - First observed
get_life_story - First observed
get_message_context_for_person - First observed
get_person_profile - First observed
get_person_wishlist - First observed
get_recent_family_activity - First observed
get_relationship_between_people - First observed
get_trip_overview - First observed
get_unanswered_story_questions - First observed
get_upcoming_events - First observed
get_upcoming_family_dates - First observed
search_family_memories - First observed
whats_new
TDQS
Most tools target distinct resources (family members, dates, trips, stories, wishlists), but there is overlap between get_upcoming_family_dates and get_upcoming_events (both cover events) and between get_recent_family_activity and whats_new (both summarize recent activity). Descriptions help clarify, but an agent might occasionally misselect.
The majority of tools follow a get_noun pattern (12 of 16), but find_family_member, answer_family_date_question, search_family_memories, and whats_new deviate, breaking the otherwise consistent convention. This is a minor inconsistency.
At 16 tools, the count is just above the typical well-scoped range, but each tool addresses a distinct aspect of family context (members, dates, trips, stories, wishlists). The breadth feels appropriate for a family-assistant server, though a few could potentially be consolidated.
The tool surface covers a broad range of family-context needs: member lookup, events/trips, life stories, memories, wishlists, and context for writing. It is read-only, but that appears intentional. Minor gaps like detailed event details or photo-specific search exist, but agents can work around them.
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
The HubSpot MCP Server acts as a bridge that enables AI assistants and Large Language Models to securely interact with HubSpot CRM data through natural conversation, without requiring users to understand complex API structures. It provides read-only access to standard CRM objects (contacts, companies, deals, tickets, products, invoices, and more) and their associations, secured via OAuth 2.0, allowing AI agents to perform tasks like summarizing deals, fetching company updates, and looking up record changes.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
- MysocialOAuthio.mysocial
Social media MCP server: your Instagram, TikTok, YouTube, LinkedIn and Threads history for your AI.
1 Person-owned AI memory that learns, not just stores — portable context for any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to query local conversation transcripts and relationship data via a local MCP server, allowing retrieval of past conversations and facts about people.1AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides tools for privacy-oriented context API including encrypted fact storage, commitment-based proofs, and semantic search, enabling users, AI agents, and back-office systems to securely manage and prove personal facts without exposing raw data.MIT
- AlicenseNot gradedqualityBmaintenanceA privacy-first personal context engine that ingests personal photos and message exports, extracts cited facts, and serves a queryable profile over MCP for natural-language questions like 'when did I last see Sarah?'.MIT
- AlicenseNot gradedqualityBmaintenanceA read-only MCP server that gives AI access to a local journal vault of transcribed handwritten diaries, offering tools to search entries, read them, and retrieve profile, timeline, and people information.MIT
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/Kinnectd/a2me-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server