modelcontextprotocol/typescript-sdk
View on GitHub ↗
Unique within the repo — the other 26% repeats across its own files.
Unique across all public code — a further 17% is its own but appears in other public repos too.
Original and tidy — it rarely repeats itself, and little of it turns up in other public code. About as close to genuinely its own work as this metric can measure.
Worth consolidating — in the code
Real, actionable duplication in this repo's source, most concrete first.
Longest identical blocks
The longest runs of identical consecutive lines copied between two files (indentation ignored) — the most concrete copy-paste. Lift the block into a shared function or module.
| Lines | File A | File B | Cross-repo |
|---|---|---|---|
| 54 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2025-11-25/buildSchemas.ts:356 |
modelcontextprotocol/typescript-sdk/packages/core/src/schemas.ts:417 |
same repo |
| 31 | modelcontextprotocol/typescript-sdk/packages/core-internal/test/spec.types.2025-11-25.test.ts:466 |
modelcontextprotocol/typescript-sdk/packages/core-internal/test/spec.types.2026-07-28.test.ts:423 |
same repo |
| 15 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2025-11-25/buildSchemas.ts:266 |
modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2026-07-28/buildSchemas.ts:210 |
same repo |
| 15 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2026-07-28/buildSchemas.ts:210 |
modelcontextprotocol/typescript-sdk/packages/core/src/schemas.ts:327 |
same repo |
| 14 | modelcontextprotocol/typescript-sdk/packages/client/src/client/sse.ts:388 |
modelcontextprotocol/typescript-sdk/packages/client/src/client/streamableHttp.ts:571 |
same repo |
| 11 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/types/spec.types.2025-11-25.ts:514 |
modelcontextprotocol/typescript-sdk/packages/core/src/schemas.ts:266 |
same repo |
| 11 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/types/spec.types.2025-11-25.ts:514 |
modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2025-11-25/buildSchemas.ts:205 |
same repo |
| 8 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2025-11-25/buildSchemas.ts:992 |
modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2025-11-25/schemas.ts:90 |
same repo |
| 8 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2025-11-25/schemas.ts:90 |
modelcontextprotocol/typescript-sdk/packages/core/src/schemas.ts:1172 |
same repo |
Top duplication hotspots
| Similarity | Overlap | File A | File B | Cross-repo |
|---|---|---|---|---|
| 78% | 620 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2025-11-25/buildSchemas.ts |
modelcontextprotocol/typescript-sdk/packages/core/src/schemas.ts |
same repo |
| 41% | 405 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/types/spec.types.2025-11-25.ts |
modelcontextprotocol/typescript-sdk/packages/core/src/schemas.ts |
same repo |
| 42% | 397 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/types/spec.types.2025-11-25.ts |
modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2025-11-25/buildSchemas.ts |
same repo |
| 19% | 184 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2025-11-25/buildSchemas.ts |
modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2026-07-28/buildSchemas.ts |
same repo |
| 17% | 178 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2026-07-28/buildSchemas.ts |
modelcontextprotocol/typescript-sdk/packages/core/src/schemas.ts |
same repo |
| 21% | 156 | modelcontextprotocol/typescript-sdk/packages/core-internal/test/spec.types.2025-11-25.test.ts |
modelcontextprotocol/typescript-sdk/packages/core-internal/test/spec.types.2026-07-28.test.ts |
same repo |
| 8% | 111 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/shared/protocol.ts |
modelcontextprotocol/typescript-sdk/packages/server/src/server/server.ts |
same repo |
| 17% | 93 | modelcontextprotocol/typescript-sdk/packages/client/src/client/sse.ts |
modelcontextprotocol/typescript-sdk/packages/client/src/client/streamableHttp.ts |
same repo |
| 10% | 77 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2025-11-25/buildSchemas.ts |
modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2025-11-25/schemas.ts |
same repo |
| 9% | 74 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2025-11-25/schemas.ts |
modelcontextprotocol/typescript-sdk/packages/core/src/schemas.ts |
same repo |
| 10% | 73 | modelcontextprotocol/typescript-sdk/packages/server/src/server/createMcpHandler.ts |
modelcontextprotocol/typescript-sdk/packages/server/src/server/serveStdio.ts |
same repo |
| 6% | 71 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/shared/protocol.ts |
modelcontextprotocol/typescript-sdk/packages/core-internal/test/shared/protocol.test.ts |
same repo |
| 13% | 70 | modelcontextprotocol/typescript-sdk/packages/codemod/test/v1-to-v2/transforms/importPaths.test.ts |
modelcontextprotocol/typescript-sdk/packages/codemod/test/v1-to-v2/transforms/mockPaths.test.ts |
same repo |
| 8% | 69 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/shared/inboundClassification.ts |
modelcontextprotocol/typescript-sdk/packages/server/src/server/createMcpHandler.ts |
same repo |
| 5% | 67 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/types/spec.types.2025-11-25.ts |
modelcontextprotocol/typescript-sdk/packages/core-internal/src/types/types.ts |
same repo |
| 6% | 66 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/types/spec.types.2025-11-25.ts |
modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2026-07-28/buildSchemas.ts |
same repo |
Duplicate declarations
The same function, variable, class, or type name declared in more than one file — a fast copy-paste signal. Consider extracting a shared definition.
| Files | Declaration | Where |
|---|---|---|
| 56 | type object |
modelcontextprotocol/typescript-sdk/examples/cli-client/providers/anthropic.tsmodelcontextprotocol/typescript-sdk/examples/cli-client/test/forms.test.tsmodelcontextprotocol/typescript-sdk/examples/cli-client/test/providers.test.ts+53 more |
| 24 | type authInfo |
modelcontextprotocol/typescript-sdk/examples/bearer-auth-web/server.tsmodelcontextprotocol/typescript-sdk/examples/bearer-auth/server.tsmodelcontextprotocol/typescript-sdk/examples/guides/serving/authorization.examples.ts+21 more |
| 23 | type JSONRPCMessage |
modelcontextprotocol/typescript-sdk/packages/client/test/client/bodyDerivedProbeHeaders.test.tsmodelcontextprotocol/typescript-sdk/packages/client/test/client/crossSpawn.test.tsmodelcontextprotocol/typescript-sdk/packages/client/test/client/envelopeAutoEmission.test.ts+20 more |
| 17 | type BaseContext |
modelcontextprotocol/typescript-sdk/packages/core-internal/src/shared/protocol.tsmodelcontextprotocol/typescript-sdk/packages/core-internal/test/corpus/specCorpusDispatch.test.tsmodelcontextprotocol/typescript-sdk/packages/core-internal/test/shared/abortReasonPassthrough.test.ts+14 more |
| 14 | type CallToolResult |
modelcontextprotocol/typescript-sdk/examples/dual-era/server.tsmodelcontextprotocol/typescript-sdk/examples/guides/advanced/wire-schemas.examples.tsmodelcontextprotocol/typescript-sdk/examples/sampling/server.ts+11 more |
| 14 | type JsonSchemaType |
modelcontextprotocol/typescript-sdk/packages/client/src/fromJsonSchema.tsmodelcontextprotocol/typescript-sdk/packages/core-internal/src/exports/public/index.tsmodelcontextprotocol/typescript-sdk/packages/core-internal/src/index.ts+11 more |
| 12 | type Array |
modelcontextprotocol/typescript-sdk/examples/cli-client/host/ui.tsmodelcontextprotocol/typescript-sdk/examples/cli-client/test/forms.test.tsmodelcontextprotocol/typescript-sdk/packages/core-internal/src/types/spec.types.2025-11-25.ts+9 more |
| 12 | type OAuthTokenVerifier |
modelcontextprotocol/typescript-sdk/examples/bearer-auth/server.tsmodelcontextprotocol/typescript-sdk/examples/guides/serving/authorization.examples.tsmodelcontextprotocol/typescript-sdk/examples/guides/serving/express.examples.ts+9 more |
| 11 | type authProvider |
modelcontextprotocol/typescript-sdk/examples/guides/clients/machine-auth.examples.tsmodelcontextprotocol/typescript-sdk/examples/oauth/dualModeAuth.tsmodelcontextprotocol/typescript-sdk/examples/oauth/simpleTokenProvider.ts+8 more |
| 11 | type FetchLike |
modelcontextprotocol/typescript-sdk/packages/client/src/client/authExtensions.tsmodelcontextprotocol/typescript-sdk/packages/client/src/client/crossAppAccess.tsmodelcontextprotocol/typescript-sdk/packages/client/src/client/middleware.ts+8 more |
| 10 | type IncomingMessage |
modelcontextprotocol/typescript-sdk/examples/elicitation/server.tsmodelcontextprotocol/typescript-sdk/packages/client/test/client/sse.dpop.test.tsmodelcontextprotocol/typescript-sdk/packages/client/test/client/sse.test.ts+7 more |
| 10 | type integer |
modelcontextprotocol/typescript-sdk/examples/cli-client/host/ui.tsmodelcontextprotocol/typescript-sdk/examples/cli-client/test/forms.test.tsmodelcontextprotocol/typescript-sdk/examples/elicitation/server.ts+7 more |
| 9 | type mock |
modelcontextprotocol/typescript-sdk/packages/client/test/client/auth.dpop.test.tsmodelcontextprotocol/typescript-sdk/packages/client/test/client/crossSpawn.test.tsmodelcontextprotocol/typescript-sdk/packages/client/test/client/middleware.dpop.test.ts+6 more |
| 9 | type ref |
modelcontextprotocol/typescript-sdk/examples/cli-client/host/host.tsmodelcontextprotocol/typescript-sdk/examples/guides/clients/calling.examples.tsmodelcontextprotocol/typescript-sdk/examples/guides/servers/completion.examples.ts+6 more |
| 9 | type the |
modelcontextprotocol/typescript-sdk/packages/client/test/client/versionNegotiation.test.tsmodelcontextprotocol/typescript-sdk/packages/codemod/src/migrations/v1-to-v2/transforms/mcpServerApi.tsmodelcontextprotocol/typescript-sdk/packages/core-internal/src/shared/mediaType.ts+6 more |
| 8 | type tool_result |
modelcontextprotocol/typescript-sdk/examples/cli-client/providers/anthropic.tsmodelcontextprotocol/typescript-sdk/examples/client-quickstart/src/index.tsmodelcontextprotocol/typescript-sdk/packages/client/test/client/inputRequiredEngine.test.ts+5 more |
| 7 | type resource |
modelcontextprotocol/typescript-sdk/examples/cli-client/test/host.test.tsmodelcontextprotocol/typescript-sdk/examples/guides/servers/prompts.examples.tsmodelcontextprotocol/typescript-sdk/examples/guides/servers/tools.examples.ts+4 more |
| 7 | type AuthMetadataOptions |
modelcontextprotocol/typescript-sdk/packages/middleware/express/src/auth/metadataRouter.tsmodelcontextprotocol/typescript-sdk/packages/middleware/express/src/index.tsmodelcontextprotocol/typescript-sdk/packages/server-legacy/src/auth/index.ts+4 more |
| 7 | type JSONRPCRequest |
modelcontextprotocol/typescript-sdk/packages/client/test/client/responseCacheCodec.test.tsmodelcontextprotocol/typescript-sdk/packages/core-internal/src/types/types.tsmodelcontextprotocol/typescript-sdk/packages/core-internal/test/shared/contentDefaultParity.test.ts+4 more |
| 7 | type sourceFile |
modelcontextprotocol/typescript-sdk/packages/codemod/src/migrations/v1-to-v2/transforms/handlerRegistration.tsmodelcontextprotocol/typescript-sdk/packages/codemod/src/migrations/v1-to-v2/transforms/mockPaths.tsmodelcontextprotocol/typescript-sdk/packages/codemod/src/migrations/v1-to-v2/transforms/removedApis.ts+4 more |
| 7 | type StandardSchemaV1 |
modelcontextprotocol/typescript-sdk/packages/core-internal/src/exports/public/index.tsmodelcontextprotocol/typescript-sdk/packages/core-internal/src/shared/inputRequired.tsmodelcontextprotocol/typescript-sdk/packages/core-internal/src/shared/inputRequiredEngine.ts+4 more |
| 7 | type tool_use |
modelcontextprotocol/typescript-sdk/examples/cli-client/providers/anthropic.tsmodelcontextprotocol/typescript-sdk/examples/cli-client/test/providers.test.tsmodelcontextprotocol/typescript-sdk/examples/client-quickstart/src/index.ts+4 more |
| 6 | type toBe |
modelcontextprotocol/typescript-sdk/examples/cli-client/test/host.test.tsmodelcontextprotocol/typescript-sdk/packages/core-internal/test/packageTopologyPins.test.tsmodelcontextprotocol/typescript-sdk/packages/core-internal/test/types.test.ts+3 more |
| 6 | type graph |
modelcontextprotocol/typescript-sdk/packages/core-internal/src/validators/ajvProvider.examples.tsmodelcontextprotocol/typescript-sdk/packages/core-internal/src/validators/ajvProvider.tsmodelcontextprotocol/typescript-sdk/packages/middleware/express/tsdown.config.ts+3 more |
| 6 | type McpRequestContext |
modelcontextprotocol/typescript-sdk/examples/legacy-routing/server.tsmodelcontextprotocol/typescript-sdk/examples/oauth/server.tsmodelcontextprotocol/typescript-sdk/examples/resources/server.ts+3 more |
Docs & prose
Near-identical documentation — often translations (e.g. README.md ⇄ README_zh-CN.md) or mirrored guides. Usually intentional, not cleanup — listed separately so it doesn't inflate the code signal above.
Top duplication hotspots
| Similarity | Overlap | File A | File B | Cross-repo |
|---|---|---|---|---|
| 10% | 845 | modelcontextprotocol/typescript-sdk/docs/migration/support-2026-07-28.md |
modelcontextprotocol/typescript-sdk/packages/core-internal/CHANGELOG.md |
same repo |
| 58% | 591 | modelcontextprotocol/typescript-sdk/packages/middleware/hono/CHANGELOG.md |
modelcontextprotocol/typescript-sdk/packages/middleware/node/CHANGELOG.md |
same repo |
| 40% | 479 | modelcontextprotocol/typescript-sdk/packages/middleware/express/CHANGELOG.md |
modelcontextprotocol/typescript-sdk/packages/middleware/node/CHANGELOG.md |
same repo |
| 61% | 477 | modelcontextprotocol/typescript-sdk/packages/middleware/express/CHANGELOG.md |
modelcontextprotocol/typescript-sdk/packages/middleware/hono/CHANGELOG.md |
same repo |
| 67% | 458 | modelcontextprotocol/typescript-sdk/packages/middleware/express/CHANGELOG.md |
modelcontextprotocol/typescript-sdk/packages/middleware/fastify/CHANGELOG.md |
same repo |
| 74% | 457 | modelcontextprotocol/typescript-sdk/packages/middleware/fastify/CHANGELOG.md |
modelcontextprotocol/typescript-sdk/packages/middleware/hono/CHANGELOG.md |
same repo |
| 44% | 457 | modelcontextprotocol/typescript-sdk/packages/middleware/fastify/CHANGELOG.md |
modelcontextprotocol/typescript-sdk/packages/middleware/node/CHANGELOG.md |
same repo |
| 10% | 454 | modelcontextprotocol/typescript-sdk/docs/migration/support-2026-07-28.md |
modelcontextprotocol/typescript-sdk/docs/protocol-versions.md |
same repo |
| 8% | 434 | modelcontextprotocol/typescript-sdk/packages/core-internal/CHANGELOG.md |
modelcontextprotocol/typescript-sdk/packages/core/CHANGELOG.md |
same repo |
| 65% | 313 | modelcontextprotocol/typescript-sdk/docs/serving/express.md |
modelcontextprotocol/typescript-sdk/docs/serving/fastify.md |
same repo |
| 4% | 276 | modelcontextprotocol/typescript-sdk/packages/codemod/CHANGELOG.md |
modelcontextprotocol/typescript-sdk/packages/core-internal/CHANGELOG.md |
same repo |
| 47% | 266 | modelcontextprotocol/typescript-sdk/docs/serving/fastify.md |
modelcontextprotocol/typescript-sdk/docs/serving/hono.md |
same repo |
| 46% | 260 | modelcontextprotocol/typescript-sdk/docs/serving/express.md |
modelcontextprotocol/typescript-sdk/docs/serving/hono.md |
same repo |
| 3% | 216 | modelcontextprotocol/typescript-sdk/docs/protocol-versions.md |
modelcontextprotocol/typescript-sdk/packages/core-internal/CHANGELOG.md |
same repo |
| 33% | 204 | modelcontextprotocol/typescript-sdk/docs/serving/hono.md |
modelcontextprotocol/typescript-sdk/docs/serving/web-standard.md |
same repo |
| 4% | 200 | modelcontextprotocol/typescript-sdk/docs/migration/support-2026-07-28.md |
modelcontextprotocol/typescript-sdk/docs/servers/input-required.md |
same repo |
| 3% | 196 | modelcontextprotocol/typescript-sdk/packages/core-internal/CHANGELOG.md |
modelcontextprotocol/typescript-sdk/packages/middleware/node/CHANGELOG.md |
same repo |
| 9% | 189 | modelcontextprotocol/typescript-sdk/packages/codemod/CHANGELOG.md |
modelcontextprotocol/typescript-sdk/packages/middleware/express/CHANGELOG.md |
same repo |
| 3% | 187 | modelcontextprotocol/typescript-sdk/docs/servers/input-required.md |
modelcontextprotocol/typescript-sdk/packages/core-internal/CHANGELOG.md |
same repo |
| 22% | 186 | modelcontextprotocol/typescript-sdk/packages/core/CHANGELOG.md |
modelcontextprotocol/typescript-sdk/packages/server-legacy/CHANGELOG.md |
same repo |
Largest files
Largest files
| LOC | File | Status |
|---|---|---|
| 2559 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/types/spec.types.2025-11-25.ts | indexed |
| 2460 | modelcontextprotocol/typescript-sdk/packages/core/src/schemas.ts | indexed |
| 2432 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2025-11-25/buildSchemas.ts | indexed |
| 1912 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/shared/protocol.ts | indexed |
| 1720 | modelcontextprotocol/typescript-sdk/packages/client/test/client/sse.test.ts | indexed |
| 1638 | modelcontextprotocol/typescript-sdk/packages/server/test/server/streamableHttp.test.ts | indexed |
| 1528 | modelcontextprotocol/typescript-sdk/packages/server/src/server/mcp.ts | indexed |
| 1433 | modelcontextprotocol/typescript-sdk/packages/core-internal/src/wire/rev2026-07-28/buildSchemas.ts | indexed |
| 1392 | modelcontextprotocol/typescript-sdk/packages/client/test/client/versionNegotiation.test.ts | indexed |
| 1333 | modelcontextprotocol/typescript-sdk/packages/server/src/server/server.ts | indexed |