{
  "title": "MCP vs Function Calling — Supporting Content Plan",
  "schemaVersion": "1.0",
  "researchFreeze": "2026-08-25",
  "protocolRevision": "2026-07-28",
  "publicationNote": "Planned briefs are roadmap inputs, not thin pages. Existing intents are marked published or reconciled to one canonical URL.",
  "count": 61,
  "records": [
    {
      "group": "Fundamentals",
      "title": "MCP Client vs Server vs Host",
      "url": "/mcp-client-vs-server-vs-host/",
      "searchIntent": "Understand protocol roles",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Role confusion causes architectural and security errors.",
      "packageSourceIds": [
        "MCP022",
        "MCP027"
      ],
      "sourceIds": [
        "S130",
        "S127"
      ],
      "priority": "P0",
      "publicationStatus": "published"
    },
    {
      "group": "Fundamentals",
      "title": "How Does an MCP Tool Call Work?",
      "url": "/how-mcp-tool-calls-work/",
      "searchIntent": "Follow one call end to end",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Supports diagrams, wire semantics, approvals, and error handling.",
      "packageSourceIds": [
        "MCP022",
        "MCP023"
      ],
      "sourceIds": [
        "S130",
        "S123"
      ],
      "priority": "P0",
      "publicationStatus": "planned"
    },
    {
      "group": "Fundamentals",
      "title": "What Is Function Calling in AI?",
      "url": "/what-is-function-calling/",
      "searchIntent": "Learn native model tool calling",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "A provider-neutral cornerstone can capture beginner intent without duplicating MCP definition.",
      "packageSourceIds": [
        "OAI001",
        "OAI002",
        "ANT001",
        "GOO001"
      ],
      "sourceIds": [
        "S010",
        "S169",
        "S011",
        "S177"
      ],
      "priority": "P0",
      "publicationStatus": "planned"
    },
    {
      "group": "Fundamentals",
      "title": "Tool Calling vs Function Calling",
      "url": "/tool-calling-vs-function-calling/",
      "searchIntent": "Clarify terminology",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Provider terminology differs; this page can remain focused on naming and execution.",
      "packageSourceIds": [
        "OAI002",
        "ANT001",
        "GOO001"
      ],
      "sourceIds": [
        "S169",
        "S011",
        "S177"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Fundamentals",
      "title": "What Is an MCP Tool?",
      "url": "/what-is-an-mcp-tool/",
      "searchIntent": "Understand tools specifically",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Tools deserve a dedicated version-aware treatment separate from servers.",
      "packageSourceIds": [
        "MCP004",
        "MCP011",
        "MCP015",
        "MCP018",
        "MCP023"
      ],
      "sourceIds": [
        "S028",
        "S158",
        "S045",
        "S161",
        "S123"
      ],
      "priority": "P0",
      "publicationStatus": "planned"
    },
    {
      "group": "Fundamentals",
      "title": "MCP Tools vs Resources vs Prompts",
      "url": "/mcp-tools-vs-resources-vs-prompts/",
      "searchIntent": "Choose the right primitive",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Prevents treating every data access or template as a tool.",
      "packageSourceIds": [
        "MCP023",
        "MCP024",
        "MCP025"
      ],
      "sourceIds": [
        "S123",
        "S124",
        "S125"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Fundamentals",
      "title": "Can MCP Work Without an LLM?",
      "url": "/mcp-without-llm/",
      "searchIntent": "Clarify protocol/model separation",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "High explanatory value and useful for programmatic clients/testing.",
      "packageSourceIds": [
        "MCP022",
        "MCP035"
      ],
      "sourceIds": [
        "S130",
        "S167"
      ],
      "priority": "P2",
      "publicationStatus": "planned"
    },
    {
      "group": "Fundamentals",
      "title": "Are MCP Servers Agents?",
      "url": "/are-mcp-servers-agents/",
      "searchIntent": "Separate servers from agents",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Directly corrects a common category error.",
      "packageSourceIds": [
        "MCP022",
        "MCP023"
      ],
      "sourceIds": [
        "S130",
        "S123"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Comparisons",
      "title": "MCP vs API",
      "url": "/mcp-vs-api/",
      "searchIntent": "Compare MCP with application APIs",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "High-intent query requiring layer explanation.",
      "packageSourceIds": [
        "MCP022",
        "STD002",
        "STD003"
      ],
      "sourceIds": [
        "S130",
        "S179",
        "S180"
      ],
      "priority": "P0",
      "publicationStatus": "published"
    },
    {
      "group": "Comparisons",
      "title": "MCP vs REST API",
      "url": "/mcp-vs-rest-api/",
      "searchIntent": "Understand whether MCP replaces REST",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Distinct REST-focused architecture examples justify a narrow page.",
      "packageSourceIds": [
        "MCP022",
        "STD002",
        "STD003"
      ],
      "sourceIds": [
        "S130",
        "S179",
        "S180"
      ],
      "priority": "P1",
      "publicationStatus": "reconciled-to-existing-canonical",
      "canonicalTarget": "/mcp-vs-api/"
    },
    {
      "group": "Comparisons",
      "title": "MCP vs OpenAPI",
      "url": "/mcp-vs-openapi/",
      "searchIntent": "Compare protocol with API description",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Bridges and schema conversion create a substantive standalone topic.",
      "packageSourceIds": [
        "STD002",
        "STD003",
        "MCP023"
      ],
      "sourceIds": [
        "S179",
        "S180",
        "S123"
      ],
      "priority": "P0",
      "publicationStatus": "planned"
    },
    {
      "group": "Comparisons",
      "title": "MCP vs Plugins",
      "url": "/mcp-vs-plugins/",
      "searchIntent": "Compare MCP with vendor plugin systems",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Historical and architectural differences deserve focused coverage.",
      "packageSourceIds": [
        "MCP001",
        "MCP022"
      ],
      "sourceIds": [
        "S021",
        "S130"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Comparisons",
      "title": "MCP vs Agents",
      "url": "/mcp-vs-agents/",
      "searchIntent": "Compare capability protocol with agent orchestration",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Captures agent/protocol confusion without duplicating function-calling page.",
      "packageSourceIds": [
        "MCP022",
        "MCP032"
      ],
      "sourceIds": [
        "S130",
        "S165"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Comparisons",
      "title": "MCP vs A2A",
      "url": "/mcp-vs-a2a/",
      "searchIntent": "Compare capability access with agent communication",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Only publish after live-checking the contemporary A2A specification.",
      "packageSourceIds": [],
      "sourceIds": [
        "S157"
      ],
      "priority": "P2",
      "publicationStatus": "published",
      "publicationGuard": "Satisfied on 2026-08-25 with the first-party A2A 1.0 specification frozen as S157."
    },
    {
      "group": "Comparisons",
      "title": "MCP vs Language Server Protocol",
      "url": "/mcp-vs-lsp/",
      "searchIntent": "Understand LSP influence and limits",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Historical influence plus trust/execution differences form a strong standalone page.",
      "packageSourceIds": [
        "MCP001",
        "MCP003"
      ],
      "sourceIds": [
        "S021",
        "S025"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Comparisons",
      "title": "MCP vs GraphQL",
      "url": "/mcp-vs-graphql/",
      "searchIntent": "Compare abstraction levels",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Useful for developers deciding whether MCP replaces an API query layer.",
      "packageSourceIds": [
        "MCP022",
        "STD002"
      ],
      "sourceIds": [
        "S130",
        "S179"
      ],
      "priority": "P2",
      "publicationStatus": "planned"
    },
    {
      "group": "Comparisons",
      "title": "MCP vs LangChain Tools",
      "url": "/mcp-vs-langchain-tools/",
      "searchIntent": "Compare protocol with framework abstraction",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Framework-specific implementation and adapters justify separate coverage.",
      "packageSourceIds": [],
      "sourceIds": [],
      "priority": "P2",
      "publicationStatus": "planned"
    },
    {
      "group": "Comparisons",
      "title": "MCP vs OpenAI Tools",
      "url": "/mcp-vs-openai-tools/",
      "searchIntent": "Understand OpenAI functions, hosted tools, and MCP",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Provider-specific schema and execution distinctions can target strong intent.",
      "packageSourceIds": [
        "OAI002",
        "OAI005",
        "OAI006"
      ],
      "sourceIds": [
        "S169",
        "S171",
        "S090"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Comparisons",
      "title": "MCP vs Anthropic Tool Use",
      "url": "/mcp-vs-anthropic-tool-use/",
      "searchIntent": "Understand Claude tools and MCP",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Covers client/server tools, MCP connector, and translation.",
      "packageSourceIds": [
        "ANT001",
        "ANT002",
        "ANT004"
      ],
      "sourceIds": [
        "S011",
        "S173",
        "S175"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Comparisons",
      "title": "MCP vs Gemini Function Calling",
      "url": "/mcp-vs-gemini-function-calling/",
      "searchIntent": "Understand Gemini and MCP",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Provider-specific thought-signature and MCP behavior justify focused coverage.",
      "packageSourceIds": [
        "GOO001",
        "GOO002"
      ],
      "sourceIds": [
        "S177",
        "S178"
      ],
      "priority": "P2",
      "publicationStatus": "planned"
    },
    {
      "group": "Architecture and protocol",
      "title": "Local vs Remote MCP Servers",
      "url": "/local-vs-remote-mcp/",
      "searchIntent": "Choose deployment model",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Security, auth, latency, and distribution differ materially.",
      "packageSourceIds": [
        "MCP026",
        "MCP035"
      ],
      "sourceIds": [
        "S057",
        "S167"
      ],
      "priority": "P0",
      "publicationStatus": "reconciled-to-existing-canonical",
      "canonicalTarget": "/mcp-transports/"
    },
    {
      "group": "Architecture and protocol",
      "title": "MCP stdio Transport",
      "url": "/mcp-stdio-transport/",
      "searchIntent": "Understand local subprocess MCP",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Logging, framing, process lifecycle, and package trust justify a dedicated page.",
      "packageSourceIds": [
        "MCP007",
        "MCP026"
      ],
      "sourceIds": [
        "S027",
        "S057"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Architecture and protocol",
      "title": "MCP Streamable HTTP",
      "url": "/mcp-streamable-http/",
      "searchIntent": "Understand current HTTP transport",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Transport history and current semantics are high-intent and frequently misstated.",
      "packageSourceIds": [
        "MCP008",
        "MCP026",
        "MCP028"
      ],
      "sourceIds": [
        "S036",
        "S057",
        "S055"
      ],
      "priority": "P0",
      "publicationStatus": "planned"
    },
    {
      "group": "Architecture and protocol",
      "title": "What Happened to HTTP+SSE in MCP?",
      "url": "/mcp-http-sse-history/",
      "searchIntent": "Understand transport replacement",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "A historical direct-answer page can resolve outdated tutorials.",
      "packageSourceIds": [
        "MCP007",
        "MCP008",
        "MCP028"
      ],
      "sourceIds": [
        "S027",
        "S036",
        "S055"
      ],
      "priority": "P1",
      "publicationStatus": "reconciled-to-existing-canonical",
      "canonicalTarget": "/mcp-transports/"
    },
    {
      "group": "Architecture and protocol",
      "title": "Is MCP Stateless?",
      "url": "/is-mcp-stateless/",
      "searchIntent": "Understand current state model",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Current-vs-legacy semantics and explicit handles justify standalone coverage.",
      "packageSourceIds": [
        "MCP020",
        "MCP021",
        "MCP028"
      ],
      "sourceIds": [
        "S058",
        "S053",
        "S055"
      ],
      "priority": "P0",
      "publicationStatus": "reconciled-to-existing-canonical",
      "canonicalTarget": "/mcp-stateful-to-stateless/"
    },
    {
      "group": "Architecture and protocol",
      "title": "MCP Protocol Versions",
      "url": "/mcp-protocol-versions/",
      "searchIntent": "Compare dated revisions",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Version-frozen tables serve implementation and migration intent.",
      "packageSourceIds": [
        "MCP002",
        "MCP008",
        "MCP012",
        "MCP016",
        "MCP028"
      ],
      "sourceIds": [
        "S024",
        "S036",
        "S043",
        "S049",
        "S055"
      ],
      "priority": "P0",
      "publicationStatus": "planned"
    },
    {
      "group": "Architecture and protocol",
      "title": "MCP Backward Compatibility",
      "url": "/mcp-backward-compatibility/",
      "searchIntent": "Plan cross-version clients and servers",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "SDK era handling, negotiation, and breaking changes need detailed treatment.",
      "packageSourceIds": [
        "MCP028",
        "MCP034",
        "MCP036"
      ],
      "sourceIds": [
        "S055",
        "S166",
        "S168"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Architecture and protocol",
      "title": "MCP Server Discovery",
      "url": "/mcp-server-discovery/",
      "searchIntent": "Understand server/discover and metadata",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Current discovery architecture is distinct from registry discovery.",
      "packageSourceIds": [
        "MCP027",
        "MCP028"
      ],
      "sourceIds": [
        "S127",
        "S055"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Architecture and protocol",
      "title": "MCP Tool Discovery and Tool Search",
      "url": "/mcp-tool-discovery/",
      "searchIntent": "Scale large tool catalogs",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Combines MCP list semantics with provider deferred loading without conflating them.",
      "packageSourceIds": [
        "MCP023",
        "OAI002",
        "ANT003"
      ],
      "sourceIds": [
        "S123",
        "S169",
        "S174"
      ],
      "priority": "P0",
      "publicationStatus": "planned"
    },
    {
      "group": "Architecture and protocol",
      "title": "MCP Tool Schema",
      "url": "/mcp-tool-schema/",
      "searchIntent": "Implement and validate tool definitions",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "JSON Schema dialect, outputSchema, annotations, and provider conversion justify technical depth.",
      "packageSourceIds": [
        "MCP023",
        "STD004"
      ],
      "sourceIds": [
        "S123",
        "S181"
      ],
      "priority": "P0",
      "publicationStatus": "planned"
    },
    {
      "group": "Architecture and protocol",
      "title": "MCP Structured Tool Output",
      "url": "/mcp-structured-tool-output/",
      "searchIntent": "Understand structuredContent and outputSchema",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Frequently confused with model structured outputs.",
      "packageSourceIds": [
        "MCP012",
        "MCP015",
        "MCP023",
        "OAI007"
      ],
      "sourceIds": [
        "S043",
        "S045",
        "S123",
        "S172"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Architecture and protocol",
      "title": "MCP Multi Round-Trip Requests",
      "url": "/mcp-multi-round-trip-requests/",
      "searchIntent": "Understand current input-required flow",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Major 2026 architecture change with agent/elicitation relevance.",
      "packageSourceIds": [
        "MCP020",
        "MCP028"
      ],
      "sourceIds": [
        "S058",
        "S055"
      ],
      "priority": "P2",
      "publicationStatus": "planned"
    },
    {
      "group": "Architecture and protocol",
      "title": "MCP Tasks",
      "url": "/mcp-tasks/",
      "searchIntent": "Understand long-running work",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Tasks moved from experimental core to extension and require version control.",
      "packageSourceIds": [
        "MCP016",
        "MCP032"
      ],
      "sourceIds": [
        "S049",
        "S165"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Architecture and protocol",
      "title": "MCP Apps",
      "url": "/mcp-apps/",
      "searchIntent": "Understand server-provided UI",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "UI extension architecture and security are distinct search intent.",
      "packageSourceIds": [
        "MCP031"
      ],
      "sourceIds": [
        "S059"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Security and governance",
      "title": "MCP Server Security",
      "url": "/mcp-server-security/",
      "searchIntent": "Evaluate security comprehensively",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "High backlink and enterprise value; requires layered, current evidence.",
      "packageSourceIds": [
        "MCP029",
        "MCP033"
      ],
      "sourceIds": [
        "S163",
        "S134"
      ],
      "priority": "P0",
      "publicationStatus": "reconciled-to-existing-canonical",
      "canonicalTarget": "/mcp-security/"
    },
    {
      "group": "Security and governance",
      "title": "MCP OAuth and Authorization",
      "url": "/mcp-oauth-authorization/",
      "searchIntent": "Implement remote delegated access",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Versioned OAuth evolution and resource-server semantics warrant a cornerstone.",
      "packageSourceIds": [
        "MCP010",
        "MCP014",
        "MCP028"
      ],
      "sourceIds": [
        "S037",
        "S044",
        "S055"
      ],
      "priority": "P0",
      "publicationStatus": "planned"
    },
    {
      "group": "Security and governance",
      "title": "MCP Prompt Injection",
      "url": "/mcp-prompt-injection/",
      "searchIntent": "Understand model/content attack paths",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Separates protocol transport from model-level injection.",
      "packageSourceIds": [
        "MCP029",
        "MCP033",
        "OAI001"
      ],
      "sourceIds": [
        "S163",
        "S134",
        "S010"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Security and governance",
      "title": "MCP Tool Poisoning",
      "url": "/mcp-tool-poisoning/",
      "searchIntent": "Understand malicious tool metadata",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Tool descriptions and mutable catalogs are security-relevant.",
      "packageSourceIds": [
        "MCP029",
        "MCP033"
      ],
      "sourceIds": [
        "S163",
        "S134"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Security and governance",
      "title": "MCP Supply-Chain Security",
      "url": "/mcp-supply-chain-security/",
      "searchIntent": "Assess packages and server provenance",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Local servers create package/binary trust questions not solved by protocol auth.",
      "packageSourceIds": [
        "MCP033"
      ],
      "sourceIds": [
        "S134"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Security and governance",
      "title": "MCP Tool Annotations",
      "url": "/mcp-tool-annotations/",
      "searchIntent": "Use risk hints correctly",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "The official risk-vocabulary analysis supports a focused myth-correcting page.",
      "packageSourceIds": [
        "MCP011",
        "MCP029"
      ],
      "sourceIds": [
        "S158",
        "S163"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Security and governance",
      "title": "MCP Gateways and Policy Enforcement",
      "url": "/mcp-gateways-policy/",
      "searchIntent": "Design enterprise control points",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Server proliferation creates catalogs, allowlists, routing, and audit needs.",
      "packageSourceIds": [
        "MCP027",
        "MCP033"
      ],
      "sourceIds": [
        "S127",
        "S134"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Security and governance",
      "title": "MCP Token Passthrough and Confused Deputy Risks",
      "url": "/mcp-token-security/",
      "searchIntent": "Understand remote token boundaries",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Security-specific protocol requirements justify precise coverage.",
      "packageSourceIds": [
        "MCP014",
        "MCP033"
      ],
      "sourceIds": [
        "S044",
        "S134"
      ],
      "priority": "P2",
      "publicationStatus": "planned"
    },
    {
      "group": "Security and governance",
      "title": "MCP Server Approval and Allowlists",
      "url": "/mcp-server-approval-allowlists/",
      "searchIntent": "Govern approved integrations",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Enterprise reader intent differs from OAuth implementation.",
      "packageSourceIds": [
        "MCP033"
      ],
      "sourceIds": [
        "S134"
      ],
      "priority": "P2",
      "publicationStatus": "planned"
    },
    {
      "group": "Production engineering",
      "title": "MCP Performance and Latency",
      "url": "/mcp-performance-latency/",
      "searchIntent": "Measure real overhead",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Counters weak universal benchmarks and provides methodology.",
      "packageSourceIds": [
        "MCP026",
        "OAI006"
      ],
      "sourceIds": [
        "S057",
        "S090"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Production engineering",
      "title": "MCP Context Window and Tool Catalog Cost",
      "url": "/mcp-tool-context-cost/",
      "searchIntent": "Reduce schema/token overhead",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Large catalogs and deferred loading are a growing implementation concern.",
      "packageSourceIds": [
        "MCP023",
        "OAI002",
        "ANT003"
      ],
      "sourceIds": [
        "S123",
        "S169",
        "S174"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Production engineering",
      "title": "MCP Server Production Checklist",
      "url": "/production-mcp-server-checklist/",
      "searchIntent": "Move from demo to production",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Auth, isolation, observability, migrations, and support create standalone practical intent.",
      "packageSourceIds": [
        "MCP033",
        "MCP028"
      ],
      "sourceIds": [
        "S134",
        "S055"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Production engineering",
      "title": "MCP Observability",
      "url": "/mcp-observability/",
      "searchIntent": "Monitor calls, latency, errors, and auth",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Clarifies protocol-defined data versus platform instrumentation.",
      "packageSourceIds": [
        "MCP022",
        "MCP026"
      ],
      "sourceIds": [
        "S130",
        "S057"
      ],
      "priority": "P2",
      "publicationStatus": "planned"
    },
    {
      "group": "Production engineering",
      "title": "MCP Error Handling",
      "url": "/mcp-error-handling/",
      "searchIntent": "Implement errors and retries",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "JSON-RPC and MCP-specific errors require precise technical treatment.",
      "packageSourceIds": [
        "STD001",
        "MCP022"
      ],
      "sourceIds": [
        "S001",
        "S130"
      ],
      "priority": "P2",
      "publicationStatus": "planned"
    },
    {
      "group": "Production engineering",
      "title": "MCP Tool Filtering",
      "url": "/mcp-tool-filtering/",
      "searchIntent": "Expose only relevant and authorized tools",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Official SDK filtering and context-cost concerns justify a focused guide.",
      "packageSourceIds": [
        "OAI006",
        "MCP023"
      ],
      "sourceIds": [
        "S090",
        "S123"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Production engineering",
      "title": "MCP Schema Compatibility Testing",
      "url": "/mcp-schema-compatibility-testing/",
      "searchIntent": "Test across hosts/providers",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "A concrete validation framework can earn developer links.",
      "packageSourceIds": [
        "MCP023",
        "OAI006",
        "ANT001",
        "GOO001"
      ],
      "sourceIds": [
        "S123",
        "S090",
        "S011",
        "S177"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Production engineering",
      "title": "MCP Interoperability Testing",
      "url": "/mcp-interoperability-testing/",
      "searchIntent": "Verify one server across hosts",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Compatibility does not imply identical behavior; test methodology is valuable.",
      "packageSourceIds": [
        "MCP034",
        "MCP036"
      ],
      "sourceIds": [
        "S166",
        "S168"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Production engineering",
      "title": "MCP Server Versioning and Deprecation",
      "url": "/mcp-server-versioning-deprecation/",
      "searchIntent": "Manage server evolution",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Protocol revision and server API evolution are separate concerns.",
      "packageSourceIds": [
        "MCP028",
        "MCP034",
        "MCP036"
      ],
      "sourceIds": [
        "S055",
        "S166",
        "S168"
      ],
      "priority": "P2",
      "publicationStatus": "planned"
    },
    {
      "group": "History and versions",
      "title": "History of AI Function Calling",
      "url": "/history-of-ai-function-calling/",
      "searchIntent": "Trace structured model tool use",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Creates a pre-MCP historical foundation and captures broad search intent.",
      "packageSourceIds": [
        "OAI001",
        "ANT001",
        "GOO001"
      ],
      "sourceIds": [
        "S010",
        "S011",
        "S177"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "History and versions",
      "title": "OpenAI Function Calling History",
      "url": "/openai-function-calling-history/",
      "searchIntent": "Trace OpenAI function/tool evolution",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Exact releases, hosted tools, tool search, and MCP support justify a source-controlled page.",
      "packageSourceIds": [
        "OAI001",
        "OAI002",
        "OAI003",
        "OAI004",
        "OAI005",
        "OAI006",
        "OAI007"
      ],
      "sourceIds": [
        "S010",
        "S169",
        "S170",
        "S089",
        "S171",
        "S090",
        "S172"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "History and versions",
      "title": "MCP Transport History",
      "url": "/mcp-transport-history/",
      "searchIntent": "Trace stdio, HTTP+SSE, and Streamable HTTP",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Design reversal and 2026 stateless changes provide durable information gain.",
      "packageSourceIds": [
        "MCP007",
        "MCP008",
        "MCP026",
        "MCP028"
      ],
      "sourceIds": [
        "S027",
        "S036",
        "S057",
        "S055"
      ],
      "priority": "P1",
      "publicationStatus": "reconciled-to-existing-canonical",
      "canonicalTarget": "/mcp-transports/"
    },
    {
      "group": "History and versions",
      "title": "MCP Authorization History",
      "url": "/mcp-authorization-history/",
      "searchIntent": "Trace OAuth evolution",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Shows how remote infrastructure changed the protocol.",
      "packageSourceIds": [
        "MCP010",
        "MCP014",
        "MCP016",
        "MCP028"
      ],
      "sourceIds": [
        "S037",
        "S044",
        "S049",
        "S055"
      ],
      "priority": "P2",
      "publicationStatus": "planned"
    },
    {
      "group": "History and versions",
      "title": "MCP 2026-07-28 Explained",
      "url": "/mcp-2026-07-28/",
      "searchIntent": "Understand the major current revision",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "A version-specific reference should not be buried in general guides.",
      "packageSourceIds": [
        "MCP020",
        "MCP021",
        "MCP028"
      ],
      "sourceIds": [
        "S058",
        "S053",
        "S055"
      ],
      "priority": "P0",
      "publicationStatus": "published"
    },
    {
      "group": "Production engineering",
      "title": "Building an MCP-to-Function-Calling Bridge",
      "url": "/mcp-function-calling-bridge/",
      "searchIntent": "Implement the adapter layer",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Schema conversion, name mapping, approvals, errors, and result translation form a concrete implementation topic.",
      "packageSourceIds": [
        "MCP023",
        "OAI002",
        "OAI006",
        "ANT001",
        "GOO001"
      ],
      "sourceIds": [
        "S123",
        "S169",
        "S090",
        "S011",
        "S177"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Architecture and protocol",
      "title": "MCP Tool Names, Prefixes, and Namespaces",
      "url": "/mcp-tool-namespaces/",
      "searchIntent": "Avoid tool-name collisions",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Multi-server hosts must handle naming guidance, provider limits, prefixes, and collisions.",
      "packageSourceIds": [
        "MCP018",
        "MCP023",
        "OAI006"
      ],
      "sourceIds": [
        "S161",
        "S123",
        "S090"
      ],
      "priority": "P2",
      "publicationStatus": "planned"
    },
    {
      "group": "Security and governance",
      "title": "MCP Tool Approval and User Consent",
      "url": "/mcp-tool-approval-user-consent/",
      "searchIntent": "Design confirmation and consent UX",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Approval responsibility is distributed across host policy, server trust, annotations, and action risk.",
      "packageSourceIds": [
        "MCP023",
        "MCP029",
        "MCP033",
        "OAI001"
      ],
      "sourceIds": [
        "S123",
        "S163",
        "S134",
        "S010"
      ],
      "priority": "P1",
      "publicationStatus": "planned"
    },
    {
      "group": "Comparisons",
      "title": "MCP vs Provider-Hosted Tools",
      "url": "/mcp-vs-provider-hosted-tools/",
      "searchIntent": "Compare MCP with built-in and hosted tool execution",
      "parentPage": "/mcp-vs-function-calling/",
      "justification": "Hosted execution breaks the oversimplified claim that application code always runs function calls.",
      "packageSourceIds": [
        "OAI005",
        "OAI006",
        "ANT001"
      ],
      "sourceIds": [
        "S171",
        "S090",
        "S011"
      ],
      "priority": "P2",
      "publicationStatus": "planned"
    }
  ]
}