@2kw/ai-mcp-server 6.3.0 → 6.4.0-dev.7
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/dist/lib/agent-run.js +2 -0
- package/dist/tools/knowledge.js +3 -3
- package/package.json +1 -1
package/dist/lib/agent-run.js
CHANGED
|
@@ -84,6 +84,7 @@ function parseArguments(raw) {
|
|
|
84
84
|
/**
|
|
85
85
|
* Output item types the envelope decodes, or that never hold a run: text, reasoning and finished
|
|
86
86
|
* connector calls. A pause on anything else (a connector approval's `mcp_approval_request`) is named.
|
|
87
|
+
* `backbone:tool_image` is an image a finished `ViewImage` call attached (#1244): it never holds a run.
|
|
87
88
|
*/
|
|
88
89
|
const DECODED_ITEM_TYPES = new Set([
|
|
89
90
|
"message",
|
|
@@ -92,6 +93,7 @@ const DECODED_ITEM_TYPES = new Set([
|
|
|
92
93
|
"function_call_output",
|
|
93
94
|
"backbone:approval_request",
|
|
94
95
|
"backbone:connector_auth_request",
|
|
96
|
+
"backbone:tool_image",
|
|
95
97
|
"mcp_call",
|
|
96
98
|
"mcp_list_tools",
|
|
97
99
|
]);
|
package/dist/tools/knowledge.js
CHANGED
|
@@ -46,7 +46,7 @@ const TEXT_SEARCH_LANGUAGES = [
|
|
|
46
46
|
const knowledgeBaseFields = {
|
|
47
47
|
name: z.string().min(1).describe("Knowledge base name"),
|
|
48
48
|
slug: z.string().min(1).describe("URL-safe slug, lowercase letters and digits joined by single dashes"),
|
|
49
|
-
embeddingProviderId: z.string().min(1).describe("Provider id serving the embedding model"),
|
|
49
|
+
embeddingProviderId: z.string().min(1).describe("Provider id serving the embedding model, or builtin for the platform's built-in models (text-embedding-3-small, text-embedding-3-large; charged per input token). Changing it on update re-embeds nothing: stored vectors stay comparable only if the new provider serves the same model at the same width; the safe move is a new knowledge base with the documents uploaded again."),
|
|
50
50
|
embeddingModel: z.string().min(1).describe("Embedding model id"),
|
|
51
51
|
embeddingDim: z.number().int().positive().describe("Embedding dimension. Fixed at creation — on update this must match the existing value, it is not applied as a change."),
|
|
52
52
|
description: z.string().optional().describe("Knowledge base description"),
|
|
@@ -55,7 +55,7 @@ const knowledgeBaseFields = {
|
|
|
55
55
|
chunkOverlap: z.number().int().min(0).max(2000).optional().describe("Chunk overlap (0-2000), must be smaller than chunkSize"),
|
|
56
56
|
parentChunkSize: z.number().int().min(100).max(8000).optional().describe("Parent chunk size for hierarchical chunking (100-8000), must exceed chunkSize"),
|
|
57
57
|
hybridSearchEnabled: z.boolean().optional().describe("Enable hybrid dense + lexical search"),
|
|
58
|
-
rerankerProviderId: z.string().optional().describe("Provider id used for reranking"),
|
|
58
|
+
rerankerProviderId: z.string().optional().describe("Provider id used for reranking. builtin is refused: there is no built-in reranker."),
|
|
59
59
|
textSearchLanguage: z.enum(TEXT_SEARCH_LANGUAGES).optional().describe("Text-search language for the lexical leg (default simple on create). On update, omit to leave the active and any pending language untouched — resending the current value would cancel a reindex in progress; changing it starts one in the background."),
|
|
60
60
|
};
|
|
61
61
|
function buildKnowledgeBaseBody(params) {
|
|
@@ -380,7 +380,7 @@ export function register(server, client) {
|
|
|
380
380
|
}
|
|
381
381
|
});
|
|
382
382
|
// ── list_provider_embedding_models ────────────────────────────────────────
|
|
383
|
-
server.tool("2kw_list_provider_embedding_models", "List embedding models served by a provider that fit a provisioned embedding dimension. Empty when the provider type has no catalogued embedding models; never an error. Use this to pick embeddingModel/embeddingDim for 2kw_create_knowledge_base.", { providerId: z.string().describe("The provider ID") }, async ({ providerId }) => {
|
|
383
|
+
server.tool("2kw_list_provider_embedding_models", "List embedding models served by a provider that fit a provisioned embedding dimension. Empty when the provider type has no catalogued embedding models; never an error. Pass builtin to list the platform's built-in embedding models. Use this to pick embeddingModel/embeddingDim for 2kw_create_knowledge_base.", { providerId: z.string().describe("The provider ID, or builtin for the platform's built-in embedding models") }, async ({ providerId }) => {
|
|
384
384
|
try {
|
|
385
385
|
const { data } = await client.GET("/v1/providers/{providerId}/embedding-models", {
|
|
386
386
|
params: { path: { providerId } },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@2kw/ai-mcp-server",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.4.0-dev.7",
|
|
4
4
|
"description": "MCP server for 2kw.ai — EU-hosted AI platform: OpenAI-compatible LLM gateway, schema-driven document extraction, transcription, agents with a knowledge base, and cost observability. 158 tools for Claude Code, Cursor, and Windsurf.",
|
|
5
5
|
"mcpName": "ai.2kw/mcp-server",
|
|
6
6
|
"keywords": [
|