Tinysend

com.tinysendPublished by tinysend.comOfficial publisherv1.0.0Updated Oct 24, 2026

Email for agents: newsletters, subscribers, contacts, broadcasts. OAuth sign-in, no API key.

VerifiedStreamable HTTPWeb executableCommunication & CollaborationBusiness & Commerce

Overview

AI-generated overview

Remote MCP endpoint for Tinysend that lets an assistant manage email lists, subscribers, contacts and send newsletter broadcasts.

What you can do
  • Manage lists and waitlists, including creating lists, joining and inviting
  • Add and search subscribers and contacts
  • Create and send newsletter posts to a list
  • Set sender identity and custom domains, then re-check DNS
  • Inspect mailboxes, project stats, usage, automations, invites and webhooks
When to use it
Useful when an assistant should run newsletter and audience work end to end: building subscriber lists, drafting and sending broadcasts, and checking delivery stats without leaving the chat.
Requirements
A remote MCP endpoint at mcp.tinysend.com, reachable over the network. The underlying API requires a bearer token (sk_...) for every call; humans create one in account settings, and agents can register themselves through the documented agent auth flow. Sign-in is described as OAuth, with no API key.
Before you install
The assistant can send real email to subscribers and change audience data, so sending and list edits should be reviewed. A bearer token (sk_...) is needed and grants account access. Agent self-registration means an account can be created without a human in the loop. Custom sender domains and DNS checks affect who mail appears to come from.

Installation

In SourceWeft

  1. Open Tinysend in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.tinysend%2Ftinysend/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "tinysend": {
      "type": "http",
      "url": "https://mcp.tinysend.com/"
    }
  }
}

README

tinysend

Official TypeScript SDK for the tinysend API. Zero dependencies, fetch-based — works in Node.js, Bun, Deno, Cloudflare Workers, and browsers.

[subscribers]

Install

bash
npm install tinysend

Getting a token

Every call needs a bearer token (sk_...).

Usage

typescript
import { Tinysend } from 'tinysend';
const ts = new Tinysend('sk_...');
// listsconst lists = await ts.lists.list();const list = await ts.lists.create({ name: 'Weekly Update' });
// subscribersawait ts.subscribers.create(list.id, { email: '[email protected]', verified: true });
// send an emailconst post = await ts.posts.create(list.id, {  subject: 'Hello World',  body_html: '<p>Welcome to our newsletter!</p>',});await ts.posts.send(list.id, post.id);
// contactsconst contacts = await ts.contacts.list({ search: 'john' });
// mailboxesconst mailboxes = await ts.mailboxes.list();
// statsconst stats = await ts.stats.project();
// webhooksconst hook = await ts.webhooks.create({  url: 'https://example.com/webhook',  events: ['post.sent', 'subscriber.created'],});
// sender domain (who emails come from)await ts.sender.set(list.id, { type: 'custom_domain', name: 'James', email: 'james', domain: 'acme.com' });await ts.sender.check(list.id); // re-check DNS
// custom domain for the archive siteawait ts.siteDomains.set(list.id, { domain: 'news.acme.com' });
// waitlistsawait ts.lists.join(list.id, { email: '[email protected]' });await ts.lists.invite(list.id, { count: 100 });
// automations, invites, usage, settingsconst automations = await ts.automations.list();const invites = await ts.invites.list();const usage = await ts.usage.get();

The SDK covers the full API surface — verified against the live openapi spec on every release.

Error handling

typescript
import { Tinysend, TinysendError } from 'tinysend';
try {  await ts.lists.get('nonexistent');} catch (err) {  if (err instanceof TinysendError) {    console.log(err.status);  // 404    console.log(err.code);    // 'not_found'    console.log(err.message); // 'list not found'  }}

Configuration

typescript
const ts = new Tinysend('sk_...', {  baseUrl: 'https://api.tinysend.com/v1',  // default  fetch: customFetch,                        // custom fetch implementation});

License

MIT


a system operator product

Source: README.md at commit 3b38509

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts