Skip to main content
Glama

Formspree MCP by usefulapi

Server Details

Read submissions, review spam and inspect the fields of a Formspree form.

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

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct target: metadata-only field discovery versus non-spam submissions versus spam submissions. The descriptions explicitly explain the overlap between the two listing tools (spam filter flag) so an agent can select correctly.

Naming Consistency5/5

All tools use a consistent formspree_ prefix followed by a verb_noun pattern: get_form_fields, list_submissions, list_spam_submissions. Minor variation in the spam tool reflects a real semantic distinction rather than inconsistent convention.

Tool Count4/5

Three tools is on the thin side but fits a narrowly scoped read-only submissions surface, and each tool earns its place. No redundant or filler tools are present.

Completeness3/5

The surface covers reading submissions, filtering spam, and discovering fields, but lacks obvious adjacent operations such as fetching a single submission by ID, listing forms, or marking/unmarking spam. This creates dead ends for common lifecycle actions.

Available Tools

3 tools
formspree_get_form_fieldsGet form fieldsA
Read-onlyIdempotent
Inspect

The field names (columns) of the form's submissions, taken from the latest 100 submissions. Returns names only, no submission data. Use it to pick the columns for formspree_list_submissions. GET /forms/{hashid}/submissions?limit=100.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered; the description adds genuinely new behavioral context — that results come from a 100-submission sample and that no submission values are returned. It also discloses the underlying request shape. It does not mention what happens with an empty or brand-new form, which is the main remaining behavioral unknown.

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 return content, then the usage hint, then the endpoint. Every sentence carries distinct information — what, when, and how — with no restatement of the title or annotations.

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?

For a zero-parameter, read-only lookup with no output schema, the description supplies exactly the missing pieces: output shape (names only, not values), sampling scope (latest 100 submissions), and purpose in a larger workflow. An agent can call this correctly and interpret the result without further documentation.

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 parameter_semantics baseline is 4. The closing GET path is informative context rather than a parameter contract, and it notably references a {hashid} that has no corresponding schema property — but that ambiguity exists in the schema, not in the description's handling of parameters.

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 names a specific resource (the field names/columns of a form's submissions) and a specific derivation method (latest 100 submissions), then explicitly states what is not returned ("Returns names only, no submission data"). This separates it cleanly from formspree_list_submissions and formspree_list_spam_submissions, which return actual submission rows.

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?

"Use it to pick the columns for formspree_list_submissions" gives an explicit, actionable when-to-use condition and names the downstream sibling it pairs with. It stops short of stating exclusions or prerequisites (e.g. that the form must already have submissions, or when the other sibling should be preferred), so it is not a full when/when-not treatment.

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

formspree_list_spam_submissionsList spam submissionsA
Read-onlyIdempotent
Inspect

List the submissions Formspree flagged or the owner marked as spam, newest first by default. Use it to check for false positives. Same filters and paging as formspree_list_submissions. GET /forms/{hashid}/submissions?spam=true.

NameRequiredDescriptionDefault
limitNoNumber of submissions, 1-100 (default 25).
orderNoSort by date: desc = newest first (default), asc = oldest first.
sinceNoOnly submissions since this date, ISO format: 2026-10-01 or 2026-10-01T12:00:00 (the form of the Formspree docs, no timezone suffix).
offsetNoNumber of submissions to skip (paging). Pass the previous reply's next_offset.
columnsNoOnly these columns (field names, plus _date). Default: all columns. Ask for few columns: submissions hold personal data.
include_delivery_statusNoAlso return each submission's delivery status (_status, lists notification recipients). Default false.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety profile is covered. The description adds the underlying GET path and the fact that results include both auto-flagged and owner-marked spam, which is genuinely useful provenance, but it doesn't discuss paging behavior or response shape beyond the default sort.

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 scope, then the use case, then the equivalence to the sibling. No filler and nothing repeated verbatim 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 read-only, annotated, fully described 6-param list tool with no output schema, the description covers what the tool returns (spam-flagged or owner-marked submissions, newest first) and how paging mirrors the sibling. Only the response envelope is left implicit, and the schema notes about next_offset and _status partially cover 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 coverage is 100%, with limit, order, since, offset, columns, and include_delivery_status all documented in-schema. The description only adds a cross-reference ("same filters and paging as formspree_list_submissions") and the spam=true endpoint, adding no syntax or semantics 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 ("List the submissions") scoped precisely to spam (flagged by Formspree or owner-marked), plus default ordering. It explicitly contrasts itself with formspree_list_submissions, so an agent can tell the two apart 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?

"Use it to check for false positives" gives a concrete context, and the pointer to formspree_list_submissions for the same filters implies the non-spam alternative. It stops short of an explicit "do not use for X" exclusion, so it's clear but not fully routing.

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

formspree_list_submissionsList submissionsA
Read-onlyIdempotent
Inspect

List the form's submissions (not spam), newest first by default. Each has its _date and one value per form field. Submissions hold visitors' personal data: ask for the columns you need. Filter by date with since; page with limit and offset. GET /forms/{hashid}/submissions.

NameRequiredDescriptionDefault
limitNoNumber of submissions, 1-100 (default 25).
orderNoSort by date: desc = newest first (default), asc = oldest first.
sinceNoOnly submissions since this date, ISO format: 2026-10-01 or 2026-10-01T12:00:00 (the form of the Formspree docs, no timezone suffix).
offsetNoNumber of submissions to skip (paging). Pass the previous reply's next_offset.
columnsNoOnly these columns (field names, plus _date). Default: all columns. Ask for few columns: submissions hold personal data.
include_delivery_statusNoAlso return each submission's delivery status (_status, lists notification recipients). Default false.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds genuinely new context: default newest-first ordering, the personal-data exposure warning, and the offset/next_offset paging model.

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 tight sentences plus an endpoint line; the scope and default ordering are front-loaded, and the privacy warning sits next to the columns advice where it is actionable. No filler.

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?

For a read-only list tool with full schema coverage and annotations, the description covers defaults, filtering, paging, field selection and data-sensitivity. No output schema exists, yet the shape of a submission ('_date and one value per form field') is described, leaving nothing an agent needs 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?

Schema coverage is 100%, so baseline would be 3, but the description adds meaning beyond the schema by explaining when to use 'columns' (privacy-driven minimisation) and the default sort direction. It does not restate limit/offset mechanics, which the schema already documents.

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 (List) and resource (the form's submissions) with an explicit scope note '(not spam)' that separates it from formspree_list_spam_submissions, and names the default ordering. No schema inspection is needed to know what it returns.

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 concrete guidance for filtering ('Filter by date with since') and paging ('page with limit and offset'), and a conditional recommendation ('ask for the columns you need'). It implies the spam sibling via '(not spam)' but never names it explicitly as an alternative, keeping this at a 4.

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.

  1. 3 tool updates
    • First observedformspree_get_form_fields
    • First observedformspree_list_spam_submissions
    • First observedformspree_list_submissions

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides secure, draft-first IMAP/SMTP access to a GMX business mailbox over Streamable HTTP, letting users list folders, read, search and download attachments, and create, update or delete drafts and replies. Sending is never arbitrary: it requires an explicit user-approved send of a previously reviewed draft, and email content is always treated as untrusted data.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables managing Substack publications through 27 tools for drafting, publishing, subscriber analytics, comments, Notes, and reader feed via Streamable HTTP.
    234 npm
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.