{
  "packageTitle": "MCP vs Function Calling: Architecture, Differences, and When to Use Each",
  "researchFreeze": "2026-08-25",
  "protocolRevision": "2026-07-28",
  "canonicalPage": "/mcp-vs-function-calling/",
  "status": "integrated-with-five-disclosed-archive-gaps",
  "suppliedArtifactCount": 29,
  "expectedArtifactCount": 39,
  "recoveredArtifactCount": 6,
  "archiveGapCount": 5,
  "archiveGaps": [
    "myth_vs_evidence.csv",
    "myth_vs_evidence.json",
    "source_bibliography.md",
    "visual_specifications.csv",
    "visual_specifications.json"
  ],
  "recoveredArtifacts": [
    "comparison_history_timeline.csv",
    "comparison_history_timeline.json",
    "provider_tool_schema_matrix.csv",
    "provider_tool_schema_matrix.json",
    "source_usage_audit.json",
    "supporting_content_cluster.json"
  ],
  "note": "The five missing archive formats are represented by clearly labeled normalized derivatives where semantic source material exists; no unverifiable checksum match is claimed.",
  "artifacts": [
    {
      "expectedFile": "README.md",
      "actualFile": "README(20260824-183230).md",
      "sha256": "d34e8b4448593d4ce551ed29a4296054fc627712de027d1eaa7c4544a5243bdf",
      "status": "supplied-under-verified-alias",
      "use": "Editorial synthesis, package controls, reproducibility, or quality validation."
    },
    {
      "expectedFile": "article.html",
      "actualFile": "article.html",
      "sha256": "eb0314df01731793aa3693c8deacad65fa0f8fa4945670825122c4b8006350ec",
      "status": "supplied-byte-exact",
      "use": "Canonical cornerstone source and derivative parity check."
    },
    {
      "expectedFile": "article.md",
      "actualFile": "article (1).md",
      "sha256": "9af6dc238d33c18e38a9585dfb8090d9662b7a43f4affc5a8be008d1a09bd038",
      "status": "supplied-under-verified-alias",
      "use": "Canonical cornerstone source and derivative parity check."
    },
    {
      "expectedFile": "claim_register.csv",
      "actualFile": "claim_register (1).csv",
      "sha256": "b3e27878418cf3091ab9842094e864c309eef14deede7e7bac848b5c5350a386",
      "status": "supplied-under-verified-alias",
      "use": "Versioned assertion dataset and public normalized claim endpoint."
    },
    {
      "expectedFile": "claim_register.json",
      "actualFile": "claim_register (1).json",
      "sha256": "bd1397ba8a7499c0f6e29a5ca5ff28e22f3fa238098ce1192fd82d38ece73c28",
      "status": "supplied-under-verified-alias",
      "use": "Versioned assertion dataset and public normalized claim endpoint."
    },
    {
      "expectedFile": "comparison_history_timeline.csv",
      "actualFile": "comparison_history_timeline.csv",
      "sha256": "03fe037255a0066bb7d59fd4532774f394255488c17461b8057985fdd4ee57d8",
      "status": "recovered-byte-exact",
      "use": "Version-history validation, article chronology, and downloadable dataset."
    },
    {
      "expectedFile": "comparison_history_timeline.json",
      "actualFile": "comparison_history_timeline.json",
      "sha256": "2926f90928f6433c73cf638ce8ea9e62aa5ffc08d185a6eda08721a56bd0e9cd",
      "status": "recovered-byte-exact",
      "use": "Version-history validation, article chronology, and downloadable dataset."
    },
    {
      "expectedFile": "comparison_history_timeline.md",
      "actualFile": "comparison_history_timeline.md",
      "sha256": "2c947edf9ec7f8b2497f463f1bb52743d5b977caf70ca39e9f2083b51e3ec2d8",
      "status": "supplied-byte-exact",
      "use": "Version-history validation, article chronology, and downloadable dataset."
    },
    {
      "expectedFile": "comparison_matrix.csv",
      "actualFile": "comparison_matrix.csv",
      "sha256": "3b15a87c7860d128104aaedd0843ac1a36836e06a4866553669e88b54c897e9a",
      "status": "supplied-byte-exact",
      "use": "Visible 29-dimension comparison table and downloadable dataset."
    },
    {
      "expectedFile": "comparison_matrix.json",
      "actualFile": "comparison_matrix.json",
      "sha256": "96984870b60dd646776fcd6236c921a0bc683cf6623fe94fa2ddfad075c96f60",
      "status": "supplied-byte-exact",
      "use": "Visible 29-dimension comparison table and downloadable dataset."
    },
    {
      "expectedFile": "comparison_matrix.md",
      "actualFile": "comparison_matrix.md",
      "sha256": "3e96ad5ddf66810bb8b9766f813cf50d884ff99dc60aa421abfd7b6d3b4f7bd1",
      "status": "supplied-byte-exact",
      "use": "Visible 29-dimension comparison table and downloadable dataset."
    },
    {
      "expectedFile": "decision_framework.md",
      "actualFile": "decision_framework.md",
      "sha256": "022d2f01e18be0d51625887862f3e76471b95f90e6f10df393836b445be49422",
      "status": "supplied-byte-exact",
      "use": "Direct/MCP/hybrid decision guidance and decision visual."
    },
    {
      "expectedFile": "direct_answer_introduction.md",
      "actualFile": "direct_answer_introduction (1).md",
      "sha256": "86fc927d84049a9678db31fb5bf523de7db759d01db0d7e5efc4584718f6df73",
      "status": "supplied-under-verified-alias",
      "use": "Editorial synthesis, package controls, reproducibility, or quality validation."
    },
    {
      "expectedFile": "evidence_manifest.csv",
      "actualFile": "evidence_manifest (2).csv",
      "sha256": "0a52cf4741a151b9b829ea18b80246f7a66ab8d2789c0879f2bc28c591699036",
      "status": "supplied-under-verified-alias",
      "use": "Source merge, canonical citation map, and evidence validation."
    },
    {
      "expectedFile": "evidence_manifest.json",
      "actualFile": "evidence_manifest (2).json",
      "sha256": "c48669fdb37d5012ea166845b41bfe7aa8e4e42876e28b1736e4c0372941c630",
      "status": "supplied-under-verified-alias",
      "use": "Source merge, canonical citation map, and evidence validation."
    },
    {
      "expectedFile": "executive_summary.md",
      "actualFile": "executive_summary (1).md",
      "sha256": "b5410bdd396ec9c71ddd812f8704618e0537fbb2f02f7c5d11dccd37fe456007",
      "status": "supplied-under-verified-alias",
      "use": "Editorial synthesis, package controls, reproducibility, or quality validation."
    },
    {
      "expectedFile": "faq.md",
      "actualFile": "faq.md",
      "sha256": "bcb45c60054c194b0e91846057308d0be965f77b9fe64f3a689774e08cede639",
      "status": "supplied-byte-exact",
      "use": "Fifty visible reader questions and answers."
    },
    {
      "expectedFile": "methodology_and_update_policy.md",
      "actualFile": "methodology_and_update_policy (1).md",
      "sha256": "4c4b625dc2741469200423d66d8d3d295032751cce9c48cd8dc8168ad11fc9cd",
      "status": "supplied-under-verified-alias",
      "use": "Editorial evidence hierarchy, durability classes, and review policy."
    },
    {
      "expectedFile": "myth_vs_evidence.csv",
      "actualFile": null,
      "sha256": "f0791847c751a2618aa6afe74b2c9e9fb8a02469b1394a29fe9595b6ddd44db6",
      "status": "archive-gap",
      "use": "Myth-correction section and normalized public dataset."
    },
    {
      "expectedFile": "myth_vs_evidence.json",
      "actualFile": null,
      "sha256": "151b57c14d70f1d9f31028321307041e7e7a52e06d8de3ea4a6708a312607b7d",
      "status": "archive-gap",
      "use": "Myth-correction section and normalized public dataset."
    },
    {
      "expectedFile": "myth_vs_evidence.md",
      "actualFile": "myth_vs_evidence.md",
      "sha256": "0cdfacbb2c61b535c2b49dc4ed20110ba686a0ef4cae8131270b3e307c17908b",
      "status": "supplied-byte-exact",
      "use": "Myth-correction section and normalized public dataset."
    },
    {
      "expectedFile": "production_architecture_patterns.md",
      "actualFile": "production_architecture_patterns.md",
      "sha256": "48c07e693c31c5402627c55333140b9e26237b40b231de87167c6e1477add5ba",
      "status": "supplied-byte-exact",
      "use": "Production-pattern coverage and operational controls."
    },
    {
      "expectedFile": "provider_tool_schema_matrix.csv",
      "actualFile": "provider_tool_schema_matrix.csv",
      "sha256": "72673f59ce6fad9a26c8b3358b5224f91f7e51abe7226f8127cf0673b2778831",
      "status": "recovered-byte-exact",
      "use": "Provider nuance, schema-translation visual, and downloadable dataset."
    },
    {
      "expectedFile": "provider_tool_schema_matrix.json",
      "actualFile": "provider_tool_schema_matrix.json",
      "sha256": "6709bd0557eda0570f7d0e12bd321c0752ea2dd91d8b45e7c182630065e8407e",
      "status": "recovered-byte-exact",
      "use": "Provider nuance, schema-translation visual, and downloadable dataset."
    },
    {
      "expectedFile": "provider_tool_schema_matrix.md",
      "actualFile": "provider_tool_schema_matrix.md",
      "sha256": "72d77ceace192e510b4573b822729825e85993225460e715e109e8057545e894",
      "status": "supplied-byte-exact",
      "use": "Provider nuance, schema-translation visual, and downloadable dataset."
    },
    {
      "expectedFile": "quality_audit.md",
      "actualFile": "quality_audit (1).md",
      "sha256": "5106ded81eb83d2fc30a84528356d23e722ef5cc748b4aed1479a59e518e0040",
      "status": "supplied-under-verified-alias",
      "use": "Editorial synthesis, package controls, reproducibility, or quality validation."
    },
    {
      "expectedFile": "research_findings.md",
      "actualFile": "research_findings.md",
      "sha256": "514bb08930cfbe51b6689617d928a20eacf8c6487e01016908d70c4a6706e3f9",
      "status": "supplied-byte-exact",
      "use": "Editorial synthesis, package controls, reproducibility, or quality validation."
    },
    {
      "expectedFile": "seo_package.md",
      "actualFile": "seo_package (1).md",
      "sha256": "f675e5be40ed4f5a2932f1dd8e9a23a5ffe3f68984e9c0d5859c9777b9ed8ebb",
      "status": "supplied-under-verified-alias",
      "use": "Canonical metadata, intent coverage, snippet structure, and differentiation."
    },
    {
      "expectedFile": "serp_gap_analysis.md",
      "actualFile": "serp_gap_analysis (1).md",
      "sha256": "56ec214324d3ffdfa91fd4737de337026b1905ab578711e3a443076caec24d07",
      "status": "supplied-under-verified-alias",
      "use": "Canonical metadata, intent coverage, snippet structure, and differentiation."
    },
    {
      "expectedFile": "source_bibliography.md",
      "actualFile": null,
      "sha256": "3578f8ba2c1c85dca85c2518fd64b934021ad5a71fc2b380d9cfd8baa0dffd9c",
      "status": "archive-gap",
      "use": "Independent citation-completeness and source-usage audit."
    },
    {
      "expectedFile": "source_usage_audit.csv",
      "actualFile": "source_usage_audit.csv",
      "sha256": "35225d14ab2df0f12b57c27dd669b6840c93cc78952fe93e451afe91cb6952af",
      "status": "supplied-byte-exact",
      "use": "Independent citation-completeness and source-usage audit."
    },
    {
      "expectedFile": "source_usage_audit.json",
      "actualFile": "source_usage_audit.json",
      "sha256": "693f714143d9587fd6b7461a9296ba78f0ae13d59678febabb03a879058bd95f",
      "status": "recovered-byte-exact",
      "use": "Independent citation-completeness and source-usage audit."
    },
    {
      "expectedFile": "supporting_content_cluster.csv",
      "actualFile": "supporting_content_cluster (1).csv",
      "sha256": "5852ccda00a2184d603d000aaee0e015809108fdd07101ff97eaa6e5ebd223e7",
      "status": "supplied-under-verified-alias",
      "use": "SEO roadmap with publication and canonical reconciliation status."
    },
    {
      "expectedFile": "supporting_content_cluster.json",
      "actualFile": "supporting_content_cluster.json",
      "sha256": "abdd333b0596b8ced65c181638f8db4d396ec5870cfb360efdde1cf93475fb3b",
      "status": "recovered-byte-exact",
      "use": "SEO roadmap with publication and canonical reconciliation status."
    },
    {
      "expectedFile": "supporting_content_cluster.md",
      "actualFile": "supporting_content_cluster (1).md",
      "sha256": "ff48f0a3daacce2c2f4208e22eb894c22280bf3998a1b3c2769ab7b220138c95",
      "status": "supplied-under-verified-alias",
      "use": "SEO roadmap with publication and canonical reconciliation status."
    },
    {
      "expectedFile": "visual_specifications.csv",
      "actualFile": null,
      "sha256": "1faf39daaf71ffa710c5131099d907e05b35cfc2c71d132e3a8c3526f1afbb78",
      "status": "archive-gap",
      "use": "Accessible visual briefs, placement, provenance, captions, and alt text."
    },
    {
      "expectedFile": "visual_specifications.json",
      "actualFile": null,
      "sha256": "d7070e8bba2f8e5a592dbdff1fbd7244867bbee02f317bf73a21efb9a0ba301d",
      "status": "archive-gap",
      "use": "Accessible visual briefs, placement, provenance, captions, and alt text."
    },
    {
      "expectedFile": "visual_specifications.md",
      "actualFile": "visual_specifications (1).md",
      "sha256": "45a05d31154936a1a3dc76e512287788739a2a8fcb8d8299ddf976f274515673",
      "status": "supplied-under-verified-alias",
      "use": "Accessible visual briefs, placement, provenance, captions, and alt text."
    },
    {
      "expectedFile": "worked_example_create_issue.md",
      "actualFile": "worked_example_create_issue.md",
      "sha256": "d35beaba9533cbc3374648d9c661ea3eaad5320285f46990ffdf3926ac34c045",
      "status": "supplied-byte-exact",
      "use": "End-to-end worked example and sequence visual."
    },
    {
      "expectedFile": "SHA256SUMS.txt",
      "actualFile": "SHA256SUMS (1).txt",
      "sha256": null,
      "status": "supplied-transfer-manifest",
      "use": "Integrity verification, transfer aliases, exact recovery, and archive-gap disclosure."
    }
  ],
  "sourceMap": [
    {
      "packageSourceId": "MCP001",
      "canonicalSourceId": "S021",
      "url": "https://www.anthropic.com/news/model-context-protocol"
    },
    {
      "packageSourceId": "MCP002",
      "canonicalSourceId": "S024",
      "url": "https://modelcontextprotocol.io/specification/2024-11-05"
    },
    {
      "packageSourceId": "MCP003",
      "canonicalSourceId": "S025",
      "url": "https://modelcontextprotocol.io/specification/2024-11-05/architecture/index"
    },
    {
      "packageSourceId": "MCP004",
      "canonicalSourceId": "S028",
      "url": "https://modelcontextprotocol.io/specification/2024-11-05/server/tools"
    },
    {
      "packageSourceId": "MCP005",
      "canonicalSourceId": "S029",
      "url": "https://modelcontextprotocol.io/specification/2024-11-05/server/resources"
    },
    {
      "packageSourceId": "MCP006",
      "canonicalSourceId": "S030",
      "url": "https://modelcontextprotocol.io/specification/2024-11-05/server/prompts"
    },
    {
      "packageSourceId": "MCP007",
      "canonicalSourceId": "S027",
      "url": "https://modelcontextprotocol.io/specification/2024-11-05/basic/transports"
    },
    {
      "packageSourceId": "MCP008",
      "canonicalSourceId": "S036",
      "url": "https://modelcontextprotocol.io/specification/2025-03-26/changelog"
    },
    {
      "packageSourceId": "MCP009",
      "canonicalSourceId": "S156",
      "url": "https://modelcontextprotocol.io/specification/2025-03-26/basic/lifecycle"
    },
    {
      "packageSourceId": "MCP010",
      "canonicalSourceId": "S037",
      "url": "https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization"
    },
    {
      "packageSourceId": "MCP011",
      "canonicalSourceId": "S158",
      "url": "https://modelcontextprotocol.io/specification/2025-03-26/server/tools"
    },
    {
      "packageSourceId": "MCP012",
      "canonicalSourceId": "S043",
      "url": "https://modelcontextprotocol.io/specification/2025-06-18/changelog"
    },
    {
      "packageSourceId": "MCP013",
      "canonicalSourceId": "S159",
      "url": "https://modelcontextprotocol.io/specification/2025-06-18/basic/lifecycle"
    },
    {
      "packageSourceId": "MCP014",
      "canonicalSourceId": "S044",
      "url": "https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization"
    },
    {
      "packageSourceId": "MCP015",
      "canonicalSourceId": "S045",
      "url": "https://modelcontextprotocol.io/specification/2025-06-18/server/tools"
    },
    {
      "packageSourceId": "MCP016",
      "canonicalSourceId": "S049",
      "url": "https://modelcontextprotocol.io/specification/2025-11-25/changelog"
    },
    {
      "packageSourceId": "MCP017",
      "canonicalSourceId": "S160",
      "url": "https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle"
    },
    {
      "packageSourceId": "MCP018",
      "canonicalSourceId": "S161",
      "url": "https://modelcontextprotocol.io/specification/2025-11-25/server/tools"
    },
    {
      "packageSourceId": "MCP019",
      "canonicalSourceId": "S162",
      "url": "https://blog.modelcontextprotocol.io/posts/2025-11-25-first-mcp-anniversary/"
    },
    {
      "packageSourceId": "MCP020",
      "canonicalSourceId": "S058",
      "url": "https://blog.modelcontextprotocol.io/posts/2026-07-28/"
    },
    {
      "packageSourceId": "MCP021",
      "canonicalSourceId": "S053",
      "url": "https://blog.modelcontextprotocol.io/posts/2026-07-28-release-candidate/"
    },
    {
      "packageSourceId": "MCP022",
      "canonicalSourceId": "S130",
      "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/index"
    },
    {
      "packageSourceId": "MCP023",
      "canonicalSourceId": "S123",
      "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/tools"
    },
    {
      "packageSourceId": "MCP024",
      "canonicalSourceId": "S124",
      "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/resources"
    },
    {
      "packageSourceId": "MCP025",
      "canonicalSourceId": "S125",
      "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/prompts"
    },
    {
      "packageSourceId": "MCP026",
      "canonicalSourceId": "S057",
      "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/transports"
    },
    {
      "packageSourceId": "MCP027",
      "canonicalSourceId": "S127",
      "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/discover"
    },
    {
      "packageSourceId": "MCP028",
      "canonicalSourceId": "S055",
      "url": "https://modelcontextprotocol.io/specification/2026-07-28/changelog"
    },
    {
      "packageSourceId": "MCP029",
      "canonicalSourceId": "S163",
      "url": "https://blog.modelcontextprotocol.io/posts/2026-03-16-tool-annotations/"
    },
    {
      "packageSourceId": "MCP030",
      "canonicalSourceId": "S164",
      "url": "https://modelcontextprotocol.io/extensions/overview"
    },
    {
      "packageSourceId": "MCP031",
      "canonicalSourceId": "S059",
      "url": "https://blog.modelcontextprotocol.io/posts/2026-01-26-mcp-apps/"
    },
    {
      "packageSourceId": "MCP032",
      "canonicalSourceId": "S165",
      "url": "https://tasks.extensions.modelcontextprotocol.io/"
    },
    {
      "packageSourceId": "MCP033",
      "canonicalSourceId": "S134",
      "url": "https://modelcontextprotocol.io/docs/tutorials/security/security_best_practices"
    },
    {
      "packageSourceId": "MCP034",
      "canonicalSourceId": "S166",
      "url": "https://py.sdk.modelcontextprotocol.io/protocol-versions/"
    },
    {
      "packageSourceId": "MCP035",
      "canonicalSourceId": "S167",
      "url": "https://py.sdk.modelcontextprotocol.io/client/"
    },
    {
      "packageSourceId": "MCP036",
      "canonicalSourceId": "S168",
      "url": "https://ts.sdk.modelcontextprotocol.io/v2/migration/support-2026-07-28"
    },
    {
      "packageSourceId": "OAI001",
      "canonicalSourceId": "S010",
      "url": "https://openai.com/index/function-calling-and-other-api-updates/"
    },
    {
      "packageSourceId": "OAI002",
      "canonicalSourceId": "S169",
      "url": "https://developers.openai.com/api/docs/guides/function-calling"
    },
    {
      "packageSourceId": "OAI003",
      "canonicalSourceId": "S170",
      "url": "https://developers.openai.com/api/docs/guides/tools-connectors-mcp"
    },
    {
      "packageSourceId": "OAI004",
      "canonicalSourceId": "S089",
      "url": "https://openai.com/index/new-tools-and-features-in-the-responses-api/"
    },
    {
      "packageSourceId": "OAI005",
      "canonicalSourceId": "S171",
      "url": "https://openai.github.io/openai-agents-python/tools/"
    },
    {
      "packageSourceId": "OAI006",
      "canonicalSourceId": "S090",
      "url": "https://openai.github.io/openai-agents-python/mcp/"
    },
    {
      "packageSourceId": "OAI007",
      "canonicalSourceId": "S172",
      "url": "https://developers.openai.com/api/docs/guides/structured-outputs"
    },
    {
      "packageSourceId": "ANT001",
      "canonicalSourceId": "S011",
      "url": "https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview"
    },
    {
      "packageSourceId": "ANT002",
      "canonicalSourceId": "S173",
      "url": "https://platform.claude.com/docs/en/agents-and-tools/tool-use/handle-tool-calls"
    },
    {
      "packageSourceId": "ANT003",
      "canonicalSourceId": "S174",
      "url": "https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool"
    },
    {
      "packageSourceId": "ANT004",
      "canonicalSourceId": "S175",
      "url": "https://platform.claude.com/docs/en/agents-and-tools/mcp-connector"
    },
    {
      "packageSourceId": "ANT005",
      "canonicalSourceId": "S176",
      "url": "https://www.anthropic.com/engineering/advanced-tool-use"
    },
    {
      "packageSourceId": "GOO001",
      "canonicalSourceId": "S177",
      "url": "https://ai.google.dev/gemini-api/docs/function-calling"
    },
    {
      "packageSourceId": "GOO002",
      "canonicalSourceId": "S178",
      "url": "https://ai.google.dev/gemini-api/docs/thought-signatures"
    },
    {
      "packageSourceId": "STD001",
      "canonicalSourceId": "S001",
      "url": "https://www.jsonrpc.org/specification"
    },
    {
      "packageSourceId": "STD002",
      "canonicalSourceId": "S179",
      "url": "https://www.openapis.org/what-is-openapi"
    },
    {
      "packageSourceId": "STD003",
      "canonicalSourceId": "S180",
      "url": "https://spec.openapis.org/oas/"
    },
    {
      "packageSourceId": "STD004",
      "canonicalSourceId": "S181",
      "url": "https://json-schema.org/draft/2020-12"
    },
    {
      "packageSourceId": "SEO001",
      "canonicalSourceId": "S148",
      "url": "https://developers.google.com/search/docs/fundamentals/creating-helpful-content"
    },
    {
      "packageSourceId": "SEO002",
      "canonicalSourceId": "S155",
      "url": "https://developers.google.com/search/docs/appearance/structured-data/sd-policies"
    },
    {
      "packageSourceId": "SEO003",
      "canonicalSourceId": "S152",
      "url": "https://developers.google.com/search/docs/appearance/structured-data/article"
    },
    {
      "packageSourceId": "SEO004",
      "canonicalSourceId": "S153",
      "url": "https://developers.google.com/search/docs/appearance/structured-data/breadcrumb"
    },
    {
      "packageSourceId": "SERP001",
      "canonicalSourceId": "S182",
      "url": "https://mcp.institute/research/mcp-vs-function-calling"
    },
    {
      "packageSourceId": "SERP002",
      "canonicalSourceId": "S183",
      "url": "https://www.goodcall.com/voice-ai/mcp-vs-function-calling"
    },
    {
      "packageSourceId": "SERP003",
      "canonicalSourceId": "S184",
      "url": "https://aiagentskit.com/blog/mcp-vs-function-calling/"
    },
    {
      "packageSourceId": "SERP004",
      "canonicalSourceId": "S185",
      "url": "https://tetrate.io/learn/ai/mcp/mcp-vs-openai-function-calling"
    },
    {
      "packageSourceId": "SERP005",
      "canonicalSourceId": "S186",
      "url": "https://www.clearpeaks.com/model-context-protocol-vs-function-calling-a-practical-comparison-for-ai-agents/"
    }
  ],
  "articleCitations": {
    "packageSourceIds": [
      "MCP001",
      "MCP003",
      "MCP008",
      "MCP012",
      "MCP014",
      "MCP017",
      "MCP020",
      "MCP022",
      "MCP023",
      "MCP024",
      "MCP025",
      "MCP026",
      "MCP027",
      "MCP028",
      "MCP029",
      "MCP030",
      "MCP033",
      "MCP035",
      "OAI001",
      "OAI002",
      "OAI003",
      "OAI005",
      "OAI006",
      "OAI007",
      "ANT001",
      "ANT003",
      "ANT004",
      "GOO001",
      "STD001",
      "STD002",
      "STD003"
    ],
    "canonicalSourceIds": [
      "S021",
      "S025",
      "S036",
      "S043",
      "S044",
      "S160",
      "S058",
      "S130",
      "S123",
      "S124",
      "S125",
      "S057",
      "S127",
      "S055",
      "S163",
      "S164",
      "S134",
      "S167",
      "S010",
      "S169",
      "S170",
      "S171",
      "S090",
      "S172",
      "S011",
      "S174",
      "S175",
      "S177",
      "S001",
      "S179",
      "S180"
    ],
    "count": 31
  },
  "counts": {
    "packageEvidence": 63,
    "claims": 109,
    "comparisonDimensions": 29,
    "historyMilestones": 7,
    "providerSchemaRows": 4,
    "myths": 36,
    "faqs": 50,
    "visualBriefs": 15,
    "supportingBriefs": 61,
    "unifiedRoadmapUrls": 95
  },
  "editorialCorrections": [
    "C058 and the matching article prose are narrowed to required protocolVersion/clientCapabilities metadata; clientInfo remains recommended rather than required.",
    "The unmanifested OpenAPI homepage citation is normalized to the manifested What Is OpenAPI source.",
    "The unmanifested 2025 architecture citation is normalized to the manifested launch-era architecture source for the historical role claim."
  ],
  "publicEndpoints": [
    "/mcp-vs-function-calling/",
    "/sources/",
    "/editorial-policy/",
    "/data/evidence.json",
    "/data/evidence.csv",
    "/data/mcp-vs-function-calling-claims.json",
    "/data/mcp-vs-function-calling-claims.csv",
    "/data/mcp-function-comparison.json",
    "/data/mcp-function-comparison.csv",
    "/data/mcp-comparison-history.json",
    "/data/mcp-comparison-history.csv",
    "/data/mcp-provider-tool-schemas.json",
    "/data/mcp-provider-tool-schemas.csv",
    "/data/mcp-myths.json",
    "/data/mcp-myths.csv",
    "/data/mcp-function-source-usage.json",
    "/data/mcp-function-source-usage.csv",
    "/data/mcp-vs-function-calling-faq.json",
    "/data/mcp-function-visuals.json",
    "/data/mcp-function-visuals.csv",
    "/data/mcp-vs-function-calling-content-plan.json",
    "/data/mcp-vs-function-calling-content-plan.csv",
    "/data/mcp-content-roadmap.json",
    "/data/mcp-content-roadmap.csv",
    "/data/mcp-vs-function-calling-package.json"
  ]
}