@mcp-native/mcp 0.0.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,130 @@
1
- # @mcp-native/mcp bootstrap
1
+ <div align="center">
2
2
 
3
- This non-runtime `0.0.0` artifact reserves the package name so npm trusted publishing can be
4
- configured before the first real, provenance-attested release. Install the `latest` distribution
5
- tag for supported package versions.
3
+ # @mcp-native/mcp
4
+
5
+ ### A validated bridge from the official MCP TypeScript SDK to MCP Native
6
+
7
+ [GitHub](https://github.com/pablospaniard/mcp-native) · [Architecture](https://github.com/pablospaniard/mcp-native/blob/main/docs/RFC-0001-architecture.md) · [Protocol support](https://github.com/pablospaniard/mcp-native/blob/main/docs/protocol-support.md) · [Standards status](https://github.com/pablospaniard/mcp-native/blob/main/docs/standards-compatibility.md) · [Official SDK](https://github.com/modelcontextprotocol/typescript-sdk) · [Security](https://github.com/pablospaniard/mcp-native/blob/main/SECURITY.md)
8
+
9
+ </div>
10
+
11
+ > **Experimental:** this package is an early proof of concept. Its public API may change before `1.0.0`.
12
+
13
+ > **Compatibility:** SDK v2 is the correct implementation line for MCP `2026-07-28`. The initial tool/resource boundary preserves official fields and is covered through the SDK's current HTTP handler/fetch path, but the package does not yet claim complete MCP conformance.
14
+
15
+ `@mcp-native/mcp` adapts a connected [`Client`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/docs/client.md) from `@modelcontextprotocol/client` v2 to the transport-neutral `McpClient` interface in `@mcp-native/core`.
16
+
17
+ The adapter deliberately does not create a transport, manage credentials, or own the SDK client's lifecycle. The host chooses and connects the official client, then hands it to MCP Native.
18
+
19
+ ## Install
20
+
21
+ ```bash
22
+ npm install @mcp-native/mcp @mcp-native/core @modelcontextprotocol/client
23
+ ```
24
+
25
+ The package is ESM-only and includes TypeScript declarations.
26
+
27
+ ## Quick start
28
+
29
+ ```ts
30
+ import { Client } from "@modelcontextprotocol/client";
31
+ import { StdioClientTransport } from "@modelcontextprotocol/client/stdio";
32
+ import { McpNativeRuntime } from "@mcp-native/core";
33
+ import { createMcpNativeClientOptions, McpSdkClientAdapter } from "@mcp-native/mcp";
34
+
35
+ const client = new Client(
36
+ { name: "my-native-host", version: "1.0.0" },
37
+ createMcpNativeClientOptions("auto"),
38
+ );
39
+ const transport = new StdioClientTransport({
40
+ command: "node",
41
+ args: ["./dist/server.js"],
42
+ });
43
+
44
+ await client.connect(transport);
45
+
46
+ const runtime = new McpNativeRuntime(new McpSdkClientAdapter(client));
47
+
48
+ const { tools } = await runtime.listTools();
49
+ const result = await runtime.callTool(tools[0]!.name, {});
50
+ const resources = await runtime.readResource("ui://example");
51
+
52
+ await client.close();
53
+ ```
54
+
55
+ Use `createMcpSdkClientAdapter(client)` when a factory reads better than constructing the class directly.
56
+
57
+ The options helper deliberately offers only the current `2026-07-28` target and tested `2025-11-25` fallback. Use `"modern-only"` to pin the current revision without fallback or `"legacy-only"` for a server known to implement the tested legacy revision.
58
+
59
+ To advertise an explicitly approved extension on the modern lane, pass its settings as the second argument:
60
+
61
+ ```ts
62
+ const clientExtensions = {
63
+ "com.example/native-ui": { version: "1" },
64
+ };
65
+
66
+ const options = createMcpNativeClientOptions("modern-only", {
67
+ extensions: clientExtensions,
68
+ });
69
+ const client = new Client({ name: "my-native-host", version: "1.0.0" }, options);
70
+ await client.connect(transport);
71
+
72
+ const adapter = new McpSdkClientAdapter(client, { clientExtensions });
73
+ ```
74
+
75
+ The official SDK places these settings in the `2026-07-28` per-request capability envelope. After connection, `McpSdkClientAdapter.getClientExtensionSettings()` returns the advertised snapshot passed into the adapter, and `getServerExtensionSettings()` returns the validated server declaration from `server/discover`. Pass those two maps to a core or extension-specific negotiator, or call `runtime.negotiateExtension(id)` so negotiation stays tied to what was actually advertised. The `2025-11-25` lane has no extension support claim.
76
+
77
+ ## Mapping
78
+
79
+ | Official SDK operation | MCP Native result |
80
+ | -------------------------------------- | --------------------------------------------------------------------------- |
81
+ | `client.listTools()` | `McpListToolsResult` with definitions, `_meta`, pagination, and cache hints |
82
+ | `client.callTool({ name, arguments })` | `McpToolCallResult` with official content shapes and result `_meta` |
83
+ | `client.readResource({ uri })` | `McpReadResourceResult` preserving content, `_meta`, and cache hints |
84
+
85
+ SDK content blocks retain MCP's official discriminated shapes: text, image, audio, resource link, and embedded resource. Tool definitions preserve titles, icons, complete input/output schemas, annotations, and JSON-safe `_meta`. Resource reads preserve text and blob items as separate entries.
86
+
87
+ Install `@mcp-native/a2ui` to resolve an `application/a2ui+json` `resource_link` from an adapted tool result into a validated declarative surface.
88
+
89
+ ## Validation boundary
90
+
91
+ Although the official SDK validates protocol traffic, MCP Native validates values again before they cross into renderer-facing contracts. `McpSdkAdapterError` is thrown for:
92
+
93
+ - malformed result objects or collections;
94
+ - unknown content types and non-string names, URIs, MIME types, or bodies;
95
+ - malformed icons, annotations, schemas, cache hints, or result metadata;
96
+ - task execution declarations, because task-augmented calls are outside the current adapter boundary;
97
+ - `undefined`, functions, symbols, bigints, or non-finite numbers inside JSON data;
98
+ - class instances, circular objects, circular arrays, and sparse arrays;
99
+ - prototype-named JSON keys are preserved as ordinary own data properties without changing object prototypes;
100
+ - resource entries with neither body or with both `text` and `blob`.
101
+
102
+ This adapter never evaluates server-provided code and never resolves a server-provided component name.
103
+
104
+ ## Public API
105
+
106
+ | Export | Purpose |
107
+ | ---------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
108
+ | `McpSdkClientAdapter` | Implements the core `McpClient` boundary for a connected SDK client. |
109
+ | `McpSdkClientAdapterOptions` | Optional advertised `clientExtensions` snapshot retained for negotiation. |
110
+ | `createMcpSdkClientAdapter` | Factory returning an adapter for a connected SDK client. |
111
+ | `McpSdkAdapterError` | Specific validation error for results that cannot safely map. |
112
+ | `createMcpNativeClientOptions`, `McpNativeProtocolMode` | Exact official SDK options for automatic, modern-only, or legacy-only operation. |
113
+ | `McpNativeClientCapabilityOptions` | Explicit host-approved extension settings accepted by the options helper. |
114
+ | `MCP_NATIVE_PROTOCOL_REVISION`, `MCP_NATIVE_LEGACY_PROTOCOL_REVISION`, `MCP_NATIVE_SUPPORTED_PROTOCOL_REVISIONS` | The current target and deliberately tested revision list. |
115
+
116
+ ## Scope
117
+
118
+ - Official SDK client v2 integration only.
119
+ - Integration tests pin `2026-07-28` through the official SDK HTTP handler/fetch path and verify `auto` fallback to exactly `2025-11-25` through the linked in-memory transport.
120
+ - Seven applicable official client scenarios cover tool calls, request metadata and version retry, standard and custom HTTP headers, invalid header annotations, safe `$ref` handling, and JSON Schema 2020-12 preservation. See the [pinned coverage report](https://github.com/pablospaniard/mcp-native/blob/main/docs/mcp-conformance.md).
121
+ - The conformance gate accounts for every scored client requirement in the pinned official fixture, while shared-store tests verify that private cache entries stay principal-partitioned and public entries are reused only for the same server identity and request.
122
+ - Connection setup, transport selection, authentication, retries, and shutdown remain host responsibilities.
123
+ - Prompts, roots, subscriptions, sampling, elicitation, and task APIs are outside RFC-0001's initial client boundary.
124
+ - Generic JSON-safe `_meta` is preserved, including MCP Apps discovery and resource policy data, but Apps-specific validation and capability negotiation are not implemented yet.
125
+ - Generic extension discovery/settings are supported on the modern SDK path; extension-specific operations and additional conformance scenarios remain separate roadmap work.
126
+ - The adapter package remains independent of React Native, A2UI, and WebView packages.
127
+
128
+ ## License
129
+
130
+ [MIT](https://github.com/pablospaniard/mcp-native/blob/main/LICENSE)
@@ -0,0 +1 @@
1
+ {"version":"7.0.2","root":[146],"packageJsons":["../../../node_modules/@modelcontextprotocol/client/package.json","../../../node_modules/@modelcontextprotocol/core/package.json","../../../node_modules/eventsource/package.json","../../../node_modules/zod/package.json","../../../node_modules/zod/v4/classic/package.json","../../../node_modules/zod/v4/core/package.json","../../../node_modules/zod/v4/locales/package.json","../../../node_modules/zod/v4/package.json","../../core/package.json","../package.json"],"missingPackageJsons":["../../../node_modules/@modelcontextprotocol/client/dist/package.json","../../../node_modules/@modelcontextprotocol/core/dist/package.json","../../../node_modules/@modelcontextprotocol/core/internal/package.json","../../../node_modules/eventsource/dist/package.json"],"fileNames":["lib.es5.d.ts","lib.es2015.d.ts","lib.es2016.d.ts","lib.es2017.d.ts","lib.es2018.d.ts","lib.es2019.d.ts","lib.es2020.d.ts","lib.es2021.d.ts","lib.es2022.d.ts","lib.es2015.core.d.ts","lib.es2015.collection.d.ts","lib.es2015.generator.d.ts","lib.es2015.iterable.d.ts","lib.es2015.promise.d.ts","lib.es2015.proxy.d.ts","lib.es2015.reflect.d.ts","lib.es2015.symbol.d.ts","lib.es2015.symbol.wellknown.d.ts","lib.es2016.array.include.d.ts","lib.es2016.intl.d.ts","lib.es2017.arraybuffer.d.ts","lib.es2017.date.d.ts","lib.es2017.object.d.ts","lib.es2017.sharedmemory.d.ts","lib.es2017.string.d.ts","lib.es2017.intl.d.ts","lib.es2017.typedarrays.d.ts","lib.es2018.asyncgenerator.d.ts","lib.es2018.asynciterable.d.ts","lib.es2018.intl.d.ts","lib.es2018.promise.d.ts","lib.es2018.regexp.d.ts","lib.es2019.array.d.ts","lib.es2019.object.d.ts","lib.es2019.string.d.ts","lib.es2019.symbol.d.ts","lib.es2019.intl.d.ts","lib.es2020.bigint.d.ts","lib.es2020.date.d.ts","lib.es2020.promise.d.ts","lib.es2020.sharedmemory.d.ts","lib.es2020.string.d.ts","lib.es2020.symbol.wellknown.d.ts","lib.es2020.intl.d.ts","lib.es2020.number.d.ts","lib.es2021.promise.d.ts","lib.es2021.string.d.ts","lib.es2021.weakref.d.ts","lib.es2021.intl.d.ts","lib.es2022.array.d.ts","lib.es2022.error.d.ts","lib.es2022.intl.d.ts","lib.es2022.object.d.ts","lib.es2022.string.d.ts","lib.es2022.regexp.d.ts","lib.decorators.d.ts","lib.decorators.legacy.d.ts","../../../node_modules/zod/v4/core/json-schema.d.cts","../../../node_modules/zod/v4/core/standard-schema.d.cts","../../../node_modules/zod/v4/core/registries.d.cts","../../../node_modules/zod/v4/core/to-json-schema.d.cts","../../../node_modules/zod/v4/core/util.d.cts","../../../node_modules/zod/v4/core/versions.d.cts","../../../node_modules/zod/v4/core/schemas.d.cts","../../../node_modules/zod/v4/core/checks.d.cts","../../../node_modules/zod/v4/core/errors.d.cts","../../../node_modules/zod/v4/core/core.d.cts","../../../node_modules/zod/v4/core/parse.d.cts","../../../node_modules/zod/v4/core/regexes.d.cts","../../../node_modules/zod/v4/locales/ar.d.cts","../../../node_modules/zod/v4/locales/az.d.cts","../../../node_modules/zod/v4/locales/be.d.cts","../../../node_modules/zod/v4/locales/bg.d.cts","../../../node_modules/zod/v4/locales/ca.d.cts","../../../node_modules/zod/v4/locales/cs.d.cts","../../../node_modules/zod/v4/locales/da.d.cts","../../../node_modules/zod/v4/locales/de.d.cts","../../../node_modules/zod/v4/locales/el.d.cts","../../../node_modules/zod/v4/locales/en.d.cts","../../../node_modules/zod/v4/locales/eo.d.cts","../../../node_modules/zod/v4/locales/es.d.cts","../../../node_modules/zod/v4/locales/fa.d.cts","../../../node_modules/zod/v4/locales/fi.d.cts","../../../node_modules/zod/v4/locales/fr.d.cts","../../../node_modules/zod/v4/locales/fr-CA.d.cts","../../../node_modules/zod/v4/locales/he.d.cts","../../../node_modules/zod/v4/locales/hr.d.cts","../../../node_modules/zod/v4/locales/hu.d.cts","../../../node_modules/zod/v4/locales/hy.d.cts","../../../node_modules/zod/v4/locales/id.d.cts","../../../node_modules/zod/v4/locales/is.d.cts","../../../node_modules/zod/v4/locales/it.d.cts","../../../node_modules/zod/v4/locales/ja.d.cts","../../../node_modules/zod/v4/locales/ka.d.cts","../../../node_modules/zod/v4/locales/kh.d.cts","../../../node_modules/zod/v4/locales/km.d.cts","../../../node_modules/zod/v4/locales/ko.d.cts","../../../node_modules/zod/v4/locales/lt.d.cts","../../../node_modules/zod/v4/locales/mk.d.cts","../../../node_modules/zod/v4/locales/ms.d.cts","../../../node_modules/zod/v4/locales/nl.d.cts","../../../node_modules/zod/v4/locales/no.d.cts","../../../node_modules/zod/v4/locales/ota.d.cts","../../../node_modules/zod/v4/locales/ps.d.cts","../../../node_modules/zod/v4/locales/pl.d.cts","../../../node_modules/zod/v4/locales/pt.d.cts","../../../node_modules/zod/v4/locales/ro.d.cts","../../../node_modules/zod/v4/locales/ru.d.cts","../../../node_modules/zod/v4/locales/sl.d.cts","../../../node_modules/zod/v4/locales/sv.d.cts","../../../node_modules/zod/v4/locales/ta.d.cts","../../../node_modules/zod/v4/locales/th.d.cts","../../../node_modules/zod/v4/locales/tr.d.cts","../../../node_modules/zod/v4/locales/ua.d.cts","../../../node_modules/zod/v4/locales/uk.d.cts","../../../node_modules/zod/v4/locales/ur.d.cts","../../../node_modules/zod/v4/locales/uz.d.cts","../../../node_modules/zod/v4/locales/vi.d.cts","../../../node_modules/zod/v4/locales/zh-CN.d.cts","../../../node_modules/zod/v4/locales/zh-TW.d.cts","../../../node_modules/zod/v4/locales/yo.d.cts","../../../node_modules/zod/v4/locales/index.d.cts","../../../node_modules/zod/v4/core/doc.d.cts","../../../node_modules/zod/v4/core/api.d.cts","../../../node_modules/zod/v4/core/json-schema-processors.d.cts","../../../node_modules/zod/v4/core/json-schema-generator.d.cts","../../../node_modules/zod/v4/core/index.d.cts","../../../node_modules/zod/v4/classic/errors.d.cts","../../../node_modules/zod/v4/classic/parse.d.cts","../../../node_modules/zod/v4/classic/schemas.d.cts","../../../node_modules/zod/v4/classic/checks.d.cts","../../../node_modules/zod/v4/classic/compat.d.cts","../../../node_modules/zod/v4/classic/from-json-schema.d.cts","../../../node_modules/zod/v4/classic/iso.d.cts","../../../node_modules/zod/v4/classic/coerce.d.cts","../../../node_modules/zod/v4/classic/external.d.cts","../../../node_modules/zod/v4/classic/index.d.cts","../../../node_modules/zod/v4/index.d.cts","../../../node_modules/@modelcontextprotocol/core/dist/auth-BWdKR39I.d.mts","../../../node_modules/@modelcontextprotocol/core/dist/internal.d.mts","../../../node_modules/@modelcontextprotocol/client/dist/index-D4xIIEF6.d.mts","../../../node_modules/@modelcontextprotocol/client/dist/types-mS0yxCL0.d.mts","../../../node_modules/eventsource/dist/index.d.ts","../../../node_modules/@modelcontextprotocol/client/dist/index.d.mts","../../core/dist/index.d.ts","../src/index.ts"],"fileInfos":[{"version":"16934abaab7026ac114da441aabea1a0","affectsGlobalScope":true,"impliedNodeFormat":1},"d4306fb2e47f74835e8674ffac07d76f","e437c5c1302869326c3bb93da85bbbcf","e4324975a566567b21d350615f1fc6ac","333b1b9a2a9ac3b8497dba5c63b5ba50","6cffacd662b6eb5fa7a36aa2ea366bfa","b4c34f9c23304dbef2d23698637ed638","e5cb86a5fc491796ecd1d2dd348d208f","feb6c6fb19cdb246a5d8acb36a6901c7",{"version":"926204c28cd3d073865348473ae28d2e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f25e42c801b2cb3cf2b39792006a9beb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6344b55f26a4e81d9608777dbfb877dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3c0ed28e53d3695b363e256ec1c023fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4c2761daba7f17141c25baa0821ac5da","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b87656acabd63e69379ff6ffcfe52fc7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"597469522da047a5af5222cc6989f405","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1708ea4d34dc37fadadc63ca01127e80","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"55d97a8c6fbf34a30450a7b1e5f7a298","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0ee05eb59426d33e374226d8dcfa708b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e347c14030993906efcfbb88915b6a05","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b0231263857c9b6a03641acdc9280ceb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3b15c4a83b598cacb4067676e6f0abed","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b417d97b7934cef63b1889abec0bbfbf","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"09a6cf4032ebba60ce22a501e663f881","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2b056277dd138e8f5650fc04e20eaa8d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e22cc07e3f3cc242ba52fa3f8ea1fc58","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2c45da767a1bfbb220848df1bc4029e4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b44c3e0fbaf2130cdcf6ac38b120ffa1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b612fb5cf8e5d964b92063a75207632a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"02705151a5e1551b9162a9ed8ab763f7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"41025e398be9215d32e4337335da8f0b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"52684c2b1f353a5538e4f275182a54cd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6dedb6a4f90d1df3a6fbe5693e44886c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ca3f36fe3562c07e0f0d71c2bebd3f6d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"409974d6129befbb8226ddd1c6558568","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4d9cfde2a1ae1b4925f1f9bc10848e5d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7e1daecc66dd564144e3bb1a0266b5fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a8e1d9bb35fd0637f2f9fd2b2a54f2ec","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4f168501772a6543182765bfd5f2fbfe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a19c80aad1b2162103496f5ba293a732","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b69afa63cd5d059851c78adb2856ee09","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ae2fc5d954e9b0f5feee3d481b953c27","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1cfd3091a071d8b6feec15277643bafe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1da2c1f258970fd3cc91184f69e91a9d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a0d87491913d843139e0c993650a3235","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4ef72aa378127e7b7abba915b0110b1e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3ec74c6a7d4463f0254db3a74cf75646","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"84c2bdfa470d075526cce6322d81b0b6","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0b3844c2b8c73e4e1ab91431411cad11","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4fc71cf4a15b8d99675a31df77f26e07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d1b49564ddaeca3df5b6dbae925d2242","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6a25be566d60ccfc2d6e8b7bfdeefa83","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8a20e27646985dfd58c57ca6566553dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9969f02ad3cdcbf4f709405cda44167f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9c9be4792a7a4f42c15ae7360bf28779","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f64453cbf9671f28158677fa5c43967a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"33f317af5428801f944a478d2c1e38e5","affectsGlobalScope":true,"impliedNodeFormat":1},"5f3c015bce4302b247acedb9ec20e302","a9fe29dcdd4288cacf574947747a4572","daada721cfdc43aa8e7c2e2d14d760de","c4d7f2ab9358166b1815281a9e767232","7703400f3e9d14c1e0670e37a530daf7","4158e698aebfc1ac453549ca68cf2301","15182d7d355f2cb580529a728a1c2149","8fb36d5345606a6ec0bcaae424f48c41","631ac96cecb09bd46857ff6ad032a8dc","ffd8c3d2e39447925561777d1ebcdc02","2b76267afeb2e83dff758e3fba2faa8a","c910e5cd97770188797f8ff632e19735","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","224881373d4d18c065b09acb9a85cc5f","a21f1b172546b6a64cc7ddea394b54ea","7096aabc39a3b833dbdb0dee5ef12fca","8bdf05c98551836db89f23d60d176f56","5b3f18777c97e7ed444a39661c4462ba","cd3b63580b271a0e93649c0d92a1b098","1cc59f020b9d62d875bdb28a6e2f745b","a06c5977df8ff3f289f16a7505c8d539","8dd06ad8dc54dd7826195cfa6bfdc744","f04158c558df8c51d46a1fb44c832c1c","d1ab6402ad42100de1cf3f5d15aa9d27","96b06af537c71de0a80e9ed880958afd","dec40354e62d8ca81f5996c1760bc6da","a9356de7c324c6f49c15587032b1f65f","c3c6b4257e011eff227a8970bed8b3c3","f06e385eca707a7f458b12579fac7033","36e44d66b242e6176176dc6d1ee825ea",{"version":"69930d0b6495700237df397f041faf23","impliedNodeFormat":99},{"version":"6ff86dd202b3ccfbb32f63c84814220b","impliedNodeFormat":99},{"version":"641d6bec26f68f2cc37241d68370d42f","impliedNodeFormat":99},{"version":"cecbf8f1c2d5688b5f3713f381fc31c2","impliedNodeFormat":99},{"version":"5668cf0192f00795267d9353c0ff2091","impliedNodeFormat":99},{"version":"2a16e7c752e73d66f3f28be3d4d77a84","impliedNodeFormat":99},{"version":"e036175fd045a058f952285f4251537c","impliedNodeFormat":99},{"version":"a6d6248452074bfd425efbce6441310f","signature":"3f42063243ccd5520af6e469ef93a7d4","impliedNodeFormat":99}],"fileIdsList":[[138,140],[141,142,143],[138],[139],[127],[127,130],[62,122,125,127,128,129,130,131,132,133,134,135],[58,60,130],[136],[127,128],[59,127,129],[60,62,64,65,66,67],[62,64,66,67],[62,64,66],[59,62,64,65,67],[58,60,61,62,63,64,65,66,67,68,69,122,123,124,125,126],[58,60,61,64],[60,61,64],[64,67],[58,59,61,62,63,65,66,67],[58,59,60,64,127],[64,65,66,67],[137],[66],[70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121],[144,145]],"options":{"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"module":199,"noFallthroughCasesInSwitch":true,"noUncheckedIndexedAccess":true,"noImplicitOverride":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"sourceMap":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[141,1],[144,2],[139,3],[140,4],[131,5],[135,6],[132,6],[128,5],[136,7],[133,8],[137,9],[134,6],[129,10],[130,11],[124,12],[65,13],[67,14],[66,15],[127,16],[126,17],[125,18],[68,13],[60,19],[64,20],[61,21],[62,22],[138,23],[70,24],[71,24],[72,24],[73,24],[74,24],[75,24],[76,24],[77,24],[78,24],[79,24],[80,24],[81,24],[82,24],[83,24],[85,24],[84,24],[86,24],[87,24],[88,24],[89,24],[90,24],[122,25],[91,24],[92,24],[93,24],[94,24],[95,24],[96,24],[97,24],[98,24],[99,24],[100,24],[101,24],[102,24],[103,24],[105,24],[104,24],[106,24],[107,24],[108,24],[109,24],[110,24],[111,24],[112,24],[113,24],[114,24],[115,24],[116,24],[117,24],[118,24],[121,24],[119,24],[120,24],[146,26]],"latestChangedDtsFile":"./index.d.ts"}
@@ -0,0 +1,47 @@
1
+ import type { Client, ClientOptions } from "@modelcontextprotocol/client";
2
+ import type { JsonObject, McpClient, McpExtensionSettings, McpListToolsResult, McpReadResourceResult, McpToolCallResult } from "@mcp-native/core";
3
+ type OfficialMcpClient = Pick<Client, "callTool" | "listTools" | "readResource"> & Partial<Pick<Client, "getServerCapabilities">>;
4
+ export interface McpSdkClientAdapterOptions {
5
+ /**
6
+ * Extension map advertised when constructing the official SDK client.
7
+ * Must match the capabilities passed to `createMcpNativeClientOptions()`.
8
+ * Omission means the client advertised none.
9
+ */
10
+ readonly clientExtensions?: unknown;
11
+ }
12
+ /** The exact MCP core revision targeted by MCP Native's modern compatibility lane. */
13
+ export declare const MCP_NATIVE_PROTOCOL_REVISION: "2026-07-28";
14
+ /** The only pre-2026 revision covered by MCP Native's compatibility tests. */
15
+ export declare const MCP_NATIVE_LEGACY_PROTOCOL_REVISION: "2025-11-25";
16
+ /** Exact revisions MCP Native deliberately offers; no future revision is implied. */
17
+ export declare const MCP_NATIVE_SUPPORTED_PROTOCOL_REVISIONS: readonly ["2026-07-28", "2025-11-25"];
18
+ export type McpNativeProtocolMode = "auto" | "legacy-only" | "modern-only";
19
+ export interface McpNativeClientCapabilityOptions {
20
+ /** Explicit, host-approved MCP extensions to advertise. Omission advertises none. */
21
+ readonly extensions?: unknown;
22
+ }
23
+ /**
24
+ * Creates official SDK client options matching MCP Native's documented
25
+ * protocol policy. The host still owns client construction and connection.
26
+ */
27
+ export declare function createMcpNativeClientOptions(mode?: McpNativeProtocolMode, capabilityOptions?: McpNativeClientCapabilityOptions): ClientOptions;
28
+ /** Thrown when an SDK result cannot be represented by MCP Native's JSON-safe contracts. */
29
+ export declare class McpSdkAdapterError extends Error {
30
+ constructor(message: string, options?: ErrorOptions);
31
+ }
32
+ /**
33
+ * Adapts a connected official MCP TypeScript SDK client to the transport-neutral
34
+ * boundary consumed by `@mcp-native/core`.
35
+ */
36
+ export declare class McpSdkClientAdapter implements McpClient {
37
+ #private;
38
+ constructor(client: OfficialMcpClient, options?: McpSdkClientAdapterOptions);
39
+ getClientExtensionSettings(): McpExtensionSettings;
40
+ listTools(): Promise<McpListToolsResult>;
41
+ callTool(name: string, arguments_: JsonObject): Promise<McpToolCallResult>;
42
+ readResource(uri: string): Promise<McpReadResourceResult>;
43
+ getServerExtensionSettings(): McpExtensionSettings;
44
+ }
45
+ export declare function createMcpSdkClientAdapter(client: OfficialMcpClient, options?: McpSdkClientAdapterOptions): McpSdkClientAdapter;
46
+ export {};
47
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAM1E,OAAO,KAAK,EACV,UAAU,EAIV,SAAS,EAET,oBAAoB,EAEpB,kBAAkB,EAClB,qBAAqB,EAIrB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B,KAAK,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,cAAc,CAAC,GAC9E,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,sFAAsF;AACtF,eAAO,MAAM,4BAA4B,EAAG,YAAqB,CAAC;AAElE,8EAA8E;AAC9E,eAAO,MAAM,mCAAmC,EAAG,YAAqB,CAAC;AAEzE,qFAAqF;AACrF,eAAO,MAAM,uCAAuC,uCAGzC,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC;AAE3E,MAAM,WAAW,gCAAgC;IAC/C,qFAAqF;IACrF,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,GAAE,qBAA8B,EACpC,iBAAiB,GAAE,gCAAqC,GACvD,aAAa,CAqCf;AAED,2FAA2F;AAC3F,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAGlD;CACF;AAED;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,SAAS;;IAInD,YAAY,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAE,0BAA+B,EAM9E;IAED,0BAA0B,IAAI,oBAAoB,CAEjD;IAEK,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAU7C;IAEK,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmB/E;IAEK,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAS9D;IAED,0BAA0B,IAAI,oBAAoB,CAYjD;CACF;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CAErB"}
package/dist/index.js ADDED
@@ -0,0 +1,413 @@
1
+ import { parseMcpExtensionSettings, parseJsonObject as parseCoreJsonObject, parseJsonValue as parseCoreJsonValue, } from "@mcp-native/core";
2
+ /** The exact MCP core revision targeted by MCP Native's modern compatibility lane. */
3
+ export const MCP_NATIVE_PROTOCOL_REVISION = "2026-07-28";
4
+ /** The only pre-2026 revision covered by MCP Native's compatibility tests. */
5
+ export const MCP_NATIVE_LEGACY_PROTOCOL_REVISION = "2025-11-25";
6
+ /** Exact revisions MCP Native deliberately offers; no future revision is implied. */
7
+ export const MCP_NATIVE_SUPPORTED_PROTOCOL_REVISIONS = Object.freeze([
8
+ MCP_NATIVE_PROTOCOL_REVISION,
9
+ MCP_NATIVE_LEGACY_PROTOCOL_REVISION,
10
+ ]);
11
+ /**
12
+ * Creates official SDK client options matching MCP Native's documented
13
+ * protocol policy. The host still owns client construction and connection.
14
+ */
15
+ export function createMcpNativeClientOptions(mode = "auto", capabilityOptions = {}) {
16
+ const protocolOptions = (() => {
17
+ switch (mode) {
18
+ case "auto":
19
+ return {
20
+ supportedProtocolVersions: [...MCP_NATIVE_SUPPORTED_PROTOCOL_REVISIONS],
21
+ versionNegotiation: { mode: "auto" },
22
+ };
23
+ case "modern-only":
24
+ return {
25
+ supportedProtocolVersions: [MCP_NATIVE_PROTOCOL_REVISION],
26
+ versionNegotiation: { mode: { pin: MCP_NATIVE_PROTOCOL_REVISION } },
27
+ };
28
+ case "legacy-only":
29
+ return {
30
+ supportedProtocolVersions: [MCP_NATIVE_LEGACY_PROTOCOL_REVISION],
31
+ versionNegotiation: { mode: "legacy" },
32
+ };
33
+ default:
34
+ throw new TypeError(`Unsupported MCP Native protocol mode: ${String(mode)}`);
35
+ }
36
+ })();
37
+ if (capabilityOptions.extensions === undefined) {
38
+ return protocolOptions;
39
+ }
40
+ return {
41
+ ...protocolOptions,
42
+ capabilities: {
43
+ // The SDK models JSON to a finite recursive depth while core validates
44
+ // the same values with explicit runtime depth and size limits.
45
+ extensions: parseMcpExtensionSettings(capabilityOptions.extensions, "client capability extensions"),
46
+ },
47
+ };
48
+ }
49
+ /** Thrown when an SDK result cannot be represented by MCP Native's JSON-safe contracts. */
50
+ export class McpSdkAdapterError extends Error {
51
+ constructor(message, options) {
52
+ super(message, options);
53
+ this.name = "McpSdkAdapterError";
54
+ }
55
+ }
56
+ /**
57
+ * Adapts a connected official MCP TypeScript SDK client to the transport-neutral
58
+ * boundary consumed by `@mcp-native/core`.
59
+ */
60
+ export class McpSdkClientAdapter {
61
+ #client;
62
+ #clientExtensions;
63
+ constructor(client, options = {}) {
64
+ this.#client = client;
65
+ this.#clientExtensions =
66
+ options.clientExtensions === undefined
67
+ ? {}
68
+ : parseMcpExtensionSettings(options.clientExtensions, "client capability extensions");
69
+ }
70
+ getClientExtensionSettings() {
71
+ return this.#clientExtensions;
72
+ }
73
+ async listTools() {
74
+ const result = expectObject(await this.#client.listTools(), "tools result");
75
+ return {
76
+ tools: expectArray(result.tools, "tools result.tools").map((value, index) => mapTool(value, `tools result.tools[${index}]`)),
77
+ ...mapPagination(result, "tools result"),
78
+ ...mapCacheHints(result, "tools result"),
79
+ ...mapResultMeta(result, "tools result"),
80
+ };
81
+ }
82
+ async callTool(name, arguments_) {
83
+ const result = expectObject(await this.#client.callTool({ name, arguments: arguments_ }), "tool result");
84
+ const isError = optionalBoolean(result.isError, "tool result.isError");
85
+ const structuredContent = result.structuredContent === undefined
86
+ ? undefined
87
+ : expectJsonValue(result.structuredContent, "tool result.structuredContent");
88
+ return {
89
+ content: expectArray(result.content, "tool result.content").map((block, index) => mapContent(block, `tool result.content[${index}]`)),
90
+ ...(isError === undefined ? {} : { isError }),
91
+ ...(structuredContent === undefined ? {} : { structuredContent }),
92
+ ...mapResultMeta(result, "tool result"),
93
+ };
94
+ }
95
+ async readResource(uri) {
96
+ const result = expectObject(await this.#client.readResource({ uri }), "resource result");
97
+ return {
98
+ contents: expectArray(result.contents, "resource result.contents").map((resource, index) => mapResource(resource, `resource result.contents[${index}]`)),
99
+ ...mapCacheHints(result, "resource result"),
100
+ ...mapResultMeta(result, "resource result"),
101
+ };
102
+ }
103
+ getServerExtensionSettings() {
104
+ const extensions = this.#client.getServerCapabilities?.()?.extensions;
105
+ if (extensions === undefined) {
106
+ return {};
107
+ }
108
+ try {
109
+ return parseMcpExtensionSettings(extensions, "server capability extensions");
110
+ }
111
+ catch (error) {
112
+ const message = error instanceof Error ? error.message : "Invalid server capability extensions";
113
+ throw new McpSdkAdapterError(message, { cause: error });
114
+ }
115
+ }
116
+ }
117
+ export function createMcpSdkClientAdapter(client, options = {}) {
118
+ return new McpSdkClientAdapter(client, options);
119
+ }
120
+ function mapContent(value, path) {
121
+ const block = expectObject(value, path);
122
+ const type = expectString(block.type, `${path}.type`);
123
+ const annotations = mapOptionalAnnotations(block.annotations, `${path}.annotations`);
124
+ const meta = optionalMetaObject(block["_meta"], `${path}._meta`);
125
+ const common = {
126
+ ...(annotations === undefined ? {} : { annotations }),
127
+ ...(meta === undefined ? {} : { _meta: meta }),
128
+ };
129
+ switch (type) {
130
+ case "text":
131
+ return { type, text: expectString(block.text, `${path}.text`), ...common };
132
+ case "image":
133
+ case "audio":
134
+ return {
135
+ type,
136
+ data: expectString(block.data, `${path}.data`),
137
+ mimeType: expectString(block.mimeType, `${path}.mimeType`),
138
+ ...common,
139
+ };
140
+ case "resource_link": {
141
+ const icons = mapOptionalIcons(block.icons, `${path}.icons`);
142
+ const title = optionalString(block.title, `${path}.title`);
143
+ const description = optionalString(block.description, `${path}.description`);
144
+ const mimeType = optionalString(block.mimeType, `${path}.mimeType`);
145
+ const size = optionalNonNegativeInteger(block.size, `${path}.size`);
146
+ return {
147
+ type,
148
+ ...(icons === undefined ? {} : { icons }),
149
+ name: expectString(block.name, `${path}.name`),
150
+ ...(title === undefined ? {} : { title }),
151
+ uri: expectString(block.uri, `${path}.uri`),
152
+ ...(description === undefined ? {} : { description }),
153
+ ...(mimeType === undefined ? {} : { mimeType }),
154
+ ...(size === undefined ? {} : { size }),
155
+ ...common,
156
+ };
157
+ }
158
+ case "resource":
159
+ return {
160
+ type,
161
+ resource: mapResource(block.resource, `${path}.resource`),
162
+ ...common,
163
+ };
164
+ default:
165
+ throw new McpSdkAdapterError(`Unsupported MCP content type ${JSON.stringify(type)} at ${path}`);
166
+ }
167
+ }
168
+ function mapResource(value, path) {
169
+ const resource = expectObject(value, path);
170
+ const mimeType = optionalString(resource.mimeType, `${path}.mimeType`);
171
+ const text = optionalString(resource.text, `${path}.text`);
172
+ const blob = optionalString(resource.blob, `${path}.blob`);
173
+ const meta = optionalMetaObject(resource["_meta"], `${path}._meta`);
174
+ if ((text === undefined) === (blob === undefined)) {
175
+ throw new McpSdkAdapterError(`Expected exactly one of text or blob at ${path}`);
176
+ }
177
+ const common = {
178
+ uri: expectString(resource.uri, `${path}.uri`),
179
+ ...(mimeType === undefined ? {} : { mimeType }),
180
+ ...(meta === undefined ? {} : { _meta: meta }),
181
+ };
182
+ return text === undefined ? { ...common, blob: blob } : { ...common, text };
183
+ }
184
+ function mapTool(value, path) {
185
+ const tool = expectObject(value, path);
186
+ if (tool.execution !== undefined) {
187
+ throw new McpSdkAdapterError(`Unsupported tool execution settings at ${path}.execution; task execution is outside the MCP Native boundary`);
188
+ }
189
+ const icons = mapOptionalIcons(tool.icons, `${path}.icons`);
190
+ const title = optionalString(tool.title, `${path}.title`);
191
+ const description = optionalString(tool.description, `${path}.description`);
192
+ const inputSchema = expectJsonObject(tool.inputSchema, `${path}.inputSchema`);
193
+ const outputSchema = optionalJsonObject(tool.outputSchema, `${path}.outputSchema`);
194
+ const annotations = mapOptionalToolAnnotations(tool.annotations, `${path}.annotations`);
195
+ const meta = optionalMetaObject(tool["_meta"], `${path}._meta`);
196
+ if (inputSchema.type !== "object") {
197
+ throw new McpSdkAdapterError(`Expected the string "object" at ${path}.inputSchema.type`);
198
+ }
199
+ return {
200
+ ...(icons === undefined ? {} : { icons }),
201
+ name: expectString(tool.name, `${path}.name`),
202
+ ...(title === undefined ? {} : { title }),
203
+ ...(description === undefined ? {} : { description }),
204
+ inputSchema,
205
+ ...(outputSchema === undefined ? {} : { outputSchema }),
206
+ ...(annotations === undefined ? {} : { annotations }),
207
+ ...(meta === undefined ? {} : { _meta: meta }),
208
+ };
209
+ }
210
+ function mapOptionalAnnotations(value, path) {
211
+ if (value === undefined) {
212
+ return undefined;
213
+ }
214
+ const annotations = expectObject(value, path);
215
+ const audience = mapOptionalAudience(annotations.audience, `${path}.audience`);
216
+ const priority = optionalBoundedNumber(annotations.priority, `${path}.priority`, 0, 1);
217
+ const lastModified = optionalString(annotations.lastModified, `${path}.lastModified`);
218
+ return {
219
+ ...(audience === undefined ? {} : { audience }),
220
+ ...(priority === undefined ? {} : { priority }),
221
+ ...(lastModified === undefined ? {} : { lastModified }),
222
+ };
223
+ }
224
+ function mapOptionalAudience(value, path) {
225
+ if (value === undefined) {
226
+ return undefined;
227
+ }
228
+ return expectArray(value, path).map((role, index) => {
229
+ if (role !== "assistant" && role !== "user") {
230
+ throw new McpSdkAdapterError(`Expected "assistant" or "user" at ${path}[${index}]`);
231
+ }
232
+ return role;
233
+ });
234
+ }
235
+ function mapOptionalIcons(value, path) {
236
+ if (value === undefined) {
237
+ return undefined;
238
+ }
239
+ return expectArray(value, path).map((iconValue, index) => {
240
+ const iconPath = `${path}[${index}]`;
241
+ const icon = expectObject(iconValue, iconPath);
242
+ const mimeType = optionalString(icon.mimeType, `${iconPath}.mimeType`);
243
+ const sizes = optionalStringArray(icon.sizes, `${iconPath}.sizes`);
244
+ const theme = optionalTheme(icon.theme, `${iconPath}.theme`);
245
+ return {
246
+ src: expectString(icon.src, `${iconPath}.src`),
247
+ ...(mimeType === undefined ? {} : { mimeType }),
248
+ ...(sizes === undefined ? {} : { sizes }),
249
+ ...(theme === undefined ? {} : { theme }),
250
+ };
251
+ });
252
+ }
253
+ function mapOptionalToolAnnotations(value, path) {
254
+ if (value === undefined) {
255
+ return undefined;
256
+ }
257
+ const annotations = expectObject(value, path);
258
+ const title = optionalString(annotations.title, `${path}.title`);
259
+ const readOnlyHint = optionalBoolean(annotations.readOnlyHint, `${path}.readOnlyHint`);
260
+ const destructiveHint = optionalBoolean(annotations.destructiveHint, `${path}.destructiveHint`);
261
+ const idempotentHint = optionalBoolean(annotations.idempotentHint, `${path}.idempotentHint`);
262
+ const openWorldHint = optionalBoolean(annotations.openWorldHint, `${path}.openWorldHint`);
263
+ return {
264
+ ...(title === undefined ? {} : { title }),
265
+ ...(readOnlyHint === undefined ? {} : { readOnlyHint }),
266
+ ...(destructiveHint === undefined ? {} : { destructiveHint }),
267
+ ...(idempotentHint === undefined ? {} : { idempotentHint }),
268
+ ...(openWorldHint === undefined ? {} : { openWorldHint }),
269
+ };
270
+ }
271
+ function mapPagination(value, path) {
272
+ const nextCursor = optionalString(value.nextCursor, `${path}.nextCursor`);
273
+ return nextCursor === undefined ? {} : { nextCursor };
274
+ }
275
+ function mapCacheHints(value, path) {
276
+ const ttlMs = optionalNonNegativeInteger(value.ttlMs, `${path}.ttlMs`);
277
+ const cacheScope = optionalCacheScope(value.cacheScope, `${path}.cacheScope`);
278
+ return {
279
+ ...(ttlMs === undefined ? {} : { ttlMs }),
280
+ ...(cacheScope === undefined ? {} : { cacheScope }),
281
+ };
282
+ }
283
+ function mapResultMeta(value, path) {
284
+ const meta = optionalMetaObject(value["_meta"], `${path}._meta`);
285
+ return meta === undefined ? {} : { _meta: meta };
286
+ }
287
+ function expectObject(value, path) {
288
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
289
+ throw new McpSdkAdapterError(`Expected an object at ${path}`);
290
+ }
291
+ const prototype = Object.getPrototypeOf(value);
292
+ if (prototype !== Object.prototype && prototype !== null) {
293
+ throw new McpSdkAdapterError(`Expected a plain object at ${path}`);
294
+ }
295
+ return value;
296
+ }
297
+ function expectArray(value, path) {
298
+ if (!Array.isArray(value)) {
299
+ throw new McpSdkAdapterError(`Expected an array at ${path}`);
300
+ }
301
+ return value;
302
+ }
303
+ function expectString(value, path) {
304
+ if (typeof value !== "string") {
305
+ throw new McpSdkAdapterError(`Expected a string at ${path}`);
306
+ }
307
+ return value;
308
+ }
309
+ function optionalString(value, path) {
310
+ return value === undefined ? undefined : expectString(value, path);
311
+ }
312
+ function optionalBoolean(value, path) {
313
+ if (value === undefined) {
314
+ return undefined;
315
+ }
316
+ if (typeof value !== "boolean") {
317
+ throw new McpSdkAdapterError(`Expected a boolean at ${path}`);
318
+ }
319
+ return value;
320
+ }
321
+ function optionalStringArray(value, path) {
322
+ if (value === undefined) {
323
+ return undefined;
324
+ }
325
+ return expectArray(value, path).map((item, index) => expectString(item, `${path}[${index}]`));
326
+ }
327
+ function optionalTheme(value, path) {
328
+ if (value === undefined) {
329
+ return undefined;
330
+ }
331
+ if (value !== "dark" && value !== "light") {
332
+ throw new McpSdkAdapterError(`Expected "dark" or "light" at ${path}`);
333
+ }
334
+ return value;
335
+ }
336
+ function optionalCacheScope(value, path) {
337
+ if (value === undefined) {
338
+ return undefined;
339
+ }
340
+ if (value !== "private" && value !== "public") {
341
+ throw new McpSdkAdapterError(`Expected "private" or "public" at ${path}`);
342
+ }
343
+ return value;
344
+ }
345
+ function optionalNonNegativeInteger(value, path) {
346
+ if (value === undefined) {
347
+ return undefined;
348
+ }
349
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) {
350
+ throw new McpSdkAdapterError(`Expected a non-negative safe integer at ${path}`);
351
+ }
352
+ return value;
353
+ }
354
+ function optionalBoundedNumber(value, path, minimum, maximum) {
355
+ if (value === undefined) {
356
+ return undefined;
357
+ }
358
+ if (typeof value !== "number" || !Number.isFinite(value) || value < minimum || value > maximum) {
359
+ throw new McpSdkAdapterError(`Expected a number from ${minimum} to ${maximum} at ${path}`);
360
+ }
361
+ return value;
362
+ }
363
+ function expectJsonObject(value, path) {
364
+ try {
365
+ return parseCoreJsonObject(value, path);
366
+ }
367
+ catch (error) {
368
+ const message = error instanceof Error ? error.message : `Invalid JSON object at ${path}`;
369
+ throw new McpSdkAdapterError(message, { cause: error });
370
+ }
371
+ }
372
+ function optionalJsonObject(value, path) {
373
+ return value === undefined ? undefined : expectJsonObject(value, path);
374
+ }
375
+ function optionalMetaObject(value, path) {
376
+ if (value === undefined) {
377
+ return undefined;
378
+ }
379
+ const meta = expectJsonObject(value, path);
380
+ for (const key of Object.keys(meta)) {
381
+ if (!isValidMetaKey(key)) {
382
+ throw new McpSdkAdapterError(`Invalid MCP metadata key ${JSON.stringify(key)} at ${path}`);
383
+ }
384
+ }
385
+ return meta;
386
+ }
387
+ function isValidMetaKey(key) {
388
+ const slash = key.indexOf("/");
389
+ if (slash !== key.lastIndexOf("/")) {
390
+ return false;
391
+ }
392
+ const prefix = slash === -1 ? undefined : key.slice(0, slash);
393
+ const name = slash === -1 ? key : key.slice(slash + 1);
394
+ const namePattern = /^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/;
395
+ if (!namePattern.test(name)) {
396
+ return false;
397
+ }
398
+ if (prefix === undefined) {
399
+ return true;
400
+ }
401
+ const labelPattern = /^[A-Za-z](?:[A-Za-z0-9-]*[A-Za-z0-9])?$/;
402
+ return prefix.length > 0 && prefix.split(".").every((label) => labelPattern.test(label));
403
+ }
404
+ function expectJsonValue(value, path) {
405
+ try {
406
+ return parseCoreJsonValue(value, path);
407
+ }
408
+ catch (error) {
409
+ const message = error instanceof Error ? error.message : `Invalid JSON value at ${path}`;
410
+ throw new McpSdkAdapterError(message, { cause: error });
411
+ }
412
+ }
413
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,19 +1,47 @@
1
1
  {
2
2
  "name": "@mcp-native/mcp",
3
- "version": "0.0.0",
4
- "description": "Bootstrap artifact used to establish npm trusted publishing for @mcp-native/mcp.",
3
+ "version": "0.2.0",
4
+ "description": "Official MCP TypeScript SDK adapter for MCP Native.",
5
+ "keywords": [
6
+ "adapter",
7
+ "mcp",
8
+ "model-context-protocol",
9
+ "typescript"
10
+ ],
11
+ "homepage": "https://github.com/pablospaniard/mcp-native#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/pablospaniard/mcp-native/issues"
14
+ },
5
15
  "license": "MIT",
6
16
  "repository": {
7
17
  "type": "git",
8
18
  "url": "git+https://github.com/pablospaniard/mcp-native.git",
9
19
  "directory": "packages/mcp"
10
20
  },
11
- "homepage": "https://github.com/pablospaniard/mcp-native/tree/main/packages/mcp#readme",
12
- "bugs": {
13
- "url": "https://github.com/pablospaniard/mcp-native/issues"
21
+ "files": [
22
+ "dist",
23
+ "README.md"
24
+ ],
25
+ "type": "module",
26
+ "sideEffects": false,
27
+ "main": "./dist/index.js",
28
+ "types": "./dist/index.d.ts",
29
+ "exports": {
30
+ ".": {
31
+ "types": "./dist/index.d.ts",
32
+ "import": "./dist/index.js"
33
+ }
14
34
  },
15
35
  "publishConfig": {
16
- "access": "public",
17
- "tag": "bootstrap"
36
+ "access": "public"
37
+ },
38
+ "dependencies": {
39
+ "@mcp-native/core": "^0.2.0"
40
+ },
41
+ "devDependencies": {
42
+ "@modelcontextprotocol/client": "2.0.0"
43
+ },
44
+ "peerDependencies": {
45
+ "@modelcontextprotocol/client": "^2.0.0"
18
46
  }
19
47
  }