Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"com-tinysend-tinysend": {
"args": [
"-y",
"tinysend"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Official TypeScript SDK for the tinysend API. Zero dependencies, fetch-based — works in Node.js, Bun, Deno, Cloudflare Workers, and browsers.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'tinysend' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked tinysend against OSV.dev.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in communication / security
Asynchronous coordination layer for AI coding agents: identities, inboxes, searchable threads, and advisory file leases over FastMCP + Git + SQLite
Proof primitive for AI agents on MultiversX. Anchor file hashes on-chain as verifiable proofs.
Security scanner for GitHub repos, Agent Skills, Plugins, and MCP servers. 18 scanners. Zero dependencies.
mcpki-server is the backend infrastructure for https://www.mcpki.org, enabling secure public key management and autonomous certificate handling for large language models (LLMs).
MCP Security Weekly
Get CVE alerts and security updates for com.tinysend/tinysend and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Official TypeScript SDK for the tinysend API. Zero dependencies, fetch-based — works in Node.js, Bun, Deno, Cloudflare Workers, and browsers.
npm install tinysend
Every call needs a bearer token (sk_...).
import { Tinysend } from 'tinysend';
const ts = new Tinysend('sk_...');
// lists
const lists = await ts.lists.list();
const list = await ts.lists.create({ name: 'Weekly Update' });
// subscribers
await ts.subscribers.create(list.id, { email: 'user@example.com', verified: true });
// send an email
const 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);
// contacts
const contacts = await ts.contacts.list({ search: 'john' });
// mailboxes
const mailboxes = await ts.mailboxes.list();
// stats
const stats = await ts.stats.project();
// webhooks
const 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 site
await ts.siteDomains.set(list.id, { domain: 'news.acme.com' });
// waitlists
await ts.lists.join(list.id, { email: 'user@example.com' });
await ts.lists.invite(list.id, { count: 100 });
// automations, invites, usage, settings
const 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.
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'
}
}
const ts = new Tinysend('sk_...', {
baseUrl: 'https://api.tinysend.com/v1', // default
fetch: customFetch, // custom fetch implementation
});
MIT
a system operator product