Skip to main content
Glama

Encharge MCP by usefulapi

Server Details

Manage Encharge people, tags, segments and fields, and track events for email automation.

Ownership verified
Status
Healthy
Uptime
99.5% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.9/5.0

Scored across 10 tools

Disambiguation4/5

Most tools target distinct resources and actions, but encharge_track_event with 'identify' overlaps with encharge_upsert_person for creating/updating people, and get_people vs list_segment_people both retrieve people. Descriptions help clarify, so confusion is limited.

Naming Consistency5/5

All tools use the encharge_ prefix with consistent snake_case verb_noun naming. Retrieval tools use get/list appropriately and write operations use clear verbs like add, remove, upsert, unsubscribe.

Tool Count5/5

Ten tools is well-scoped for an Encharge integration focused on people, tags, segments, fields, events, and account info. Each tool has a clear role without obvious redundancy.

Completeness3/5

Core person lookup, upsert, tagging, unsubscribe, segment reading, field listing, and event tracking are covered, but there is no list-all-people or list-tags tool, no segment management, and no person delete. These are notable gaps for full lifecycle coverage.

Available Tools

10 tools
encharge_add_tagsAdd tags to a personB
Idempotent
Inspect

WRITE: add one or more tags to an existing person. Tags that do not exist yet are created. POST /tags.

NameRequiredDescriptionDefault
idNoEncharge id of the person (a UUID).
tagsYesTag names. A tag name cannot contain a comma.
emailNoEmail address of the person.
userIdNoThe userId your own app uses for the person.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is known. The description adds genuinely useful behavior beyond that: tags that don't exist are silently created, and the underlying call is POST /tags. It omits auth requirements and what happens on a duplicate tag add.

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

Conciseness5/5

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

Three short fragments totalling one sentence plus an endpoint. The operation type is front-loaded, and every clause (add tags, auto-create missing tags, POST /tags) carries distinct information with zero padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter mutation tool with no output schema, the description plus rich annotations and 100% schema coverage give the agent enough to call it correctly. The main residual gap is that it doesn't clarify the id/email/userId target-selection alternatives, though the schema largely handles that.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (id, tags, email, userId) are already documented in the schema, including the comma restriction and UUID note. The description adds no parameter-level meaning beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('add one or more tags to an existing person') and flags the write nature up front with 'WRITE:'. The verb inherently separates it from the sibling encharge_remove_tags, though the description never names that sibling explicitly.

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

Usage Guidelines2/5

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

The only usage signal is the passing phrase 'an existing person', which implies the target must already exist. There is no guidance on when to prefer this over encharge_upsert_person or encharge_track_event, and no statement of prerequisites or exclusions.

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

encharge_get_accountGet accountA
Read-only
Inspect

The Encharge account behind the API key: account id, name, site, status, timezone, people count and active services. GET /accounts/info.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so the bar is lower. The description still adds real context: the account is resolved implicitly from the API key (explaining why there are no parameters) and the underlying endpoint GET /accounts/info is disclosed, which is beyond what the annotations provide.

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

Conciseness5/5

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

One sentence enumerating the payload plus a short endpoint reference, with the resource identified up front. Nothing is padded and every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no parameters, the description carries the burden of telling the agent what comes back, and it does so by listing the fields. It stops short of noting behavior on invalid or missing API keys, but for a zero-argument read that is a minor gap.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4 under the rubric. The description correctly reinforces this by framing the account as implicit ("behind the API key"), leaving no ambiguity about whether an identifier must be supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ("The Encharge account behind the API key") and enumerates exactly which fields come back (id, name, site, status, timezone, people count, active services). That is far more concrete than a restatement of the title, though it never explicitly positions itself against siblings like encharge_get_people or encharge_list_segments.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the call to make when it needs account-level metadata, but there is no statement of when to use it, when not to, or what alternative exists. No prerequisites or auth requirements beyond the passing mention of "behind the API key" are spelled out.

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

encharge_get_peopleGet peopleA
Read-only
Inspect

Look up people (contacts) by email, userId or Encharge id. Pass up to 20 people, each with at least one identifier. Returns each person with all fields, tags and segment data; a person that does not exist is left out. GET /people.

NameRequiredDescriptionDefault
peopleYesPeople to look up, each with at least one of email, userId or id.

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds genuinely useful behavior the annotations lack: a 20-person batch cap, and that a missing person is silently omitted rather than causing an error, plus that the full record, tags and segment data are returned.

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

Conciseness5/5

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

Three short sentences, front-loaded with the lookup key and the batch limit, then the return shape. No filler and every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only lookup with no output schema, the description adequately covers inputs, batch size, return contents and the subtle missing-person behavior. Minor gaps remain: no error/permission behavior for malformed identifiers and no ordering guarantee for results.

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

Parameters3/5

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

Schema description coverage is 100% and the nested item schema already documents id, email and userId with formats and length bounds, so the baseline is 3. The description restates the 'at least one identifier' and max-20 constraints without adding syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Look up people (contacts)') and enumerates the three accepted identifier types. The batch-lookup-by-identifier framing distinguishes it from listing siblings such as encharge_list_segment_people, which enumerate rather than resolve identifiers.

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

Usage Guidelines3/5

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

The description implies the usage context — you must have an email, userId or Encharge id in hand, and you can batch up to 20. However, it never names an alternative (e.g. encharge_upsert_person or encharge_list_segment_people) or states when not to use it, so the 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.

encharge_list_fieldsList person fieldsA
Read-only
Inspect

List all person fields (built-in and custom) with name, title, type and whether the field is read-only. Use the names in encharge_upsert_person. GET /fields.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish the safe read-only profile (readOnlyHint=true, destructiveHint=false), so the burden is lower. The description adds value beyond them by enumerating the returned attributes (name, title, type, read-only flag) and naming the underlying endpoint, so the agent knows the shape of what comes back despite there being no output schema.

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

Conciseness5/5

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

Two short sentences with zero filler: the resource and its scope lead, the follow-on usage note follows, and the endpoint tag closes. Every clause carries information an agent can act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list call with no output schema, the description supplies the essential missing piece — what each field record contains — and a usage pointer. It does not mention ordering, pagination, or caching, but for a small metadata listing those are likely non-issues, so it is complete enough to call correctly.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies — no parameter guidance is required and none is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (list person fields) and scopes it precisely: built-in and custom, with the exact attributes returned. This is clearly distinguishable from siblings like encharge_list_segments, encharge_list_segment_people, and encharge_get_people, which the agent can rule out without opening a schema.

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

Usage Guidelines4/5

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

Gives a concrete downstream usage pointer — "Use the names in encharge_upsert_person" — which tells the agent why it would call this and how the output feeds another tool. It does not state explicit exclusions or when-not-to-use, but there is no competing sibling that lists fields, so the missing comparison costs little.

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

encharge_list_segment_peopleList people in a segmentA
Read-only
Inspect

People in one dynamic segment, with paging (limit/offset), optional sort and a choice of person fields (attributes). Use encharge_list_segments for segment ids and encharge_list_fields for field names. GET /segments/{segmentId}/people.

NameRequiredDescriptionDefault
sortNoPerson field name to sort by.
limitNoPeople per page, 1-100 (default 25).
orderNoSort order (default asc).
offsetNoNumber of people to skip (default 0). Pass the previous reply's next_offset.
attributesNoPerson field names to return. Default: the standard fields.
segment_idYesEncharge segment id (from encharge_list_segments).

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare this is a read-only, non-destructive, open-world operation. The description adds genuinely useful context beyond that: the segment is 'dynamic' (membership is computed, not a static list) and results are paged with limit/offset. It stops short of describing result shape or paging behavior in depth, but that is largely covered by structured fields.

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

Conciseness5/5

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

Two compact sentences: capability and paging first, prerequisite routing second, endpoint last. Every clause carries information an agent can act on, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the offset parameter documents passing the previous reply's next_offset, which implies the paged response shape, and annotations cover the safety profile. Fairly complete for a read-only list tool, though return-field behavior is only lightly touched.

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

Parameters3/5

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

Schema coverage is 100%, so every parameter is already documented with type, bounds, and defaults. The description only paraphrases paging, sort, and field selection without adding format or syntax detail beyond what the schema provides, matching the baseline 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (people in one dynamic segment) and scope clearly, and routes to sibling tools for segment ids and field names, so an agent can distinguish it from encharge_list_segments and encharge_list_fields. The verb is implied rather than stated, but the title and resource make the operation unambiguous.

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

Usage Guidelines4/5

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

It explicitly tells the agent where to get prerequisites: encharge_list_segments for segment ids and encharge_list_fields for field names. It does not, however, address when to use this versus encharge_get_people, the closest alternative, so the routing is helpful but incomplete.

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

encharge_list_segmentsList segmentsA
Read-only
Inspect

List the dynamic segments of the account with id, name and conditions. Use the ids with encharge_list_segment_people. GET /segments.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the useful qualifier 'dynamic segments' and discloses the returned fields, but says nothing about pagination, result size, or ordering for an account-level listing.

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

Conciseness5/5

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

Two tight sentences with no filler: the core purpose first, then the routing hint, then the raw endpoint. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no input parameters and no output schema, the description carries the burden of describing the response, and it does so by naming the fields returned. Nothing an agent needs to call this correctly is missing.

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

Parameters4/5

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

The tool takes zero parameters, so schema coverage is moot and the baseline is 4. The description still adds value by noting what each returned segment contains (id, name, conditions).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (list dynamic segments of the account) and even enumerates the returned fields (id, name, conditions). It distinguishes itself from the closely named sibling encharge_list_segment_people by describing the segment-level listing rather than the people within a segment.

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

Usage Guidelines4/5

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

Explicitly tells the agent to use the returned ids with encharge_list_segment_people, establishing the tool's role as a prerequisite step. It does not state when *not* to use it, but the follow-up relationship is clear enough for correct selection.

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

encharge_remove_tagsRemove tags from a personA
DestructiveIdempotent
Inspect

WRITE: remove one or more tags from an existing person. The tags themselves are not deleted. DELETE /tags.

NameRequiredDescriptionDefault
idNoEncharge id of the person (a UUID).
tagsYesTag names. A tag name cannot contain a comma.
emailNoEmail address of the person.
userIdNoThe userId your own app uses for the person.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: the tags themselves are not deleted (limits the blast radius), which is the key behavioral detail an agent needs before calling a destructive-looking tool.

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

Conciseness5/5

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

Three short sentences, action and write semantics front-loaded, with zero filler. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with full schema coverage and no output schema, the description covers the core behavior and the non-deletion caveat. It omits how the person is targeted (id vs email vs userId) and any response/pagination detail, but those are adequately handled by the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents id, tags, email, and userId, including the comma restriction on tag names. The description adds no parameter-level 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (remove) and resource (tags from an existing person), and the clarifying sentence 'The tags themselves are not deleted' disambiguates the operation from deleting tag entities. It does not explicitly name the sibling encharge_add_tags, but the WRITE/remove framing makes the inverse relationship obvious enough to route correctly.

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

Usage Guidelines3/5

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

The 'WRITE' prefix implies a mutation context, and the operation scope is clear, but there is no explicit statement of when to use this versus encharge_add_tags or encharge_upsert_person, no prerequisites, and no exclusions. Usage is implied rather than guided.

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

encharge_track_eventTrack an eventA
Destructive
Inspect

WRITE: record an event for a person through the Ingest API, for example "Registered user" or "Created Page". The person is created or updated from user. Use the event name "identify" to only create or update a person. Needs the account write key. POST https://ingest.encharge.io/v1/.

NameRequiredDescriptionDefault
nameYesEvent name.
tagsNoTags to add to the person.
emailNoEmail address of the person.
userIdNoThe userId your own app uses for the person.
propertiesNoProperties of the event; values may be nested objects, for example { "plan": "Premium", "trial": { "length": 14 } }. Dates as ISO 8601.
user_fieldsNoPerson fields to set on this person, by field name.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, non-idempotent, open-world, and write. The description reinforces and extends this by labeling the operation "WRITE:", stating the auth requirement (account write key), giving the ingestion endpoint, and disclosing the implicit side effect that the person is created or updated. It omits merge/overwrite behavior and rate-limit context.

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

Conciseness5/5

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

Three sentences, front-loaded with the WRITE marker and the core action, then the special-case mode, then prerequisites and endpoint. Every sentence carries information an agent needs; nothing is restated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter, nested-object write tool with no output schema, the description covers what the tool does, the auth requirement, the endpoint, and the key special case. Remaining gaps are the semantics of `properties` vs `user_fields` merging and the token/error behavior of the ingest call.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning the schema cannot: the sentinel value "identify" for the required `name` parameter, which lets an agent collapse the call into a person-only upsert. The reference to data coming from "`user`" is slightly imprecise against the actual `email`/`userId` parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("record an event for a person through the Ingest API") and gives concrete example event names, so the action is unambiguous. It never distinguishes itself from the closest sibling, encharge_upsert_person, whose name implies overlapping person-creation behavior.

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

Usage Guidelines4/5

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

Provides clear conditions for a special mode ("Use the event name 'identify' to only create or update a person") and the prerequisite ("Needs the account write key"). It stops short of naming alternatives or stating when-not to use it, so it falls just below the explicit when/when-not/alternative bar.

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

encharge_unsubscribe_personUnsubscribe a personA
DestructiveIdempotent
Inspect

WRITE: unsubscribe one person so Encharge sends them no more email. The person stays in Encharge. Identify them by email, userId or Encharge id. POST /people/unsubscribe.

NameRequiredDescriptionDefault
idNoEncharge id of the person (a UUID).
emailNoEmail address of the person.
userIdNoThe userId your own app uses for the person.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: the person is retained in Encharge and the operation maps to POST /people/unsubscribe, neither of which is in the annotations.

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

Conciseness5/5

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

Three compact sentences, front-loaded with the WRITE marker and the core action, then identity options, then the endpoint. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter, fully-documented tool with complete annotations, the description covers action, effect, and identity methods. Only the absence of any note on reversibility (e.g., that the person can be re-subscribed) leaves a small gap for a destructive write.

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

Parameters3/5

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

All three parameters have full descriptions in the schema (100% coverage), and the description's mention of 'email, userId or Encharge id' merely restates those identifiers without adding format or constraint detail. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (unsubscribe), resource (one person), and the effect (Encharge sends them no more email), plus the underlying POST endpoint. This distinguishes it cleanly from siblings like encharge_upsert_person and encharge_remove_tags.

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

Usage Guidelines3/5

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

The description clarifies the outcome ('no more email', 'person stays in Encharge'), which implies it is distinct from deletion, but it never states when to choose this over alternatives such as re-subscribing or updating a person. Usage is left to inference.

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

encharge_upsert_personCreate or update a personA
DestructiveIdempotent
Inspect

WRITE: create a person, or update the one that already has this email, userId or Encharge id. Only the fields you pass are set. Use encharge_add_tags for tags. POST /people.

NameRequiredDescriptionDefault
idNoEncharge id of the person (a UUID).
emailNoEmail address of the person.
fieldsNoOther person fields by field name (see encharge_list_fields), for example { "company": "Acme", "plan": "pro" }. Dates as ISO 8601.
userIdNoThe userId your own app uses for the person.
lastNameNoLast name.
firstNameNoFirst name.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=true and openWorldHint=true, so the safety/identity profile is covered. The description adds genuinely new behavioral context beyond them: 'WRITE:' flags the mutation class, the upsert matching logic explains exactly what happens on repeat calls, and 'Only the fields you pass are set' clarifies the partial-update semantics that make the destructive hint tractable.

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

Conciseness5/5

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

Four short, front-loaded sentences with no filler: the WRITE marker, the upsert rule, the partial-update rule, the alternative tool, and the endpoint. Every clause carries information an agent needs and the most decision-relevant content (WRITE + matching key) comes first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter mutation tool with no output schema, the description covers the operation class, the identity resolution rule, partial-update behavior, and the tag alternative, while annotations carry the rest of the safety profile. It does not address key precedence when multiple identifiers are passed or any pagination/response expectations, leaving a small gap.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3 and the schema already documents id, email, userId and the name fields. The description still adds meaning the schema does not: which parameters act as the identity/match key and therefore determine whether the call creates or updates. It does not explain precedence when multiple keys are supplied, which keeps it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource pair ('create a person, or update...') and immediately defines the upsert key semantics (email, userId, or Encharge id). It also names the sibling it is not (encharge_add_tags) so an agent can route tag operations away from this tool without opening a schema.

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

Usage Guidelines4/5

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

Gives clear context for when this tool applies (create, or update the existing record matched by one of three identifiers) and explicitly redirects tag work to encharge_add_tags. It stops short of stating when-not to use it (e.g. relationship to encharge_unsubscribe_person or encharge_track_event), so a 4 rather than a 5.

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Drip's email marketing platform through comprehensive tools for managing subscribers, campaigns, tags, events, and workflows. Supports batch operations, GDPR compliance, and both JSON and Markdown response formats for seamless email marketing automation.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with the Klaviyo API for marketing automation, including managing lists, campaigns, and customer data.
    1
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI agents to manage mailing lists and contacts, read campaign reports with per-link clicks, and trigger automations. Supports lookups and updates by email address, tag and status management, and destructive operations with client confirmation.
    13
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables comprehensive ProtonMail management through SMTP and IMAP, supporting email sending/reading, folder operations, analytics, and contact tracking with advanced search and automation capabilities.
    43
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.