Skip to main content
Glama
dgalarza

Buttondown MCP Server

by dgalarza

Buttondown MCP Server

An MCP (Model Context Protocol) server for interacting with the Buttondown newsletter API.

Tools

Emails

Tool

Description

list_emails

List emails with optional status filter (draft/scheduled/sent)

get_email

Get single email details by ID

create_draft

Create new draft with markdown content

update_draft

Edit existing draft

send_draft

Send a draft immediately

schedule_draft

Schedule a draft for later

get_analytics

Get open/click rates for sent emails

Subscribers

Tool

Description

list_subscribers

List subscribers with optional type filter (regular/premium/churned/etc.)

get_subscriber

Get subscriber details by ID or email address

Tags

Tool

Description

list_tags

List all tags in your newsletter

get_tag

Get tag details by ID

create_tag

Create a new tag with optional color and description

update_tag

Update an existing tag

delete_tag

Delete a tag (subscribers remain unaffected)

Related MCP server: Buttondown MCP Server

Installation

Claude Code

claude mcp add buttondown -- npx -y buttondown-mcp

Then set your API key:

claude mcp add-json buttondown '{"command":"npx","args":["-y","buttondown-mcp"],"env":{"BUTTONDOWN_API_KEY":"your-api-key"}}'

Manual Configuration

Add to your Claude Code settings:

{
  "mcpServers": {
    "buttondown": {
      "command": "npx",
      "args": ["-y", "buttondown-mcp"],
      "env": {
        "BUTTONDOWN_API_KEY": "your-api-key"
      }
    }
  }
}

Get your API key from https://buttondown.com/settings/api

License

MIT

Available Tools

15 tools
create_draftB

Create a new draft email with markdown content

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe email body content (supports markdown)
slugNoCustom URL slug for the email
subjectYesThe email subject line
email_typeNoAudience type: public (all), private (subscribers only), premium (paid only)
descriptionNoA description for the email (used in archives/SEO)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden of disclosing side effects and return behavior. It only states 'create' and 'markdown content', the latter redundant with the schema. There is no mention of persistence, authentication, return values, or any integration context with send_draft.

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?

The description is a single, front-loaded sentence with zero wasted words. Every word contributes to the core meaning, making it appropriately sized and immediately clear.

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

Completeness2/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 annotations, the description fails to convey critical context for a creation tool. The agent does not know if the draft is saved immediately, whether an ID or URL is returned, or how it integrates with sibling tools like send_draft. This incompleteness hampers correct usage.

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%, with all five parameters documented. The description's 'with markdown content' simply repeats the body parameter's description, adding no new semantic information beyond what the schema already provides.

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?

The description clearly states the action ('Create') and the resource ('a new draft email'), with the added detail of markdown content support. It effectively distinguishes from sibling tools like update_draft and send_draft by emphasizing the creation aspect.

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?

No explicit guidance on when to use this tool versus alternatives. The agent must infer from the word 'Create' that this is for initial draft creation, not for updating, sending, or scheduling. No exclusions or alternative tool references are provided.

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

create_tagA

Create a new tag to organize subscribers

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the tag
colorNoHex color code for the tag (e.g., #FFD700)
descriptionNoA description of the tag

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states 'create' but does not disclose any side effects, idempotency, required permissions, or what happens if a tag with the same name already exists. This is insufficient for a mutation operation without annotation support.

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?

The description is a single sentence with no unnecessary words. It is front-loaded with the action and resource, and it effectively communicates the tool's purpose without redundancy.

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

Completeness3/5

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

For a simple create tool with three parameters and no output schema, the description is minimal but adequate. It does not mention that only 'name' is required or what the response format looks like, but the schema covers parameter requirements. The lack of behavioral details (e.g., duplicates, permissions) leaves some gaps for an agent, so a maximum of 3 is warranted.

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 input schema already fully documents all three parameters (name, color, description). The description adds no extra parameter semantics beyond what the schema provides, but given full coverage, a baseline of 3 is appropriate.

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?

The description clearly states 'Create a new tag', which is a specific verb and resource. It distinguishes itself from sibling tools like list_tags, update_tag, and delete_tag by focusing on creation. The phrase 'to organize subscribers' adds context about the purpose of 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 implies when to use the tool (when you need to create a tag) but does not explicitly mention alternatives or exclusion criteria. No guidance is provided on when to use this tool versus update_tag or delete_tag, so it relies on the verb 'create' for clarity.

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

delete_tagA

Delete a tag (subscribers with this tag will not be deleted)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe tag ID to delete

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of disclosing behavioral traits. It explicitly states that subscribers with this tag will not be deleted, which is a key side-effect often associated with delete operations. However, it could add detail on irreversibility or error behavior, so it is not fully transparent but strong for the core concern.

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?

The description is a single sentence with the core action front-loaded and a parenthetical clarification. Every word is functional, with no redundancy or fluff. It is concise yet informative.

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?

This is a simple delete operation with one parameter, and the description addresses the main safety concern (no subscriber deletion). The lack of an output schema means return values don't need explanation. However, it omits mention of irreversibility, which would make the context more complete for a destructive action.

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?

The input schema already provides a description for the id parameter ('The tag ID to delete'), giving 100% coverage. The description itself adds no additional parameter-level context, so it stays at the baseline without enhancing understanding 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?

The description clearly states 'Delete a tag' with a specific verb and resource. The parenthetical clarifies that subscribers are not deleted, which distinguishes this tool's scope from potential cascade deletes. Given sibling tools like create_tag and update_tag, the purpose is unambiguous.

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 this tool is for deleting a tag, but it does not explicitly state when to use it or provide alternatives. No exclusions or comparisons to sibling tools are given. The parenthetical is more about behavioral safety than usage guidance, so the usage context 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_analyticsA

Get analytics for a sent email (open rates, click rates, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe email ID to get analytics for

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavioral context. It discloses that the tool returns open and click rates and is scoped to sent emails, but it does not mention error handling, response format, or any side effects. The description adds some value but lacks depth.

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 short sentence, front-loaded with the verb, no filler. Communicates the essential purpose efficiently.

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 simple tool with one parameter and no output schema, the description covers the core functionality and gives concrete examples of the returned data. It could mention whether analytics are aggregate or per-recipient, but the current level is adequate for the tool's simplicity.

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?

The schema fully describes the id parameter, so the description adds little extra. The only addition is the qualifier 'sent email', implying the id must reference a sent email, not a draft. This is a minor extension 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?

The description clearly identifies the action (get), the resource (analytics), and the target (a sent email), with examples of the data (open rates, click rates). It distinguishes from sibling tools like get_email and get_subscriber_stats.

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 usage for retrieving email analytics but does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It is not misleading but provides no direct guidance.

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

get_emailC

Get detailed information about a specific email

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe email ID (e.g., em_29fxqcmrkp969vzttksexvmvr8)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It says 'detailed information' but does not specify what fields are included, whether authentication is required, or what happens for invalid IDs. This is a significant gap for a simple read tool.

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

Conciseness4/5

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

A single short sentence, front-loaded with the verb, and no wasted words. It is appropriately concise for a simple single-parameter tool, though it could include more detail without harming conciseness.

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

Completeness2/5

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

The tool has no output schema, so the description must explain what 'detailed information' entails, but it remains vague. Given the simplicity of the tool and lack of output schema, the description is insufficient for an agent to know what to expect from the response.

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?

The input schema covers 100% of the parameter 'id' with an example, so the baseline is 3. The description adds slight context ('specific email') but does not enrich the parameter semantics beyond the schema's own description.

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 clearly states the action (get) and the resource (a specific email), distinguishing it from list_emails which implies a collection. However, it doesn't explicitly clarify whether 'email' includes drafts vs sent messages, but the singular 'specific email' provides enough differentiation from siblings.

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?

No guidance is provided on when to use this tool versus list_emails or other email-related tools. The description only defines what it does, not the context or prerequisites, leaving the agent to infer when to call it.

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

get_subscriberA

Get detailed information about a specific subscriber by ID or email address

ParametersJSON Schema
NameRequiredDescriptionDefault
id_or_emailYesThe subscriber ID (UUID) or email address

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full transparency burden. It conveys a read operation via 'Get', but does not disclose additional behavioral traits such as error handling, rate limits, or the exact composition of 'detailed information'. For a simple getter 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.

Conciseness5/5

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

The description is a single, focused sentence that directly states purpose and input. Every word contributes, with no filler or redundancy.

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

Completeness3/5

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

With no output schema, the description must explain what 'detailed information' includes, but it does not enumerate fields or clarify whether a missing subscriber returns an error or null. It is sufficient for a basic getter but incomplete given the lack of output schema and annotation context.

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%; the parameter is already described as 'The subscriber ID (UUID) or email address' in the schema. The description adds minimal extra meaning beyond restating that lookup is by ID or email, so it does not significantly compensate or add beyond the structured 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?

The description uses a specific verb ('Get') and resource ('detailed information about a specific subscriber'), and clearly states the lookup key ('by ID or email address'). This distinguishes it from sibling tools like list_subscribers (which lists multiple) and get_subscriber_stats (which returns statistics).

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 usage for retrieving a single subscriber's details, but does not explicitly state when to choose this over alternatives such as get_subscriber_stats or list_subscribers. There is no mention of exclusions or prerequisites, leaving the usage context implied rather than explicit.

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

get_subscriber_statsA

Get aggregate subscriber statistics with counts broken down by type (regular, premium, churned, etc.). Much more efficient than listing all subscribers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool returns aggregate counts by type and claims efficiency, but it does not explicitly state read-only behavior, error handling, or any side effects. While 'Get' implies read-only, serious safety/behavioral details are absent, leaving a clear gap.

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?

The description is two short sentences, both of which add value: the first explains what it does, the second adds efficiency context and distinguishes it from a sibling. It is front-loaded with the core action and resource, 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?

Given there is no output schema, the description explains the return value at a high level ('counts broken down by type'), but the use of 'etc.' leaves the exact list of types vague. It also does not clarify whether stats cover all subscribers or any temporal scope, though the absence of parameters implies no filtering. Overall, it is mostly complete for a simple aggregate tool, with minor ambiguities.

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 has zero parameters, so the schema is empty and the description adds no parameter-specific meaning. Per the rubric, a zero-parameter tool receives a baseline of 4, and the description does not introduce any false parameter expectations. It implicitly clarifies that no inputs are needed, which is fine.

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?

The description uses a specific verb ('Get') and clearly identifies the resource ('aggregate subscriber statistics'), and distinguishes itself from sibling tools like 'list_subscribers' by emphasizing aggregate counts rather than raw listing. The phrase 'counts broken down by type' further adds precision.

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

Usage Guidelines4/5

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

The description provides an explicit comparison to an alternative ('Much more efficient than listing all subscribers'), suggesting when to prefer this tool for aggregate stats. However, it does not explicitly state when not to use it or name other alternatives (e.g., get_subscriber for individual details), so it stops short of full when/when-not guidance.

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

get_tagA

Get detailed information about a specific tag

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe tag ID

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description is responsible for behavioral disclosure. It states the tool 'Get detailed information', indicating a read-only operation, but does not address error handling, response format, or the extent of the details returned. This is minimally sufficient for a simple getter.

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

Conciseness4/5

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

The description is a single, efficient sentence with no fluff. It front-loads the verb and resource, but lacks any supplementary detail that could be conveyed in additional concise sentences. It is appropriately sized but minimal.

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

Completeness3/5

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

For a tool with no output schema and no annotations, the description is thin. It explains the operation at a high level but does not specify what 'detailed information' includes, potential error conditions, or typical usage context. Given the tool's simplicity, it is minimally adequate but not comprehensive.

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?

The input schema fully documents the single 'id' parameter with a clear description ('The tag ID'), and the tool description adds no additional parameter semantics. Per the baseline rule for high schema coverage, this scores a 3.

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?

The description uses the specific verb 'Get' and identifies the resource as 'a specific tag', clearly differentiating it from sibling tools like list_tags, create_tag, update_tag, and delete_tag. It unambiguously states what the tool does.

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 gives no explicit guidance on when to use this tool versus alternatives such as list_tags. The intended use case is implied (retrieving a single tag by ID), but no when-to-use or exclusion criteria are provided.

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

list_emailsA

List emails from your Buttondown newsletter. Filter by status (draft, scheduled, sent, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
statusNoFilter emails by status

TDQS

A3.8/5.0
Behavior3/5

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

The description clearly indicates a read-only list operation, but with no annotations provided, the description carries the full burden. It does not mention pagination behavior, ordering, or what fields are returned, leaving some behavioral details undisclosed.

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?

The description is just two sentences, front-loaded with the primary action, and contains zero filler. Every word adds value.

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?

The tool is simple, and the description covers the core purpose and filter option. However, there is no output schema, so the description could have elaborated on the return value shape or pagination to compensate, leaving a minor gap.

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?

The schema covers 100% of the parameters with descriptions, so the baseline is 3. The description's mention of filtering by status adds no new meaning beyond the schema's enum and description.

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?

The description starts with a specific verb 'List' and clearly identifies the resource as 'emails from your Buttondown newsletter'. It also mentions filtering by status, which distinguishes this from sibling tools like get_email (which fetches a single email).

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 usage for listing and filtering emails, but it does not explicitly contrast with siblings like get_email or mention when not to use it. There is no 'use X instead' guidance, so the context is implied rather than explicit.

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

list_subscribersB

List subscribers from your Buttondown newsletter. Filter by subscriber type.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
typeNoFilter subscribers by type

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description should disclose behavioral traits like pagination behavior, default page size, or any side effects. It only states 'List subscribers' and 'Filter by subscriber type', with no additional context about the response or behavior. This leaves the agent uncertain about what happens when page is omitted or how many results 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?

The description is a single concise sentence that gets straight to the point, with no unnecessary words.

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

Completeness2/5

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

Without annotations or an output schema, the description should compensate by explaining the pagination flow, default behavior, and how to use the type filter. It does not, leaving the agent without key operational details for a list operation.

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?

Both parameters are fully documented in the schema (page for pagination, type for filtering), and the description only repeats the filter concept without adding new meaning beyond the schema. Baseline 3 is appropriate given 100% schema coverage.

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?

The description clearly states the tool lists subscribers from the newsletter and supports filtering by type. It uses a specific verb and resource, and the name distinguishes it from get_subscriber (singular) and list_tags.

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 description provides no information about when to use this tool versus alternatives such as get_subscriber or get_subscriber_stats. It only states what it does, without exclusions or recommended scenarios.

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

list_tagsB

List all tags in your Buttondown newsletter

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are supplied, so the description must fully disclose behavior. It only says 'List all tags' without mentioning pagination (despite a 'page' parameter), return shape, or potential side effects. While the operation is likely read-only, the lack of detail about pagination and output format is notable.

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?

The description is a single, front-loaded sentence that conveys the core purpose without any filler. Every word earns its place, making it highly concise.

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

Completeness3/5

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

For a simple list tool, the description covers the basic purpose adequately. However, it fails to explain pagination semantics—whether 'all tags' implies a single response or requires iterating with the 'page' parameter—and does not clarify the return format. These details would be valuable given the absence of an output 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?

The schema already documents the only parameter 'page' with 'Page number for pagination', achieving 100% coverage. The description adds no extra semantic value beyond the schema, so the baseline score of 3 is appropriate.

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?

The description uses a specific verb 'List' with a clear resource 'tags' and scope 'all', effectively distinguishing it from sibling 'get_tag' which retrieves a single tag. It precisely states the action and target.

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 description provides no guidance on when to use this tool versus alternatives like 'get_tag' or 'list_emails'. There are no exclusions, prerequisites, or references to other tools.

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

schedule_draftA

Schedule a draft email to be sent at a specific time

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe draft email ID to schedule
publish_dateYesWhen to send the email (ISO 8601 format, e.g., 2024-12-25T10:00:00Z)

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states that it schedules a draft, but does not explain what happens to the draft (e.g., whether it becomes immutable, if it can be rescheduled, or what occurs if the time is in the past). This lack of detail is a significant gap for a mutating operation.

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?

The description is a single, clear sentence that is front-loaded and free of unnecessary words. It conveys the core purpose efficiently.

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

Completeness3/5

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

The tool is relatively simple with two fully documented parameters and no output schema. The description covers the core function, but given the absence of annotations and the mutating nature of the tool, it would benefit from noting any side effects, restrictions, or behavior after scheduling. It is minimally viable but with clear gaps.

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?

The input schema describes both parameters fully: 'id' as the draft email ID and 'publish_date' in ISO 8601 format. Since schema coverage is 100%, the description adds no additional semantic value beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

The description uses a specific verb 'Schedule' with a clear resource 'a draft email' and a particular condition 'to be sent at a specific time'. This distinguishes it from immediate send operations like send_draft and from create/update operations.

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 use when you want to delay sending until a specific time, but it does not explicitly mention alternatives or exclusions. It does not say 'use send_draft for immediate sending' or provide any contrast with sibling tools.

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

send_draftA

Send a draft email immediately to subscribers

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe draft email ID to send

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided; description does not disclose side effects, permissions, reversibility, or what happens to the draft after sending. For a mutating operation, this is a significant gap.

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

Conciseness5/5

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

A single, front-loaded sentence with no redundant words; perfect for a simple tool.

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

Completeness3/5

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

Given the simple single-param structure, the description is mostly complete but lacks behavioral details like irreversible consequences or subscriber scope confirmation; no annotations or output schema to compensate.

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 covers the param at 100%, and the description adds no additional meaning beyond what the schema already provides.

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?

Specific verb 'Send' + resource 'draft email' + recipient 'subscribers' and temporal scope 'immediately' clearly differentiates from sibling schedule_draft.

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

Usage Guidelines4/5

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

The word 'immediately' provides clear context for when to use (immediate send) vs schedule_draft, but no explicit alternatives or exclusions are stated.

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

update_draftB

Update an existing draft email

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe email ID to update
bodyNoNew body content (supports markdown)
slugNoNew URL slug
subjectNoNew subject line
email_typeNoNew audience type
descriptionNoNew description

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only says 'update an existing draft email.' It does not disclose whether updates are partial or full, what happens to missing fields, or any side effects. This is minimal behavioral detail.

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?

The description is a single sentence with the verb 'Update' front-loaded, and it contains no unnecessary words. It is appropriately concise.

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

Completeness2/5

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

For a mutation tool with 6 parameters and no output schema or annotations, the description is too minimal. It does not explain return values, update semantics (e.g., partial vs full), or any prerequisites, leaving significant gaps.

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?

The schema description coverage is 100%, with each parameter having a clear description and an enum for email_type. The tool description itself adds no parameter details, but baseline 3 is appropriate since the schema provides sufficient semantics.

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?

The description clearly identifies the action (update) and the target resource (existing draft email), which distinguishes it from siblings like create_draft and send_draft. It is specific and unambiguous.

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?

No guidance is provided on when to use this tool versus alternatives. It does not mention create_draft for new drafts or send_draft for sending, leaving the agent without explicit usage context.

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

update_tagA

Update an existing tag

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe tag ID to update
nameNoNew name for the tag
colorNoNew hex color code for the tag
descriptionNoNew description for the tag

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries the burden of behavioral disclosure. It only states the action without detailing partial-update behavior, validation, idempotency, error handling, or potential side effects. The word 'existing' hints at failure if the tag is missing, but this is not explicit.

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?

The description is a single, efficient sentence with no wasted words. It is appropriately sized for the tool's simplicity.

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

Completeness3/5

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

The tool is simple, with no output schema and full schema parameter coverage, but the description omits behavioral details like return values or error cases. It is minimally viable but not sufficiently helpful for an agent to fully anticipate the tool's behavior.

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 parameter meanings are already fully documented. The description does not add any semantic detail beyond the schema, meriting the baseline score of 3.

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?

The description 'Update an existing tag' uses a specific verb and resource, clearly distinguishing it from sibling tools like create_tag, delete_tag, and get_tag. It conveys both the action and the target resource unambiguously.

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 usage for existing tags, contrasting with create_tag, but does not explicitly state when to use this tool over alternatives or provide exclusions. Context from sibling names helps but is not explicitly referenced.

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

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct resource and action, such as list_emails vs. get_email, and send_draft vs. schedule_draft. The only potential overlap is list_subscribers and get_subscriber_stats, but the descriptions clearly differentiate aggregate stats from listing individuals.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern: list_* for listing, get_* for single-item retrieval, and create_/update_/delete_/send_/schedule_ for actions. Singular nouns are used for single-item operations, plural for lists, with minor exceptions like get_analytics and get_subscriber_stats that still fit the pattern.

Tool Count4/5

With 15 tools, the server is at the upper end of a well-scoped range but covers a broad domain: emails, drafts, subscribers, tags, and analytics. Each tool serves a clear purpose, though the count could be trimmed by merging some read operations.

Completeness4/5

The main workflows are covered: create, update, send, and schedule drafts; list and get emails; and full CRUD for tags. However, there is no delete_draft action, and subscriber management is limited to reading and stats, leaving gaps in lifecycle management.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/dgalarza/buttondown-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server