@tokenlabai/mcp-server 0.6.10 → 0.6.12
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 +11 -8
- package/contract/mcp-overlay.json +2 -0
- package/contract/openapi.json +482 -55
- package/generated/public-contract.json +8 -5
- package/generated/tools.json +328 -54
- package/llms-install.md +1 -1
- package/package.json +5 -3
- package/scripts/generate-contract.mjs +61 -5
- package/scripts/sync-contract.mjs +95 -13
- package/src/index.js +35 -1
- package/src/media-mime.js +68 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"id": "tokenlab-mcp-server",
|
|
6
6
|
"name": "@tokenlabai/mcp-server",
|
|
7
7
|
"title": "TokenLab MCP Server",
|
|
8
|
-
"version": "0.6.
|
|
8
|
+
"version": "0.6.12",
|
|
9
9
|
"registry_name": "io.github.hedging8563/tokenlab",
|
|
10
10
|
"source_url": "https://github.com/hedging8563/tokenlab-mcp-server",
|
|
11
11
|
"landing_url": "https://tokenlab.sh/mcp",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"openapi": "3.0.3",
|
|
26
26
|
"title": "TokenLab AI Gateway",
|
|
27
27
|
"version": "1.0.0",
|
|
28
|
-
"sha256": "
|
|
29
|
-
"tool_manifest_sha256": "
|
|
28
|
+
"sha256": "a5d2c856f4c346924787a0870cf16ad748f54a51faeed9627d78d88ba20501ab",
|
|
29
|
+
"tool_manifest_sha256": "b64c0aea3103963b9c686344bcec839478ffb3b1e34b14ed91bcf5684826ee52"
|
|
30
30
|
},
|
|
31
31
|
"profiles": {
|
|
32
32
|
"catalog": {
|
|
@@ -84,9 +84,9 @@
|
|
|
84
84
|
},
|
|
85
85
|
"full": {
|
|
86
86
|
"is_default": false,
|
|
87
|
-
"endpoint_tools":
|
|
87
|
+
"endpoint_tools": 78,
|
|
88
88
|
"composite_tools": 2,
|
|
89
|
-
"total_tools":
|
|
89
|
+
"total_tools": 80,
|
|
90
90
|
"tool_names": [
|
|
91
91
|
"cancel_anthropic_message_batch",
|
|
92
92
|
"cancel_batch",
|
|
@@ -125,6 +125,9 @@
|
|
|
125
125
|
"dispatch_volc_compatible_seedance_action_post",
|
|
126
126
|
"edit_image",
|
|
127
127
|
"edit_image_file",
|
|
128
|
+
"gemini_batch_embed_contents",
|
|
129
|
+
"gemini_count_tokens",
|
|
130
|
+
"gemini_embed_content",
|
|
128
131
|
"get_3_dtask",
|
|
129
132
|
"get_api_overview",
|
|
130
133
|
"get_gemini_model",
|
package/generated/tools.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"openapi": "3.0.3",
|
|
7
7
|
"title": "TokenLab AI Gateway",
|
|
8
8
|
"version": "1.0.0",
|
|
9
|
-
"sha256": "
|
|
9
|
+
"sha256": "a5d2c856f4c346924787a0870cf16ad748f54a51faeed9627d78d88ba20501ab"
|
|
10
10
|
},
|
|
11
11
|
"default_profile": "core",
|
|
12
12
|
"profiles": [
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"core",
|
|
15
15
|
"full"
|
|
16
16
|
],
|
|
17
|
-
"tool_count":
|
|
17
|
+
"tool_count": 78,
|
|
18
18
|
"tools": [
|
|
19
19
|
{
|
|
20
20
|
"name": "cancel_anthropic_message_batch",
|
|
@@ -174,12 +174,12 @@
|
|
|
174
174
|
"content_type": "application/json",
|
|
175
175
|
"auth": "required",
|
|
176
176
|
"tags": [
|
|
177
|
-
"
|
|
177
|
+
"Responses"
|
|
178
178
|
],
|
|
179
179
|
"profiles": [
|
|
180
180
|
"full"
|
|
181
181
|
],
|
|
182
|
-
"description": "Compact response context (OpenAI Responses API) Compacts
|
|
182
|
+
"description": "Compact response context (OpenAI Responses API) Compacts Responses input and returns the native `response.compaction` contract. The request model must be available on a same-protocol Responses path.",
|
|
183
183
|
"input_schema": {
|
|
184
184
|
"type": "object",
|
|
185
185
|
"properties": {
|
|
@@ -1031,7 +1031,7 @@
|
|
|
1031
1031
|
"core",
|
|
1032
1032
|
"full"
|
|
1033
1033
|
],
|
|
1034
|
-
"description": "Create chat completion
|
|
1034
|
+
"description": "Create an OpenAI-compatible chat completion. For inline image_url data URLs, declare the byte-accurate image MIME type. The MCP boundary corrects recognized PNG, JPEG, WebP, and GIF payloads declared as application/octet-stream and rejects unrecognized generic binary image payloads before sending a billable request.",
|
|
1035
1035
|
"input_schema": {
|
|
1036
1036
|
"type": "object",
|
|
1037
1037
|
"properties": {
|
|
@@ -1344,6 +1344,26 @@
|
|
|
1344
1344
|
}
|
|
1345
1345
|
}
|
|
1346
1346
|
},
|
|
1347
|
+
"functions": {
|
|
1348
|
+
"type": "array",
|
|
1349
|
+
"description": "Deprecated function definitions retained by the official Chat Completions contract.",
|
|
1350
|
+
"items": {
|
|
1351
|
+
"type": "object",
|
|
1352
|
+
"additionalProperties": true
|
|
1353
|
+
}
|
|
1354
|
+
},
|
|
1355
|
+
"function_call": {
|
|
1356
|
+
"oneOf": [
|
|
1357
|
+
{
|
|
1358
|
+
"type": "string"
|
|
1359
|
+
},
|
|
1360
|
+
{
|
|
1361
|
+
"type": "object",
|
|
1362
|
+
"additionalProperties": true
|
|
1363
|
+
}
|
|
1364
|
+
],
|
|
1365
|
+
"description": "Deprecated function-call selection retained by the official Chat Completions contract."
|
|
1366
|
+
},
|
|
1347
1367
|
"tool_choice": {
|
|
1348
1368
|
"oneOf": [
|
|
1349
1369
|
{
|
|
@@ -1427,11 +1447,6 @@
|
|
|
1427
1447
|
"maximum": 20,
|
|
1428
1448
|
"description": "Number of most likely tokens to return at each position when logprobs is enabled."
|
|
1429
1449
|
},
|
|
1430
|
-
"top_k": {
|
|
1431
|
-
"type": "integer",
|
|
1432
|
-
"minimum": 0,
|
|
1433
|
-
"description": "Top-k sampling cutoff for compatible providers."
|
|
1434
|
-
},
|
|
1435
1450
|
"logit_bias": {
|
|
1436
1451
|
"type": "object",
|
|
1437
1452
|
"additionalProperties": {
|
|
@@ -1468,18 +1483,6 @@
|
|
|
1468
1483
|
},
|
|
1469
1484
|
"description": "Language settings for models that translate audio or video through Chat Completions."
|
|
1470
1485
|
},
|
|
1471
|
-
"speech_rate": {
|
|
1472
|
-
"type": "number",
|
|
1473
|
-
"minimum": 0.5,
|
|
1474
|
-
"maximum": 2,
|
|
1475
|
-
"description": "Speech rate for compatible translated audio output."
|
|
1476
|
-
},
|
|
1477
|
-
"repetition_penalty": {
|
|
1478
|
-
"type": "number",
|
|
1479
|
-
"minimum": 0,
|
|
1480
|
-
"exclusiveMinimum": true,
|
|
1481
|
-
"description": "Repetition penalty for compatible models."
|
|
1482
|
-
},
|
|
1483
1486
|
"prediction": {
|
|
1484
1487
|
"type": "object",
|
|
1485
1488
|
"additionalProperties": true,
|
|
@@ -1516,6 +1519,8 @@
|
|
|
1516
1519
|
"presence_penalty",
|
|
1517
1520
|
"frequency_penalty",
|
|
1518
1521
|
"tools",
|
|
1522
|
+
"functions",
|
|
1523
|
+
"function_call",
|
|
1519
1524
|
"tool_choice",
|
|
1520
1525
|
"response_format",
|
|
1521
1526
|
"seed",
|
|
@@ -1525,13 +1530,10 @@
|
|
|
1525
1530
|
"reasoning_effort",
|
|
1526
1531
|
"logprobs",
|
|
1527
1532
|
"top_logprobs",
|
|
1528
|
-
"top_k",
|
|
1529
1533
|
"logit_bias",
|
|
1530
1534
|
"modalities",
|
|
1531
1535
|
"audio",
|
|
1532
1536
|
"translation_options",
|
|
1533
|
-
"speech_rate",
|
|
1534
|
-
"repetition_penalty",
|
|
1535
1537
|
"prediction",
|
|
1536
1538
|
"service_tier"
|
|
1537
1539
|
],
|
|
@@ -1656,7 +1658,7 @@
|
|
|
1656
1658
|
"core",
|
|
1657
1659
|
"full"
|
|
1658
1660
|
],
|
|
1659
|
-
"description": "Generate content (Gemini-compatible) Generates content using
|
|
1661
|
+
"description": "Generate content (Gemini-compatible) Generates content using the native Gemini GenerateContent shape. This route is exposed only when the model details advertise Gemini requests and a same-protocol route is currently available. ProtoJSON lowerCamelCase and original proto snake_case field names are preserved. Unknown fields are forwarded best-effort and support is determined by the selected provider. **Authentication:** Use `?key=` query parameter, `x-goog-api-key` header, or `Authorization: Bearer` header.",
|
|
1660
1662
|
"input_schema": {
|
|
1661
1663
|
"type": "object",
|
|
1662
1664
|
"properties": {
|
|
@@ -1908,7 +1910,7 @@
|
|
|
1908
1910
|
"candidateCount": {
|
|
1909
1911
|
"type": "integer",
|
|
1910
1912
|
"minimum": 1,
|
|
1911
|
-
"description": "
|
|
1913
|
+
"description": "Requested number of response candidates. Support is determined by the selected service."
|
|
1912
1914
|
},
|
|
1913
1915
|
"responseModalities": {
|
|
1914
1916
|
"type": "array",
|
|
@@ -1964,7 +1966,7 @@
|
|
|
1964
1966
|
},
|
|
1965
1967
|
"tools": {
|
|
1966
1968
|
"type": "array",
|
|
1967
|
-
"description": "Gemini tools.
|
|
1969
|
+
"description": "Gemini tools. Tool types and combinations are interpreted by the selected service.",
|
|
1968
1970
|
"items": {
|
|
1969
1971
|
"type": "object",
|
|
1970
1972
|
"properties": {
|
|
@@ -2066,6 +2068,33 @@
|
|
|
2066
2068
|
"cachedContent": {
|
|
2067
2069
|
"type": "string",
|
|
2068
2070
|
"description": "Gemini cached content resource name for compatible models."
|
|
2071
|
+
},
|
|
2072
|
+
"system_instruction": {
|
|
2073
|
+
"type": "object",
|
|
2074
|
+
"additionalProperties": true,
|
|
2075
|
+
"description": "Original proto field-name spelling of systemInstruction."
|
|
2076
|
+
},
|
|
2077
|
+
"generation_config": {
|
|
2078
|
+
"type": "object",
|
|
2079
|
+
"additionalProperties": true,
|
|
2080
|
+
"description": "Original proto field-name spelling of generationConfig."
|
|
2081
|
+
},
|
|
2082
|
+
"safety_settings": {
|
|
2083
|
+
"type": "array",
|
|
2084
|
+
"items": {
|
|
2085
|
+
"type": "object",
|
|
2086
|
+
"additionalProperties": true
|
|
2087
|
+
},
|
|
2088
|
+
"description": "Original proto field-name spelling of safetySettings."
|
|
2089
|
+
},
|
|
2090
|
+
"tool_config": {
|
|
2091
|
+
"type": "object",
|
|
2092
|
+
"additionalProperties": true,
|
|
2093
|
+
"description": "Original proto field-name spelling of toolConfig."
|
|
2094
|
+
},
|
|
2095
|
+
"cached_content": {
|
|
2096
|
+
"type": "string",
|
|
2097
|
+
"description": "Original proto field-name spelling of cachedContent."
|
|
2069
2098
|
}
|
|
2070
2099
|
},
|
|
2071
2100
|
"required": [
|
|
@@ -2087,7 +2116,12 @@
|
|
|
2087
2116
|
"safetySettings",
|
|
2088
2117
|
"tools",
|
|
2089
2118
|
"toolConfig",
|
|
2090
|
-
"cachedContent"
|
|
2119
|
+
"cachedContent",
|
|
2120
|
+
"system_instruction",
|
|
2121
|
+
"generation_config",
|
|
2122
|
+
"safety_settings",
|
|
2123
|
+
"tool_config",
|
|
2124
|
+
"cached_content"
|
|
2091
2125
|
],
|
|
2092
2126
|
"files": []
|
|
2093
2127
|
},
|
|
@@ -2850,13 +2884,13 @@
|
|
|
2850
2884
|
"content_type": "application/json",
|
|
2851
2885
|
"auth": "required",
|
|
2852
2886
|
"tags": [
|
|
2853
|
-
"
|
|
2887
|
+
"Responses"
|
|
2854
2888
|
],
|
|
2855
2889
|
"profiles": [
|
|
2856
2890
|
"core",
|
|
2857
2891
|
"full"
|
|
2858
2892
|
],
|
|
2859
|
-
"description": "Create response (OpenAI Responses API) Creates a response using the OpenAI Responses API format.
|
|
2893
|
+
"description": "Create response (OpenAI Responses API) Creates a response using the native OpenAI Responses API shape. The model details must advertise the Responses request format and a same-protocol route must be currently available; model names and providers do not imply availability. Unknown request fields are forwarded on a best-effort basis and remain subject to the selected provider's support.",
|
|
2860
2894
|
"input_schema": {
|
|
2861
2895
|
"type": "object",
|
|
2862
2896
|
"properties": {
|
|
@@ -2899,7 +2933,7 @@
|
|
|
2899
2933
|
"type": "object",
|
|
2900
2934
|
"additionalProperties": true
|
|
2901
2935
|
},
|
|
2902
|
-
"description": "Tools available to the model.
|
|
2936
|
+
"description": "Tools available to the model. Tool types and combinations are validated by the selected service."
|
|
2903
2937
|
},
|
|
2904
2938
|
"tool_choice": {
|
|
2905
2939
|
"oneOf": [
|
|
@@ -2921,13 +2955,9 @@
|
|
|
2921
2955
|
"description": "When true, request obfuscated tokens in Responses stream events from compatible upstreams."
|
|
2922
2956
|
}
|
|
2923
2957
|
},
|
|
2924
|
-
"additionalProperties":
|
|
2958
|
+
"additionalProperties": true,
|
|
2925
2959
|
"description": "Responses streaming options."
|
|
2926
2960
|
},
|
|
2927
|
-
"reasoning_effort": {
|
|
2928
|
-
"type": "string",
|
|
2929
|
-
"description": "Reasoning effort hint for compatible models."
|
|
2930
|
-
},
|
|
2931
2961
|
"include": {
|
|
2932
2962
|
"type": "array",
|
|
2933
2963
|
"items": {
|
|
@@ -2942,17 +2972,35 @@
|
|
|
2942
2972
|
],
|
|
2943
2973
|
"description": "Service tier hint for compatible providers."
|
|
2944
2974
|
},
|
|
2945
|
-
"
|
|
2975
|
+
"truncation": {
|
|
2946
2976
|
"type": "string",
|
|
2947
|
-
"description": "Truncation strategy for long conversations
|
|
2977
|
+
"description": "Truncation strategy for long conversations."
|
|
2948
2978
|
},
|
|
2949
|
-
"
|
|
2950
|
-
"type": "
|
|
2951
|
-
"description": "
|
|
2979
|
+
"background": {
|
|
2980
|
+
"type": "boolean",
|
|
2981
|
+
"description": "Whether to run the response asynchronously."
|
|
2952
2982
|
},
|
|
2953
|
-
"
|
|
2983
|
+
"previous_response_id": {
|
|
2954
2984
|
"type": "string",
|
|
2955
|
-
"description": "
|
|
2985
|
+
"description": "ID of a previous response to continue."
|
|
2986
|
+
},
|
|
2987
|
+
"prompt": {
|
|
2988
|
+
"type": "object",
|
|
2989
|
+
"additionalProperties": true,
|
|
2990
|
+
"description": "Reference to a reusable prompt template and variables."
|
|
2991
|
+
},
|
|
2992
|
+
"store": {
|
|
2993
|
+
"type": "boolean",
|
|
2994
|
+
"description": "Whether the response is stored for later retrieval."
|
|
2995
|
+
},
|
|
2996
|
+
"reasoning": {
|
|
2997
|
+
"type": "object",
|
|
2998
|
+
"additionalProperties": true,
|
|
2999
|
+
"description": "Reasoning configuration."
|
|
3000
|
+
},
|
|
3001
|
+
"top_p": {
|
|
3002
|
+
"type": "number",
|
|
3003
|
+
"description": "Nucleus sampling probability."
|
|
2956
3004
|
},
|
|
2957
3005
|
"parallel_tool_calls": {
|
|
2958
3006
|
"type": "boolean",
|
|
@@ -2970,8 +3018,7 @@
|
|
|
2970
3018
|
}
|
|
2971
3019
|
},
|
|
2972
3020
|
"required": [
|
|
2973
|
-
"model"
|
|
2974
|
-
"input"
|
|
3021
|
+
"model"
|
|
2975
3022
|
],
|
|
2976
3023
|
"additionalProperties": false
|
|
2977
3024
|
},
|
|
@@ -2989,12 +3036,15 @@
|
|
|
2989
3036
|
"tools",
|
|
2990
3037
|
"tool_choice",
|
|
2991
3038
|
"stream_options",
|
|
2992
|
-
"reasoning_effort",
|
|
2993
3039
|
"include",
|
|
2994
3040
|
"service_tier",
|
|
2995
|
-
"
|
|
2996
|
-
"
|
|
2997
|
-
"
|
|
3041
|
+
"truncation",
|
|
3042
|
+
"background",
|
|
3043
|
+
"previous_response_id",
|
|
3044
|
+
"prompt",
|
|
3045
|
+
"store",
|
|
3046
|
+
"reasoning",
|
|
3047
|
+
"top_p",
|
|
2998
3048
|
"parallel_tool_calls",
|
|
2999
3049
|
"metadata",
|
|
3000
3050
|
"text"
|
|
@@ -4358,12 +4408,12 @@
|
|
|
4358
4408
|
"content_type": null,
|
|
4359
4409
|
"auth": "required",
|
|
4360
4410
|
"tags": [
|
|
4361
|
-
"
|
|
4411
|
+
"Responses"
|
|
4362
4412
|
],
|
|
4363
4413
|
"profiles": [
|
|
4364
4414
|
"full"
|
|
4365
4415
|
],
|
|
4366
|
-
"description": "Delete response Deletes a stored Responses API response
|
|
4416
|
+
"description": "Delete response Deletes a stored Responses API response. This operation is deletion, not cancellation of an in-progress response.",
|
|
4367
4417
|
"input_schema": {
|
|
4368
4418
|
"type": "object",
|
|
4369
4419
|
"properties": {
|
|
@@ -5266,6 +5316,206 @@
|
|
|
5266
5316
|
]
|
|
5267
5317
|
}
|
|
5268
5318
|
},
|
|
5319
|
+
{
|
|
5320
|
+
"name": "gemini_batch_embed_contents",
|
|
5321
|
+
"title": "Batch embed contents (Gemini-compatible)",
|
|
5322
|
+
"operation_id": "geminiBatchEmbedContents",
|
|
5323
|
+
"method": "POST",
|
|
5324
|
+
"path": "/v1beta/models/{model}:batchEmbedContents",
|
|
5325
|
+
"content_type": "application/json",
|
|
5326
|
+
"auth": "required",
|
|
5327
|
+
"tags": [
|
|
5328
|
+
"Gemini"
|
|
5329
|
+
],
|
|
5330
|
+
"profiles": [
|
|
5331
|
+
"full"
|
|
5332
|
+
],
|
|
5333
|
+
"description": "Batch embed contents (Gemini-compatible) Creates multiple embeddings using the native Gemini BatchEmbedContents contract.",
|
|
5334
|
+
"input_schema": {
|
|
5335
|
+
"type": "object",
|
|
5336
|
+
"properties": {
|
|
5337
|
+
"model": {
|
|
5338
|
+
"type": "string"
|
|
5339
|
+
},
|
|
5340
|
+
"key": {
|
|
5341
|
+
"type": "string"
|
|
5342
|
+
},
|
|
5343
|
+
"requests": {
|
|
5344
|
+
"type": "array",
|
|
5345
|
+
"items": {
|
|
5346
|
+
"type": "object",
|
|
5347
|
+
"additionalProperties": true
|
|
5348
|
+
}
|
|
5349
|
+
}
|
|
5350
|
+
},
|
|
5351
|
+
"required": [
|
|
5352
|
+
"model",
|
|
5353
|
+
"requests"
|
|
5354
|
+
],
|
|
5355
|
+
"additionalProperties": false
|
|
5356
|
+
},
|
|
5357
|
+
"bindings": {
|
|
5358
|
+
"path": [
|
|
5359
|
+
"model"
|
|
5360
|
+
],
|
|
5361
|
+
"query": [
|
|
5362
|
+
"key"
|
|
5363
|
+
],
|
|
5364
|
+
"header": [],
|
|
5365
|
+
"body": [
|
|
5366
|
+
"requests"
|
|
5367
|
+
],
|
|
5368
|
+
"files": []
|
|
5369
|
+
},
|
|
5370
|
+
"annotations": {
|
|
5371
|
+
"readOnlyHint": false,
|
|
5372
|
+
"destructiveHint": false,
|
|
5373
|
+
"idempotentHint": false,
|
|
5374
|
+
"openWorldHint": true
|
|
5375
|
+
}
|
|
5376
|
+
},
|
|
5377
|
+
{
|
|
5378
|
+
"name": "gemini_count_tokens",
|
|
5379
|
+
"title": "Count tokens (Gemini-compatible)",
|
|
5380
|
+
"operation_id": "geminiCountTokens",
|
|
5381
|
+
"method": "POST",
|
|
5382
|
+
"path": "/v1beta/models/{model}:countTokens",
|
|
5383
|
+
"content_type": "application/json",
|
|
5384
|
+
"auth": "required",
|
|
5385
|
+
"tags": [
|
|
5386
|
+
"Gemini"
|
|
5387
|
+
],
|
|
5388
|
+
"profiles": [
|
|
5389
|
+
"full"
|
|
5390
|
+
],
|
|
5391
|
+
"description": "Count tokens (Gemini-compatible) Counts tokens using the native Gemini CountTokens contract. Unknown fields and either official ProtoJSON field-name spelling are forwarded best-effort.",
|
|
5392
|
+
"input_schema": {
|
|
5393
|
+
"type": "object",
|
|
5394
|
+
"properties": {
|
|
5395
|
+
"model": {
|
|
5396
|
+
"type": "string"
|
|
5397
|
+
},
|
|
5398
|
+
"key": {
|
|
5399
|
+
"type": "string"
|
|
5400
|
+
},
|
|
5401
|
+
"contents": {
|
|
5402
|
+
"type": "array",
|
|
5403
|
+
"items": {
|
|
5404
|
+
"type": "object",
|
|
5405
|
+
"additionalProperties": true
|
|
5406
|
+
}
|
|
5407
|
+
},
|
|
5408
|
+
"generateContentRequest": {
|
|
5409
|
+
"type": "object",
|
|
5410
|
+
"additionalProperties": true
|
|
5411
|
+
},
|
|
5412
|
+
"generate_content_request": {
|
|
5413
|
+
"type": "object",
|
|
5414
|
+
"additionalProperties": true
|
|
5415
|
+
}
|
|
5416
|
+
},
|
|
5417
|
+
"required": [
|
|
5418
|
+
"model"
|
|
5419
|
+
],
|
|
5420
|
+
"additionalProperties": false
|
|
5421
|
+
},
|
|
5422
|
+
"bindings": {
|
|
5423
|
+
"path": [
|
|
5424
|
+
"model"
|
|
5425
|
+
],
|
|
5426
|
+
"query": [
|
|
5427
|
+
"key"
|
|
5428
|
+
],
|
|
5429
|
+
"header": [],
|
|
5430
|
+
"body": [
|
|
5431
|
+
"contents",
|
|
5432
|
+
"generateContentRequest",
|
|
5433
|
+
"generate_content_request"
|
|
5434
|
+
],
|
|
5435
|
+
"files": []
|
|
5436
|
+
},
|
|
5437
|
+
"annotations": {
|
|
5438
|
+
"readOnlyHint": false,
|
|
5439
|
+
"destructiveHint": false,
|
|
5440
|
+
"idempotentHint": false,
|
|
5441
|
+
"openWorldHint": true
|
|
5442
|
+
}
|
|
5443
|
+
},
|
|
5444
|
+
{
|
|
5445
|
+
"name": "gemini_embed_content",
|
|
5446
|
+
"title": "Embed content (Gemini-compatible)",
|
|
5447
|
+
"operation_id": "geminiEmbedContent",
|
|
5448
|
+
"method": "POST",
|
|
5449
|
+
"path": "/v1beta/models/{model}:embedContent",
|
|
5450
|
+
"content_type": "application/json",
|
|
5451
|
+
"auth": "required",
|
|
5452
|
+
"tags": [
|
|
5453
|
+
"Gemini"
|
|
5454
|
+
],
|
|
5455
|
+
"profiles": [
|
|
5456
|
+
"full"
|
|
5457
|
+
],
|
|
5458
|
+
"description": "Embed content (Gemini-compatible) Creates an embedding using the native Gemini EmbedContent contract.",
|
|
5459
|
+
"input_schema": {
|
|
5460
|
+
"type": "object",
|
|
5461
|
+
"properties": {
|
|
5462
|
+
"model": {
|
|
5463
|
+
"type": "string"
|
|
5464
|
+
},
|
|
5465
|
+
"key": {
|
|
5466
|
+
"type": "string"
|
|
5467
|
+
},
|
|
5468
|
+
"content": {
|
|
5469
|
+
"type": "object",
|
|
5470
|
+
"additionalProperties": true
|
|
5471
|
+
},
|
|
5472
|
+
"taskType": {
|
|
5473
|
+
"type": "string"
|
|
5474
|
+
},
|
|
5475
|
+
"task_type": {
|
|
5476
|
+
"type": "string"
|
|
5477
|
+
},
|
|
5478
|
+
"title": {
|
|
5479
|
+
"type": "string"
|
|
5480
|
+
},
|
|
5481
|
+
"outputDimensionality": {
|
|
5482
|
+
"type": "integer"
|
|
5483
|
+
},
|
|
5484
|
+
"output_dimensionality": {
|
|
5485
|
+
"type": "integer"
|
|
5486
|
+
}
|
|
5487
|
+
},
|
|
5488
|
+
"required": [
|
|
5489
|
+
"model",
|
|
5490
|
+
"content"
|
|
5491
|
+
],
|
|
5492
|
+
"additionalProperties": false
|
|
5493
|
+
},
|
|
5494
|
+
"bindings": {
|
|
5495
|
+
"path": [
|
|
5496
|
+
"model"
|
|
5497
|
+
],
|
|
5498
|
+
"query": [
|
|
5499
|
+
"key"
|
|
5500
|
+
],
|
|
5501
|
+
"header": [],
|
|
5502
|
+
"body": [
|
|
5503
|
+
"content",
|
|
5504
|
+
"taskType",
|
|
5505
|
+
"task_type",
|
|
5506
|
+
"title",
|
|
5507
|
+
"outputDimensionality",
|
|
5508
|
+
"output_dimensionality"
|
|
5509
|
+
],
|
|
5510
|
+
"files": []
|
|
5511
|
+
},
|
|
5512
|
+
"annotations": {
|
|
5513
|
+
"readOnlyHint": false,
|
|
5514
|
+
"destructiveHint": false,
|
|
5515
|
+
"idempotentHint": false,
|
|
5516
|
+
"openWorldHint": true
|
|
5517
|
+
}
|
|
5518
|
+
},
|
|
5269
5519
|
{
|
|
5270
5520
|
"name": "get_3_dtask",
|
|
5271
5521
|
"title": "Get 3D task status",
|
|
@@ -7130,7 +7380,7 @@
|
|
|
7130
7380
|
"content_type": null,
|
|
7131
7381
|
"auth": "required",
|
|
7132
7382
|
"tags": [
|
|
7133
|
-
"
|
|
7383
|
+
"Responses"
|
|
7134
7384
|
],
|
|
7135
7385
|
"profiles": [
|
|
7136
7386
|
"full"
|
|
@@ -7142,6 +7392,25 @@
|
|
|
7142
7392
|
"id": {
|
|
7143
7393
|
"type": "string",
|
|
7144
7394
|
"description": "Response id returned by POST /v1/responses."
|
|
7395
|
+
},
|
|
7396
|
+
"include": {
|
|
7397
|
+
"type": "array",
|
|
7398
|
+
"items": {
|
|
7399
|
+
"type": "string"
|
|
7400
|
+
},
|
|
7401
|
+
"description": "Additional response fields to include."
|
|
7402
|
+
},
|
|
7403
|
+
"include_obfuscation": {
|
|
7404
|
+
"type": "boolean",
|
|
7405
|
+
"description": "Whether streamed events include obfuscation fields."
|
|
7406
|
+
},
|
|
7407
|
+
"stream": {
|
|
7408
|
+
"type": "boolean",
|
|
7409
|
+
"description": "Whether to retrieve the response as an event stream."
|
|
7410
|
+
},
|
|
7411
|
+
"starting_after": {
|
|
7412
|
+
"type": "integer",
|
|
7413
|
+
"description": "Sequence number after which streaming events are returned."
|
|
7145
7414
|
}
|
|
7146
7415
|
},
|
|
7147
7416
|
"required": [
|
|
@@ -7153,7 +7422,12 @@
|
|
|
7153
7422
|
"path": [
|
|
7154
7423
|
"id"
|
|
7155
7424
|
],
|
|
7156
|
-
"query": [
|
|
7425
|
+
"query": [
|
|
7426
|
+
"include",
|
|
7427
|
+
"include_obfuscation",
|
|
7428
|
+
"stream",
|
|
7429
|
+
"starting_after"
|
|
7430
|
+
],
|
|
7157
7431
|
"header": [],
|
|
7158
7432
|
"body": [],
|
|
7159
7433
|
"files": []
|
package/llms-install.md
CHANGED
|
@@ -34,7 +34,7 @@ Public model catalog and pricing tools work without credentials. When inference
|
|
|
34
34
|
}
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
Set `TOKENLAB_MCP_TOOL_PROFILE=catalog` when the client should expose only the six public discovery tools. The default `core` profile exposes 31 tools, and `full` exposes
|
|
37
|
+
Set `TOKENLAB_MCP_TOOL_PROFILE=catalog` when the client should expose only the six public discovery tools. The default `core` profile exposes 31 tools, and `full` exposes 80.
|
|
38
38
|
|
|
39
39
|
## Verification
|
|
40
40
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tokenlabai/mcp-server",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.12",
|
|
4
4
|
"description": "OpenAPI-generated TokenLab MCP server with catalog, native AI, multimodal, resource, prompt, and async task support.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -18,15 +18,17 @@
|
|
|
18
18
|
"llms-install.md",
|
|
19
19
|
"scripts/generate-contract.mjs",
|
|
20
20
|
"scripts/sync-contract.mjs",
|
|
21
|
-
"src/index.js"
|
|
21
|
+
"src/index.js",
|
|
22
|
+
"src/media-mime.js"
|
|
22
23
|
],
|
|
23
24
|
"scripts": {
|
|
24
25
|
"start": "node ./src/index.js",
|
|
25
26
|
"contract:generate": "node ./scripts/generate-contract.mjs",
|
|
26
27
|
"contract:check": "node ./scripts/generate-contract.mjs --check",
|
|
28
|
+
"contract:source-check": "node ./scripts/sync-contract.mjs --check",
|
|
27
29
|
"contract:sync": "node ./scripts/sync-contract.mjs",
|
|
28
30
|
"version": "node ./scripts/sync-version.mjs && npm run contract:generate",
|
|
29
|
-
"test": "node --check ./src/index.js && node --check ./scripts/generate-contract.mjs && npm run contract:check && node --test"
|
|
31
|
+
"test": "node --check ./src/index.js && node --check ./src/media-mime.js && node --check ./scripts/generate-contract.mjs && node --check ./scripts/sync-contract.mjs && npm run contract:check && node --test"
|
|
30
32
|
},
|
|
31
33
|
"keywords": [
|
|
32
34
|
"mcp",
|