{
  "title": "Local and Remote MCP Migration Checklists",
  "schemaVersion": "1.0",
  "researchFreeze": "2026-08-26",
  "protocolRevision": "MCP 2026-07-28",
  "sourcePackage": "research/10",
  "integrityNote": "All 108 listed ordinary archive payloads verify. The package contains two incompatible numeric source namespaces; public records preserve an explicit archive namespace and never resolve IDs across families.",
  "evidencePolicy": "Only manually curated build_context source groups appear in sourceIds. Raw row tokens are preserved under archive and are not treated as publication citations.",
  "checkedAt": "2026-08-26",
  "count": 15,
  "records": [
    {
      "Migration": "Local → remote",
      "Step": "Separate transport from tool/resource/prompt logic",
      "Why": "Preserve business behavior while changing lifecycle and identity boundary",
      "Source IDs": "S001 S028",
      "id": "R10-MIG001",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 1,
        "sourceIds": [
          "S001",
          "S028"
        ],
        "raw": {
          "Migration": "Local → remote",
          "Step": "Separate transport from tool/resource/prompt logic",
          "Why": "Preserve business behavior while changing lifecycle and identity boundary",
          "Source IDs": "S001 S028"
        }
      }
    },
    {
      "Migration": "Local → remote",
      "Step": "Replace environment-only credentials with remote authorization and secret management",
      "Why": "HTTP callers need identity, scopes and token validation",
      "Source IDs": "S004 S005",
      "id": "R10-MIG002",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 2,
        "sourceIds": [
          "S004",
          "S005"
        ],
        "raw": {
          "Migration": "Local → remote",
          "Step": "Replace environment-only credentials with remote authorization and secret management",
          "Why": "HTTP callers need identity, scopes and token validation",
          "Source IDs": "S004 S005"
        }
      }
    },
    {
      "Migration": "Local → remote",
      "Step": "Remove assumptions about local filesystem, shell, localhost and user home",
      "Why": "Remote service has a different machine and authority",
      "Source IDs": "S011 S012",
      "id": "R10-MIG003",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 3,
        "sourceIds": [
          "S011",
          "S012"
        ],
        "raw": {
          "Migration": "Local → remote",
          "Step": "Remove assumptions about local filesystem, shell, localhost and user home",
          "Why": "Remote service has a different machine and authority",
          "Source IDs": "S011 S012"
        }
      }
    },
    {
      "Migration": "Local → remote",
      "Step": "Design tenancy and object-level authorization",
      "Why": "A shared endpoint may serve multiple users",
      "Source IDs": "S004 S013",
      "id": "R10-MIG004",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 4,
        "sourceIds": [
          "S004",
          "S013"
        ],
        "raw": {
          "Migration": "Local → remote",
          "Step": "Design tenancy and object-level authorization",
          "Why": "A shared endpoint may serve multiple users",
          "Source IDs": "S004 S013"
        }
      }
    },
    {
      "Migration": "Local → remote",
      "Step": "Add HTTP security, Origin validation, TLS, rate limits and request bounds",
      "Why": "Network exposure changes the threat model",
      "Source IDs": "S003 S013",
      "id": "R10-MIG005",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 5,
        "sourceIds": [
          "S003",
          "S013"
        ],
        "raw": {
          "Migration": "Local → remote",
          "Step": "Add HTTP security, Origin validation, TLS, rate limits and request bounds",
          "Why": "Network exposure changes the threat model",
          "Source IDs": "S003 S013"
        }
      }
    },
    {
      "Migration": "Local → remote",
      "Step": "Externalize durable state and use explicit handles",
      "Why": "Modern requests may land on any replica",
      "Source IDs": "S007 S008 S009",
      "id": "R10-MIG006",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 6,
        "sourceIds": [
          "S007",
          "S008",
          "S009"
        ],
        "raw": {
          "Migration": "Local → remote",
          "Step": "Externalize durable state and use explicit handles",
          "Why": "Modern requests may land on any replica",
          "Source IDs": "S007 S008 S009"
        }
      }
    },
    {
      "Migration": "Local → remote",
      "Step": "Build central observability and per-user audit",
      "Why": "Remote service becomes shared infrastructure",
      "Source IDs": "S051 S056 S062",
      "id": "R10-MIG007",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 7,
        "sourceIds": [
          "S051",
          "S056",
          "S062"
        ],
        "raw": {
          "Migration": "Local → remote",
          "Step": "Build central observability and per-user audit",
          "Why": "Remote service becomes shared infrastructure",
          "Source IDs": "S051 S056 S062"
        }
      }
    },
    {
      "Migration": "Remote → local",
      "Step": "Define install package, runtime and supported operating systems",
      "Why": "Users must execute and maintain code locally",
      "Source IDs": "S014 S015",
      "id": "R10-MIG008",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 8,
        "sourceIds": [
          "S014",
          "S015"
        ],
        "raw": {
          "Migration": "Remote → local",
          "Step": "Define install package, runtime and supported operating systems",
          "Why": "Users must execute and maintain code locally",
          "Source IDs": "S014 S015"
        }
      }
    },
    {
      "Migration": "Remote → local",
      "Step": "Minimize inherited environment and local permissions",
      "Why": "Local server executes under user authority",
      "Source IDs": "S013 S067",
      "id": "R10-MIG009",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 9,
        "sourceIds": [
          "S013",
          "S067"
        ],
        "raw": {
          "Migration": "Remote → local",
          "Step": "Minimize inherited environment and local permissions",
          "Why": "Local server executes under user authority",
          "Source IDs": "S013 S067"
        }
      }
    },
    {
      "Migration": "Remote → local",
      "Step": "Replace server-managed OAuth storage where necessary with host/upstream credential flow",
      "Why": "Credential ownership changes",
      "Source IDs": "S004 S042",
      "id": "R10-MIG010",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 10,
        "sourceIds": [
          "S004",
          "S042"
        ],
        "raw": {
          "Migration": "Remote → local",
          "Step": "Replace server-managed OAuth storage where necessary with host/upstream credential flow",
          "Why": "Credential ownership changes",
          "Source IDs": "S004 S042"
        }
      }
    },
    {
      "Migration": "Remote → local",
      "Step": "Add trust prompt, publisher provenance and update path",
      "Why": "Installation is a security event",
      "Source IDs": "S016 S039",
      "id": "R10-MIG011",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 11,
        "sourceIds": [
          "S016",
          "S039"
        ],
        "raw": {
          "Migration": "Remote → local",
          "Step": "Add trust prompt, publisher provenance and update path",
          "Why": "Installation is a security event",
          "Source IDs": "S016 S039"
        }
      }
    },
    {
      "Migration": "Legacy remote → 2026 modern",
      "Step": "Add modern route/server/discover and self-describing requests",
      "Why": "Remove handshake/session affinity for modern clients",
      "Source IDs": "S007 S008 S048 S052",
      "id": "R10-MIG012",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 12,
        "sourceIds": [
          "S007",
          "S008",
          "S048",
          "S052"
        ],
        "raw": {
          "Migration": "Legacy remote → 2026 modern",
          "Step": "Add modern route/server/discover and self-describing requests",
          "Why": "Remove handshake/session affinity for modern clients",
          "Source IDs": "S007 S008 S048 S052"
        }
      }
    },
    {
      "Migration": "Legacy remote → 2026 modern",
      "Step": "Keep temporary legacy lane only while dependencies/clients require it",
      "Why": "Avoid breaking old clients during migration",
      "Source IDs": "S048 S052 S073",
      "id": "R10-MIG013",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 13,
        "sourceIds": [
          "S048",
          "S052",
          "S073"
        ],
        "raw": {
          "Migration": "Legacy remote → 2026 modern",
          "Step": "Keep temporary legacy lane only while dependencies/clients require it",
          "Why": "Avoid breaking old clients during migration",
          "Source IDs": "S048 S052 S073"
        }
      }
    },
    {
      "Migration": "Legacy remote → 2026 modern",
      "Step": "Replace server-initiated requests with MRTR and GET streams with subscriptions/listen",
      "Why": "Current message model differs",
      "Source IDs": "S003 S007",
      "id": "R10-MIG014",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 14,
        "sourceIds": [
          "S003",
          "S007"
        ],
        "raw": {
          "Migration": "Legacy remote → 2026 modern",
          "Step": "Replace server-initiated requests with MRTR and GET streams with subscriptions/listen",
          "Why": "Current message model differs",
          "Source IDs": "S003 S007"
        }
      }
    },
    {
      "Migration": "Legacy remote → 2026 modern",
      "Step": "Add routing headers, cache metadata and strict header/body validation",
      "Why": "Use ordinary HTTP infrastructure safely",
      "Source IDs": "S003 S052",
      "id": "R10-MIG015",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S471",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/migration_checklists.json",
        "row": 15,
        "sourceIds": [
          "S003",
          "S052"
        ],
        "raw": {
          "Migration": "Legacy remote → 2026 modern",
          "Step": "Add routing headers, cache metadata and strict header/body validation",
          "Why": "Use ordinary HTTP infrastructure safely",
          "Source IDs": "S003 S052"
        }
      }
    }
  ]
}