Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/landing/src/docs/components/doc-nav.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import { docsNav } from '../nav';
const ICONS: Record<string, LucideIcon> = {
Overview: BookOpen,
'MCP server': Plug,
'Any client': Plug,
'Claude Code': Terminal,
Claude: MessageSquare,
'VS Code': Code,
Expand Down
105 changes: 105 additions & 0 deletions packages/landing/src/docs/content/connect.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
import type { DocPage } from '../types';
import { MCP_ENDPOINT_URL as ENDPOINT } from '@/lib/mcp-docs';
import { clientLinksMd } from './clients';

// Generic "connect any MCP client / agent" guide - vendor-neutral, for clients
// without a dedicated page. Endpoint + auth facts come from lib/mcp-docs.
export const connectDoc: DocPage = {
slug: 'connect',
title: 'Connect any MCP client',
lede: 'A vendor-neutral guide to wiring any MCP-capable agent to Agentage Memory. The same endpoint and OAuth flow work everywhere - no API key.',
sections: [
{
id: 'basics',
title: 'What you need',
blocks: [
{
type: 'p',
md: 'Any client that speaks the **Model Context Protocol** over **Streamable HTTP** can connect. Three facts are all it takes:',
},
{
type: 'p',
md: '- **Endpoint** - `https://memory.agentage.io/mcp`\n- **Transport** - Streamable HTTP\n- **Auth** - OAuth 2.1 (PKCE + dynamic client registration); sign in once in the browser, no API key.',
},
],
},
{
id: 'steps',
title: 'Connect in four steps',
blocks: [
{
type: 'steps',
steps: [
{
title: 'Add an HTTP MCP server',
body: 'In your client, add a new MCP server of type **http** pointing at the endpoint:',
code: ENDPOINT,
language: 'text',
},
{
title: 'Let it register',
body: 'On first connect the client runs **Dynamic Client Registration** automatically - nothing to pre-create or paste.',
},
{
title: 'Sign in',
body: 'The client opens a browser to **auth.agentage.io**. Approve access (magic-link, or GitHub / Google / Microsoft). No token ever touches the client config.',
},
{
title: 'Verify',
body: 'Ask the agent to write a note and read it back (`memory__write` then `memory__read`). The same account in every client shares one memory.',
},
],
},
],
},
{
id: 'config',
title: 'Generic config',
blocks: [
{
type: 'p',
md: 'Most clients accept a JSON MCP config. The shape is the same everywhere - only the top-level key differs (`mcpServers` for most clients, `servers` for VS Code):',
},
{
type: 'code',
language: 'json',
code: `{
"mcpServers": {
"agentage-memory": {
"type": "http",
"url": "${ENDPOINT}"
}
}
}`,
},
{
type: 'callout',
variant: 'info',
title: 'No API key field',
md: 'There is no key or token to set. Auth is interactive OAuth on first use; the client obtains and stores its own short-lived token.',
},
],
},
{
id: 'known-clients',
title: 'One-click for known clients',
blocks: [
{
type: 'p',
md: `Using one of these? The dedicated page has a one-click install plus the exact config:\n\n${clientLinksMd}`,
},
],
},
{
id: 'tools',
title: 'Tools & limits',
blocks: [
{
type: 'callout',
variant: 'info',
md: 'Once connected, every agent gets the same six `memory__*` tools (search / read / list / write / edit / delete). See the [MCP server](/docs/mcp-server) page for the full tool reference and limitations.',
},
],
},
],
};
4 changes: 2 additions & 2 deletions packages/landing/src/docs/nav.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ export const docsNav: DocNavGroup[] = [
],
},
{
// One item per client - connect them one by one.
// Generic guide first, then one item per client.
title: 'Connect your client',
items: clientNavItems,
items: [{ label: 'Any client', slug: 'connect' }, ...clientNavItems],
},
{
title: 'Reference',
Expand Down
5 changes: 3 additions & 2 deletions packages/landing/src/docs/registry.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import type { DocPage } from './types';
import { overviewDoc } from './content/overview';
import { mcpServerDoc } from './content/mcp-server';
import { connectDoc } from './content/connect';
import { clientDocs } from './content/clients';

// Every doc page, keyed by slug. Add a page = import it + add it here; the route
// and sidebar pick it up automatically.
const PAGES: DocPage[] = [overviewDoc, mcpServerDoc, ...clientDocs];
// and sitemap pick it up automatically (nav is wired in nav.ts).
const PAGES: DocPage[] = [overviewDoc, mcpServerDoc, connectDoc, ...clientDocs];

const BY_SLUG = new Map(PAGES.map((p) => [p.slug, p]));

Expand Down