buildmymcpserver/apps/web/lib/articles.ts

142 lines
6.3 KiB
TypeScript
Raw Permalink Normal View History

// Single registry for all /guides/* articles. The guides index, sitemap and
// RSS feed all render from this list, so adding an article here is the only
// bookkeeping step a new guide page needs besides its own directory.
export interface Article {
slug: string;
title: string;
description: string;
/** Short badge shown on the index card, e.g. "Guide", "Comparison". */
tag: string;
/** ISO date the article first shipped. */
datePublished: string;
/** ISO date of last substantive edit. Defaults to datePublished. */
dateModified?: string;
}
export const ARTICLES: Article[] = [
{
slug: 'create-mcp-server-without-code',
title: 'How to create an MCP server without writing code (2026)',
description:
'Turn a plain-language description into a hosted, OAuth-protected MCP server — no SDK, no Docker, no TypeScript. What works, what the limits are, and when you still need code.',
tag: 'Guide',
datePublished: '2026-07-08',
},
{
slug: 'claude-desktop-mcp-setup',
title: 'Connect a custom MCP server to Claude Desktop (step by step)',
description:
'How to add a remote MCP server to Claude Desktop: the config snippet, the OAuth flow on first use, and a troubleshooting table for 401s, missing servers and invisible tools.',
tag: 'Setup',
datePublished: '2026-07-08',
},
{
slug: 'chatgpt-mcp-connector',
title: 'Add a custom MCP connector to ChatGPT (2026 guide)',
description:
'How to connect a custom MCP server to ChatGPT: setup flow, the HTTPS and OAuth requirements, and the plan limits nobody mentions — write-capable connectors need a Business, Enterprise or Edu workspace.',
tag: 'Setup',
datePublished: '2026-07-08',
},
{
slug: 'rest-api-to-mcp-server',
title: 'Wrap any REST API as an MCP server',
description:
'How to turn a REST API into an MCP server your AI clients can use: designing the tool surface (fewer, better tools beat 1:1 endpoint mapping), handling auth headers with encrypted secrets, and respecting upstream rate limits.',
tag: 'Guide',
datePublished: '2026-07-08',
},
{
slug: 'mcp-server-hosting-pricing',
title: 'MCP server hosting: pricing & options compared (2026)',
description:
'What hosting a remote MCP server actually costs in 2026 — Cloudflare Workers, Smithery, Composio, MintMCP and prompt-to-server generation, compared on price, effort and lock-in.',
tag: 'Comparison',
datePublished: '2026-07-08',
},
{
slug: 'composio-alternative',
title: 'Composio alternative for bespoke MCP tools',
description:
'Composio gives agents 1,000+ pre-built SaaS integrations. The gap is everything not in a catalog: your internal API, your database, your workflow. Here is the generate-your-own route — and where Composio clearly wins.',
tag: 'Alternative',
datePublished: '2026-07-08',
},
{
slug: 'smithery-alternative',
title: 'Smithery alternative: when you need hosting, not a directory',
description:
'Smithery is the best-known MCP registry — thousands of servers, CLI install, hosting for listed servers. The gap: it assumes the server exists. Here is the route when it does not, and where Smithery clearly wins.',
tag: 'Alternative',
datePublished: '2026-07-08',
},
{
slug: 'mcp-transports-explained',
title: 'MCP transports explained: stdio vs SSE vs Streamable HTTP',
description:
'What each MCP transport actually is, why the spec deprecated HTTP+SSE in favor of Streamable HTTP, and which transport to pick for local tools, remote servers and serverless deployments.',
tag: 'Explainer',
datePublished: '2026-07-08',
},
{
slug: 'mcp-oauth-plain-english',
title: 'OAuth 2.1 for MCP servers: PKCE, DCR and RFC 8707 in plain English',
description:
'The three RFCs behind MCP authorization — PKCE, Dynamic Client Registration and Resource Indicators — explained without jargon: what each one does, the full flow step by step, and what breaks when you skip one.',
tag: 'Explainer',
datePublished: '2026-07-08',
},
{
slug: 'mcp-server-security-checklist',
title: 'MCP server security checklist: secrets, isolation, auth',
description:
'A practical security checklist for production MCP servers: transport auth, secret storage and injection, container isolation, least-privilege tool design, safe logging, and the prompt-injection surface of tool descriptions.',
tag: 'Checklist',
datePublished: '2026-07-08',
},
{
slug: 'mcp-server-ohne-code-erstellen',
title: 'MCP Server ohne Code erstellen und hosten (2026)',
description:
'Wie Sie ohne Programmierkenntnisse einen eigenen MCP Server erstellen und hosten: Tool auf Deutsch oder Englisch beschreiben, generierten TypeScript-Server mit OAuth 2.1 deployen, Install-Snippet in Claude, Cursor oder ChatGPT einfügen.',
tag: 'Anleitung',
datePublished: '2026-07-08',
},
{
slug: 'host-mcp-server-with-oauth',
title: 'How to host a remote MCP server with OAuth (2026)',
description:
'Streamable HTTP, OAuth 2.1, PKCE and Resource Indicators — what it actually takes to put a remote MCP server in production, and the shortcuts.',
tag: 'Guide',
datePublished: '2026-05-31',
},
{
slug: 'hosted-mcp-platforms-compared',
title: 'Hosted MCP platforms compared: Cloudflare, Smithery, Composio & generating your own',
description:
'The MCP hosting landscape splits into four categories. Which one fits depends on whether you have a server already, need a catalog, or need bespoke logic.',
tag: 'Comparison',
datePublished: '2026-05-31',
},
{
slug: 'mintmcp-alternative',
title: 'MintMCP alternative: generate and host a custom MCP server',
description:
'MintMCP wraps an existing STDIO server into a remote one. If you do not have a server yet, here is the generate-from-a-prompt route — and where MintMCP still wins.',
tag: 'Alternative',
datePublished: '2026-05-31',
},
];
export function articleBySlug(slug: string): Article | undefined {
return ARTICLES.find((a) => a.slug === slug);
}
/** Articles newest-first, for the index page and the RSS feed. */
export function articlesNewestFirst(): Article[] {
return [...ARTICLES].sort((a, b) =>
(b.dateModified ?? b.datePublished).localeCompare(a.dateModified ?? a.datePublished),
);
}