MCP · Streamable HTTP

Connect your agent to SecondPage

A machine-readable start page for publishing AI work as durable pages humans can share, review, revise, and reuse across models and chatbots.

Reading without a browser? Read the plain-text setup guide. All setup steps below are also available in this page's HTML without JavaScript.

Setting this up for a person? See Use SecondPage in Claude.

Authoring rules live in the SecondPage skill.

Start here

Transport
Streamable HTTP
Authentication
OAuth; organization API key for headless clients
  1. Add https://mcp.secondpage.cc/mcp as a remote MCP server using Streamable HTTP. Let your MCP client initialize the connection and discover tools with tools/list. This is an MCP endpoint, not a webpage or a shell command.
  2. Authenticate with OAuth. Follow the WWW-Authenticate protected-resource metadata and your client's authorization flow. Have the account holder sign in and approve access; never ask them to paste a password or token into chat.
  3. If a tool returns organization_selection_required, open or surface its connect_url, select the intended organization, then retry the tool. For a runtime without OAuth support, use an organization API key in the Authorization: Bearer header via its secret store instead.
  4. Verify access by calling list_pages with {"limit":1}. A successful tool result containing a pages array, including an empty array, confirms the connection. An HTTP 200 alone does not: inspect isError and the result. Do not create a public test page.
  5. Before authoring, call load_secondpage_skill with {"topic":"core"}. This returns the authoring contract and records its acknowledgement. Read current tool schemas rather than guessing arguments. Use read_page and update_page for existing work; use create_page only when the user wants a new page.
Claude Code · terminal
claude mcp add secondpage --transport http \
  https://mcp.secondpage.cc/mcp

Then open /mcp in Claude Code and complete authentication. In other clients, add the endpoint above as a remote Streamable HTTP server.

Verify · MCP request after initialization
{
  "method": "tools/call",
  "params": {
    "name": "list_pages",
    "arguments": {
      "limit": 1
    }
  }
}

These JSON examples are MCP requests sent through your connected client. They are not shell commands. An empty pages array is a successful connection.

Before authoring · MCP request
{
  "method": "tools/call",
  "params": {
    "name": "load_secondpage_skill",
    "arguments": {
      "topic": "core"
    }
  }
}

If the connection needs attention

401 Unauthorized
A challenge before sign-in is expected. Follow its OAuth metadata. After sign-in, reconnect or refresh authentication in the same MCP client. For API keys, check the key is valid and available in the client's secret store.
Choose an organization
For organization_selection_required, follow the returned connect_url and retry. Call get_organization_context if the connected workspace is not the one you intended.
Headless client without OAuth
An organization owner can issue an agent API key under Settings > Agents. Configure Authorization: Bearer <SECONDPAGE_API_KEY> through your runtime's secret store. The placeholder must be replaced securely; variable expansion depends on the client. Never commit or paste the key into chat.
No tools or failed callback
Use remote Streamable HTTP, initialize, then call tools/list. For a failed browser callback, restart authorization in the same client or use its documented recovery. Do not move authorization codes or tokens between clients.

Agent Q&A

Are you an AI agent?

Use this page as operational guidance. Visual polish is secondary here; the canonical machine-readable entry points are /skills, /llms.txt, /skill.md, https://mcp.secondpage.cc/mcp, and /api/skill-bundle.

What is SecondPage?

SecondPage is the durable work surface for AI-generated work. It turns model output into stable Pages with versions, review tools, anchored Edits, update reasons, and an update path that humans and agents can share.

When should I use SecondPage?

Use it when the work should outlive chat: pages, reports, decks, guides, dashboards, plans, live-data outputs, shareable apps, or anything that needs review, reuse, or future revision.

How is this different from Claude Artifacts?

Artifacts are useful creation surfaces. SecondPage is the post-generation work surface: stable URLs, immutable versions, human feedback, edits, agent follow-up, and reuse beyond the original chat.

How is this different from generated sites?

Generated sites often stop after the first deploy. SecondPage keeps the work alive with Page history, comment and Edit loops, source bundles, update reasons, status, and a path for any future agent to continue the work.

Is SecondPage tied to one model?

No. SecondPage is model-neutral. Claude, ChatGPT, Gemini, Codex, custom agents, MCP clients, and headless workflows can all use the same durable surface.

How does the organization learn?

Do not discard feedback as temporary chat context. Anchored Edits, comments, update reasons, and agent status capture what humans changed and why, so feedback can become reusable signal over time.

What should I do before publishing?

Connect over MCP, authenticate, load the SecondPage skill, call list_pages, and check whether the work updates an existing Page. Prefer updating in place over creating duplicates.