mcp-dataverse 0.2.5 → 0.3.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.
Files changed (112) hide show
  1. package/dist/doctor.d.ts +7 -0
  2. package/dist/doctor.d.ts.map +1 -0
  3. package/dist/doctor.js +103 -0
  4. package/dist/doctor.js.map +1 -0
  5. package/dist/http-server.d.ts +3 -0
  6. package/dist/http-server.d.ts.map +1 -0
  7. package/dist/http-server.js +61 -0
  8. package/dist/http-server.js.map +1 -0
  9. package/dist/server.js +112 -110
  10. package/dist/server.js.map +1 -1
  11. package/dist/tools/actions.tools.d.ts +36 -0
  12. package/dist/tools/actions.tools.d.ts.map +1 -1
  13. package/dist/tools/actions.tools.js +53 -18
  14. package/dist/tools/actions.tools.js.map +1 -1
  15. package/dist/tools/annotations.tools.d.ts +12 -0
  16. package/dist/tools/annotations.tools.d.ts.map +1 -1
  17. package/dist/tools/annotations.tools.js +24 -25
  18. package/dist/tools/annotations.tools.js.map +1 -1
  19. package/dist/tools/audit.tools.d.ts +6 -0
  20. package/dist/tools/audit.tools.d.ts.map +1 -1
  21. package/dist/tools/audit.tools.js +8 -8
  22. package/dist/tools/audit.tools.js.map +1 -1
  23. package/dist/tools/auth.tools.d.ts +6 -0
  24. package/dist/tools/auth.tools.d.ts.map +1 -1
  25. package/dist/tools/auth.tools.js +17 -13
  26. package/dist/tools/auth.tools.js.map +1 -1
  27. package/dist/tools/batch.tools.d.ts +6 -0
  28. package/dist/tools/batch.tools.d.ts.map +1 -1
  29. package/dist/tools/batch.tools.js +11 -8
  30. package/dist/tools/batch.tools.js.map +1 -1
  31. package/dist/tools/crud.tools.d.ts +36 -0
  32. package/dist/tools/crud.tools.d.ts.map +1 -1
  33. package/dist/tools/crud.tools.js +58 -52
  34. package/dist/tools/crud.tools.js.map +1 -1
  35. package/dist/tools/customization.tools.d.ts +18 -0
  36. package/dist/tools/customization.tools.d.ts.map +1 -1
  37. package/dist/tools/customization.tools.js +27 -29
  38. package/dist/tools/customization.tools.js.map +1 -1
  39. package/dist/tools/environment.tools.d.ts +12 -0
  40. package/dist/tools/environment.tools.d.ts.map +1 -1
  41. package/dist/tools/environment.tools.js +15 -6
  42. package/dist/tools/environment.tools.js.map +1 -1
  43. package/dist/tools/file.tools.d.ts +12 -0
  44. package/dist/tools/file.tools.d.ts.map +1 -1
  45. package/dist/tools/file.tools.js +29 -30
  46. package/dist/tools/file.tools.js.map +1 -1
  47. package/dist/tools/impersonate.tools.d.ts +6 -0
  48. package/dist/tools/impersonate.tools.d.ts.map +1 -1
  49. package/dist/tools/impersonate.tools.js +12 -12
  50. package/dist/tools/impersonate.tools.js.map +1 -1
  51. package/dist/tools/metadata.tools.d.ts +42 -0
  52. package/dist/tools/metadata.tools.d.ts.map +1 -1
  53. package/dist/tools/metadata.tools.js +92 -47
  54. package/dist/tools/metadata.tools.js.map +1 -1
  55. package/dist/tools/org.tools.d.ts +6 -0
  56. package/dist/tools/org.tools.d.ts.map +1 -1
  57. package/dist/tools/org.tools.js +10 -8
  58. package/dist/tools/org.tools.js.map +1 -1
  59. package/dist/tools/output.utils.d.ts +21 -0
  60. package/dist/tools/output.utils.d.ts.map +1 -0
  61. package/dist/tools/output.utils.js +31 -0
  62. package/dist/tools/output.utils.js.map +1 -0
  63. package/dist/tools/quality.tools.d.ts +6 -0
  64. package/dist/tools/quality.tools.d.ts.map +1 -1
  65. package/dist/tools/quality.tools.js +8 -3
  66. package/dist/tools/quality.tools.js.map +1 -1
  67. package/dist/tools/query.tools.d.ts +18 -0
  68. package/dist/tools/query.tools.d.ts.map +1 -1
  69. package/dist/tools/query.tools.js +42 -9
  70. package/dist/tools/query.tools.js.map +1 -1
  71. package/dist/tools/relations.tools.d.ts +12 -0
  72. package/dist/tools/relations.tools.d.ts.map +1 -1
  73. package/dist/tools/relations.tools.js +15 -20
  74. package/dist/tools/relations.tools.js.map +1 -1
  75. package/dist/tools/search.tools.d.ts +6 -0
  76. package/dist/tools/search.tools.d.ts.map +1 -1
  77. package/dist/tools/search.tools.js +11 -3
  78. package/dist/tools/search.tools.js.map +1 -1
  79. package/dist/tools/solution.tools.d.ts +18 -0
  80. package/dist/tools/solution.tools.d.ts.map +1 -1
  81. package/dist/tools/solution.tools.js +29 -14
  82. package/dist/tools/solution.tools.js.map +1 -1
  83. package/dist/tools/teams.tools.d.ts +6 -0
  84. package/dist/tools/teams.tools.d.ts.map +1 -1
  85. package/dist/tools/teams.tools.js +8 -8
  86. package/dist/tools/teams.tools.js.map +1 -1
  87. package/dist/tools/tool-registry.d.ts +34 -0
  88. package/dist/tools/tool-registry.d.ts.map +1 -0
  89. package/dist/tools/tool-registry.js +31 -0
  90. package/dist/tools/tool-registry.js.map +1 -0
  91. package/dist/tools/trace.tools.d.ts +12 -0
  92. package/dist/tools/trace.tools.d.ts.map +1 -1
  93. package/dist/tools/trace.tools.js +17 -6
  94. package/dist/tools/trace.tools.js.map +1 -1
  95. package/dist/tools/tracking.tools.d.ts +6 -0
  96. package/dist/tools/tracking.tools.d.ts.map +1 -1
  97. package/dist/tools/tracking.tools.js +13 -3
  98. package/dist/tools/tracking.tools.js.map +1 -1
  99. package/dist/tools/users.tools.d.ts +12 -0
  100. package/dist/tools/users.tools.d.ts.map +1 -1
  101. package/dist/tools/users.tools.js +21 -22
  102. package/dist/tools/users.tools.js.map +1 -1
  103. package/dist/tools/views.tools.d.ts +6 -0
  104. package/dist/tools/views.tools.d.ts.map +1 -1
  105. package/dist/tools/views.tools.js +15 -16
  106. package/dist/tools/views.tools.js.map +1 -1
  107. package/dist/transport.d.ts +6 -0
  108. package/dist/transport.d.ts.map +1 -0
  109. package/dist/transport.js +21 -0
  110. package/dist/transport.js.map +1 -0
  111. package/package.json +2 -1
  112. package/server.json +2 -2
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Diagnostic CLI command for mcp-dataverse.
4
+ * Usage: npx mcp-dataverse doctor
5
+ */
6
+ export declare function runDoctor(): Promise<void>;
7
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAyG/C"}
package/dist/doctor.js ADDED
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Diagnostic CLI command for mcp-dataverse.
4
+ * Usage: npx mcp-dataverse doctor
5
+ */
6
+ export async function runDoctor() {
7
+ const out = (msg) => process.stdout.write(msg + "\n");
8
+ const ok = (msg) => out(` ✅ ${msg}`);
9
+ const fail = (msg) => out(` ❌ ${msg}`);
10
+ out("");
11
+ out("🏥 mcp-dataverse doctor");
12
+ out("─".repeat(50));
13
+ out("");
14
+ let allPassed = true;
15
+ // 1. Node.js version check
16
+ out("📋 Environment");
17
+ const nodeVersion = process.version;
18
+ const major = parseInt(nodeVersion.slice(1).split(".")[0], 10);
19
+ if (major >= 20) {
20
+ ok(`Node.js ${nodeVersion}`);
21
+ }
22
+ else {
23
+ fail(`Node.js ${nodeVersion} — requires v20+`);
24
+ allPassed = false;
25
+ }
26
+ out("");
27
+ // 2. Configuration check
28
+ out("⚙️ Configuration");
29
+ try {
30
+ const { loadConfig } = await import("./config/config.loader.js");
31
+ const config = loadConfig();
32
+ ok(`Environment URL: ${config.environmentUrl}`);
33
+ ok(`Timeout: ${config.requestTimeoutMs}ms, Retries: ${config.maxRetries}`);
34
+ }
35
+ catch (err) {
36
+ const msg = err instanceof Error ? err.message : String(err);
37
+ fail(`Configuration error: ${msg}`);
38
+ allPassed = false;
39
+ // Can't proceed without config
40
+ out("");
41
+ out(allPassed ? "✅ All checks passed!" : "❌ Some checks failed.");
42
+ process.exit(allPassed ? 0 : 1);
43
+ }
44
+ out("");
45
+ // 3. Authentication check
46
+ out("🔑 Authentication");
47
+ try {
48
+ const { loadConfig } = await import("./config/config.loader.js");
49
+ const config = loadConfig();
50
+ const { createAuthProvider } = await import("./auth/auth-provider.factory.js");
51
+ const authProvider = createAuthProvider(config);
52
+ const token = await authProvider.getToken();
53
+ if (token) {
54
+ ok("Token acquired successfully");
55
+ const parts = token.split(".");
56
+ if (parts.length === 3) {
57
+ ok("Valid JWT token format");
58
+ }
59
+ }
60
+ else {
61
+ fail("No token returned");
62
+ allPassed = false;
63
+ }
64
+ }
65
+ catch (err) {
66
+ const msg = err instanceof Error ? err.message : String(err);
67
+ fail(`Auth failed: ${msg}`);
68
+ allPassed = false;
69
+ }
70
+ out("");
71
+ // 4. API Connectivity (WhoAmI)
72
+ out("🌐 Dataverse API");
73
+ try {
74
+ const { loadConfig } = await import("./config/config.loader.js");
75
+ const config = loadConfig();
76
+ const { createAuthProvider } = await import("./auth/auth-provider.factory.js");
77
+ const { DataverseAdvancedClient } = await import("./dataverse/dataverse-client-advanced.js");
78
+ const authProvider = createAuthProvider(config);
79
+ const client = new DataverseAdvancedClient(authProvider, config.maxRetries, config.requestTimeoutMs);
80
+ const result = await client.whoAmI();
81
+ ok(`Organization: ${result.OrganizationName || "N/A"}`);
82
+ ok(`User ID: ${result.UserId || "N/A"}`);
83
+ ok(`Business Unit: ${result.BusinessUnitId || "N/A"}`);
84
+ ok(`Environment: ${result.EnvironmentUrl || config.environmentUrl}`);
85
+ }
86
+ catch (err) {
87
+ const msg = err instanceof Error ? err.message : String(err);
88
+ fail(`API call failed: ${msg}`);
89
+ allPassed = false;
90
+ }
91
+ out("");
92
+ // Summary
93
+ out("─".repeat(50));
94
+ if (allPassed) {
95
+ out("✅ All checks passed! Your mcp-dataverse setup is healthy.");
96
+ }
97
+ else {
98
+ out("❌ Some checks failed. Review the errors above.");
99
+ }
100
+ out("");
101
+ process.exit(allPassed ? 0 : 1);
102
+ }
103
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
+ export declare function startHttpTransport(server: Server, port: number, version: string, toolCount: number): Promise<void>;
3
+ //# sourceMappingURL=http-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA2Ef"}
@@ -0,0 +1,61 @@
1
+ import { createServer } from "http";
2
+ import { randomUUID } from "crypto";
3
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
4
+ export async function startHttpTransport(server, port, version, toolCount) {
5
+ const transport = new StreamableHTTPServerTransport({
6
+ sessionIdGenerator: () => randomUUID(),
7
+ enableJsonResponse: true,
8
+ });
9
+ await server.connect(transport);
10
+ const httpServer = createServer(async (req, res) => {
11
+ // CORS headers for browser-based clients
12
+ res.setHeader("Access-Control-Allow-Origin", "*");
13
+ res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
14
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type, mcp-session-id");
15
+ if (req.method === "OPTIONS") {
16
+ res.writeHead(204);
17
+ res.end();
18
+ return;
19
+ }
20
+ const url = new URL(req.url ?? "/", `http://localhost:${port}`);
21
+ if (url.pathname === "/health" && req.method === "GET") {
22
+ res.writeHead(200, { "Content-Type": "application/json" });
23
+ res.end(JSON.stringify({ status: "ok", version, tools: toolCount }));
24
+ return;
25
+ }
26
+ if (url.pathname === "/mcp") {
27
+ try {
28
+ await transport.handleRequest(req, res);
29
+ }
30
+ catch {
31
+ if (!res.headersSent) {
32
+ res.writeHead(500, { "Content-Type": "application/json" });
33
+ res.end(JSON.stringify({ error: "Internal server error" }));
34
+ }
35
+ }
36
+ return;
37
+ }
38
+ res.writeHead(404, { "Content-Type": "application/json" });
39
+ res.end(JSON.stringify({ error: "Not found" }));
40
+ });
41
+ await new Promise((resolve) => {
42
+ httpServer.listen(port, () => {
43
+ process.stderr.write(`MCP Dataverse HTTP server listening on http://localhost:${port}/mcp\n`);
44
+ resolve();
45
+ });
46
+ });
47
+ // Keep the process alive; clean shutdown on signals
48
+ const shutdown = async () => {
49
+ process.stderr.write("Shutting down HTTP server...\n");
50
+ await transport.close();
51
+ httpServer.close();
52
+ process.exit(0);
53
+ };
54
+ process.on("SIGINT", shutdown);
55
+ process.on("SIGTERM", shutdown);
56
+ // Block until server closes
57
+ await new Promise((resolve) => {
58
+ httpServer.on("close", resolve);
59
+ });
60
+ }
61
+ //# sourceMappingURL=http-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -5,9 +5,11 @@ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextpro
5
5
  import { readFileSync } from "fs";
6
6
  import { join, dirname } from "path";
7
7
  import { fileURLToPath } from "url";
8
+ import { parseTransportArgs } from "./transport.js";
8
9
  import { loadConfig } from "./config/config.loader.js";
9
10
  import { createAuthProvider } from "./auth/auth-provider.factory.js";
10
11
  import { DataverseAdvancedClient } from "./dataverse/dataverse-client-advanced.js";
12
+ import { createToolRegistry } from "./tools/tool-registry.js";
11
13
  import { authTools, handleAuthTool } from "./tools/auth.tools.js";
12
14
  import { metadataTools, handleMetadataTool } from "./tools/metadata.tools.js";
13
15
  import { queryTools, handleQueryTool } from "./tools/query.tools.js";
@@ -30,117 +32,92 @@ import { viewTools, handleViewTool } from "./tools/views.tools.js";
30
32
  import { orgTools, handleOrgTool } from "./tools/org.tools.js";
31
33
  import { fileTools, handleFileTool } from "./tools/file.tools.js";
32
34
  import { teamTools, handleTeamTool } from "./tools/teams.tools.js";
33
- const ALL_TOOLS = [
34
- ...authTools,
35
- ...metadataTools,
36
- ...queryTools,
37
- ...crudTools,
38
- ...relationTools,
39
- ...actionTools,
40
- ...batchTools,
41
- ...trackingTools,
42
- ...solutionTools,
43
- ...impersonateTools,
44
- ...customizationTools,
45
- ...environmentTools,
46
- ...traceTools,
47
- ...searchTools,
48
- ...auditTools,
49
- ...qualityTools,
50
- ...annotationTools,
51
- ...userTools,
52
- ...viewTools,
53
- ...orgTools,
54
- ...fileTools,
55
- ...teamTools,
56
- ];
57
- // Pre-build routing sets once at startup to avoid per-request allocations
58
- const AUTH_TOOL_NAMES = new Set(authTools.map((t) => t.name));
59
- const METADATA_TOOL_NAMES = new Set(metadataTools.map((t) => t.name));
60
- const QUERY_TOOL_NAMES = new Set(queryTools.map((t) => t.name));
61
- const CRUD_TOOL_NAMES = new Set(crudTools.map((t) => t.name));
62
- const RELATION_TOOL_NAMES = new Set(relationTools.map((t) => t.name));
63
- const ACTION_TOOL_NAMES = new Set(actionTools.map((t) => t.name));
64
- const BATCH_TOOL_NAMES = new Set(batchTools.map((t) => t.name));
65
- const TRACKING_TOOL_NAMES = new Set(trackingTools.map((t) => t.name));
66
- const SOLUTION_TOOL_NAMES = new Set(solutionTools.map((t) => t.name));
67
- const IMPERSONATE_TOOL_NAMES = new Set(impersonateTools.map((t) => t.name));
68
- const CUSTOMIZATION_TOOL_NAMES = new Set(customizationTools.map((t) => t.name));
69
- const ENVIRONMENT_TOOL_NAMES = new Set(environmentTools.map((t) => t.name));
70
- const TRACE_TOOL_NAMES = new Set(traceTools.map((t) => t.name));
71
- const SEARCH_TOOL_NAMES = new Set(searchTools.map((t) => t.name));
72
- const AUDIT_TOOL_NAMES = new Set(auditTools.map((t) => t.name));
73
- const QUALITY_TOOL_NAMES = new Set(qualityTools.map((t) => t.name));
74
- const ANNOTATION_TOOL_NAMES = new Set(annotationTools.map((t) => t.name));
75
- const USER_TOOL_NAMES = new Set(userTools.map((t) => t.name));
76
- const VIEW_TOOL_NAMES = new Set(viewTools.map((t) => t.name));
77
- const ORG_TOOL_NAMES = new Set(orgTools.map((t) => t.name));
78
- const FILE_TOOL_NAMES = new Set(fileTools.map((t) => t.name));
79
- const TEAM_TOOL_NAMES = new Set(teamTools.map((t) => t.name));
35
+ // ── Tool Registry — Map-based O(1) dispatch ──────────────────────────────────
36
+ const registry = createToolRegistry([
37
+ { tools: authTools, handler: handleAuthTool },
38
+ { tools: metadataTools, handler: handleMetadataTool },
39
+ { tools: queryTools, handler: handleQueryTool },
40
+ { tools: crudTools, handler: handleCrudTool },
41
+ { tools: relationTools, handler: handleRelationTool },
42
+ { tools: actionTools, handler: handleActionTool },
43
+ { tools: batchTools, handler: handleBatchTool },
44
+ { tools: trackingTools, handler: handleTrackingTool },
45
+ { tools: solutionTools, handler: handleSolutionTool },
46
+ { tools: customizationTools, handler: handleCustomizationTool },
47
+ { tools: environmentTools, handler: handleEnvironmentTool },
48
+ { tools: traceTools, handler: handleTraceTool },
49
+ { tools: searchTools, handler: handleSearchTool },
50
+ { tools: auditTools, handler: handleAuditTool },
51
+ { tools: qualityTools, handler: handleQualityTool },
52
+ { tools: annotationTools, handler: handleAnnotationTool },
53
+ { tools: userTools, handler: handleUserTool },
54
+ { tools: viewTools, handler: handleViewTool },
55
+ { tools: orgTools, handler: handleOrgTool },
56
+ { tools: fileTools, handler: handleFileTool },
57
+ { tools: teamTools, handler: handleTeamTool },
58
+ ]);
59
+ // Impersonate is registered separately it has a special dispatch signature
60
+ const IMPERSONATE_NAMES = new Set(impersonateTools.map((t) => t.name));
80
61
  // Read version from package.json so server.ts never drifts out of sync
81
62
  const __dirname = dirname(fileURLToPath(import.meta.url));
82
63
  const SERVER_VERSION = JSON.parse(readFileSync(join(__dirname, "../package.json"), "utf-8")).version;
64
+ // ── Global MCP Instructions ──────────────────────────────────────────────────
65
+ const SERVER_INSTRUCTIONS = `You are connected to a Microsoft Dataverse environment via the mcp-dataverse server.
66
+
67
+ ## Recommended Workflow
68
+ 1. Start with dataverse_whoami to verify authentication.
69
+ 2. Use dataverse_list_tables to discover available tables (custom tables only by default).
70
+ 3. Use dataverse_get_table_metadata to inspect column names, types, and required fields before querying or writing.
71
+ 4. Query data with dataverse_query (OData) or dataverse_execute_fetchxml (complex joins/aggregations).
72
+ 5. Use dataverse_create / dataverse_update / dataverse_delete for record operations.
73
+
74
+ ## Best Practices
75
+ - Always specify $select to minimize payload size — never fetch all columns.
76
+ - Use $top to limit results (default 50, max 5000 per page).
77
+ - Prefer dataverse_query for simple reads; use dataverse_execute_fetchxml for aggregations, multi-table joins, or many-to-many traversal.
78
+ - Use dataverse_get_table_metadata before creating/updating records to confirm correct logical field names.
79
+ - For bulk operations (>5 records), use dataverse_batch_execute to reduce HTTP round-trips.
80
+ - Use dataverse_search for full-text search across multiple tables when you don't know which table contains the data.
81
+ - Check dataverse_get_relationships before building FetchXML joins or using dataverse_associate/dataverse_disassociate.
82
+
83
+ ## Safety
84
+ - dataverse_delete is irreversible — always confirm with the user first.
85
+ - Use optimistic concurrency (etag parameter) on updates to prevent lost changes.
86
+ - Impersonation requires explicit privilege and is denied for System Administrator users.
87
+
88
+ ## Performance
89
+ - Avoid retrieving more than 5000 records unless explicitly needed (use dataverse_retrieve_multiple_with_paging with maxTotal).
90
+ - Use server-side filtering ($filter / FetchXML conditions) instead of client-side filtering.
91
+ - Cache table metadata — it rarely changes during a session.
92
+ `;
83
93
  /**
84
- * Routes a tool call to its handler. Used directly by the request handler
85
- * and passed as the dispatch function to handleImpersonateTool.
94
+ * Routes a tool call to its handler via the registry Map.
95
+ * Used directly by the request handler and passed as the dispatch
96
+ * function to handleImpersonateTool.
86
97
  */
87
- async function dispatchTool(name, args, client) {
88
- if (AUTH_TOOL_NAMES.has(name))
89
- return handleAuthTool(name, args, client);
90
- if (METADATA_TOOL_NAMES.has(name))
91
- return handleMetadataTool(name, args, client);
92
- if (QUERY_TOOL_NAMES.has(name))
93
- return handleQueryTool(name, args, client);
94
- if (CRUD_TOOL_NAMES.has(name))
95
- return handleCrudTool(name, args, client);
96
- if (RELATION_TOOL_NAMES.has(name))
97
- return handleRelationTool(name, args, client);
98
- if (ACTION_TOOL_NAMES.has(name))
99
- return handleActionTool(name, args, client);
100
- if (BATCH_TOOL_NAMES.has(name))
101
- return handleBatchTool(name, args, client);
102
- if (TRACKING_TOOL_NAMES.has(name))
103
- return handleTrackingTool(name, args, client);
104
- if (SOLUTION_TOOL_NAMES.has(name))
105
- return handleSolutionTool(name, args, client);
106
- if (CUSTOMIZATION_TOOL_NAMES.has(name))
107
- return handleCustomizationTool(name, args, client);
108
- if (ENVIRONMENT_TOOL_NAMES.has(name))
109
- return handleEnvironmentTool(name, args, client);
110
- if (TRACE_TOOL_NAMES.has(name))
111
- return handleTraceTool(name, args, client);
112
- if (SEARCH_TOOL_NAMES.has(name))
113
- return handleSearchTool(name, args, client);
114
- if (AUDIT_TOOL_NAMES.has(name))
115
- return handleAuditTool(name, args, client);
116
- if (QUALITY_TOOL_NAMES.has(name))
117
- return handleQualityTool(name, args, client);
118
- if (ANNOTATION_TOOL_NAMES.has(name))
119
- return handleAnnotationTool(name, args, client);
120
- if (USER_TOOL_NAMES.has(name))
121
- return handleUserTool(name, args, client);
122
- if (VIEW_TOOL_NAMES.has(name))
123
- return handleViewTool(name, args, client);
124
- if (ORG_TOOL_NAMES.has(name))
125
- return handleOrgTool(name, args, client);
126
- if (FILE_TOOL_NAMES.has(name))
127
- return handleFileTool(name, args, client);
128
- if (TEAM_TOOL_NAMES.has(name))
129
- return handleTeamTool(name, args, client);
130
- throw new Error(`Unknown tool: ${name}`);
98
+ function dispatchTool(name, args, client) {
99
+ const handler = registry.getHandler(name);
100
+ if (!handler)
101
+ throw new Error(`Unknown tool: ${name}`);
102
+ return handler(name, args, client);
131
103
  }
132
104
  async function main() {
133
105
  const config = loadConfig();
134
106
  const authProvider = createAuthProvider(config);
135
107
  const client = new DataverseAdvancedClient(authProvider, config.maxRetries, config.requestTimeoutMs);
136
- const server = new Server({ name: "mcp-dataverse", version: SERVER_VERSION }, { capabilities: { tools: {} } });
108
+ const server = new Server({ name: "mcp-dataverse", version: SERVER_VERSION }, {
109
+ capabilities: { tools: {} },
110
+ instructions: SERVER_INSTRUCTIONS,
111
+ });
112
+ // Combine registry definitions with impersonate tools
113
+ const allToolDefs = [...registry.getAllDefinitions(), ...impersonateTools];
137
114
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
138
- tools: ALL_TOOLS,
115
+ tools: allToolDefs,
139
116
  }));
140
117
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
141
118
  const { name, arguments: args } = request.params;
142
119
  try {
143
- if (IMPERSONATE_TOOL_NAMES.has(name)) {
120
+ if (IMPERSONATE_NAMES.has(name)) {
144
121
  return handleImpersonateTool(name, args, client, dispatchTool);
145
122
  }
146
123
  return await dispatchTool(name, args, client);
@@ -153,26 +130,51 @@ async function main() {
153
130
  };
154
131
  }
155
132
  });
156
- const transport = new StdioServerTransport();
157
- await server.connect(transport);
158
- // Do not log to stdout — stdio transport uses stdout for protocol messages
159
- process.stderr.write("MCP Dataverse server started\n");
160
- // Proactively trigger authentication at startup so the device-code prompt
161
- // appears immediately in the VS Code MCP Output panel (View → Output → MCP),
162
- // rather than only on the first tool call.
163
- authProvider.getToken().then(() => {
164
- process.stderr.write("[mcp-dataverse] Authenticated ✓\n");
165
- }).catch((err) => {
166
- const msg = err instanceof Error ? err.message : String(err);
167
- process.stderr.write(`[mcp-dataverse] Authentication failed: ${msg}\n`);
168
- });
133
+ const transportArgs = parseTransportArgs();
134
+ if (transportArgs.transport === "http") {
135
+ const { startHttpTransport } = await import("./http-server.js");
136
+ const toolCount = allToolDefs.length;
137
+ process.stderr.write(`Starting HTTP transport on port ${transportArgs.port}...\n`);
138
+ // Trigger auth before accepting requests
139
+ try {
140
+ await authProvider.getToken();
141
+ process.stderr.write("[mcp-dataverse] Authenticated ✓\n");
142
+ }
143
+ catch (err) {
144
+ const msg = err instanceof Error ? err.message : String(err);
145
+ process.stderr.write(`[mcp-dataverse] Authentication failed: ${msg}\n`);
146
+ }
147
+ await startHttpTransport(server, transportArgs.port, SERVER_VERSION, toolCount);
148
+ }
149
+ else {
150
+ const transport = new StdioServerTransport();
151
+ await server.connect(transport);
152
+ // Do not log to stdout — stdio transport uses stdout for protocol messages
153
+ process.stderr.write("MCP Dataverse server started\n");
154
+ // Proactively trigger authentication at startup so the device-code prompt
155
+ // appears immediately in the VS Code MCP Output panel (View → Output → MCP),
156
+ // rather than only on the first tool call.
157
+ authProvider
158
+ .getToken()
159
+ .then(() => {
160
+ process.stderr.write("[mcp-dataverse] Authenticated ✓\n");
161
+ })
162
+ .catch((err) => {
163
+ const msg = err instanceof Error ? err.message : String(err);
164
+ process.stderr.write(`[mcp-dataverse] Authentication failed: ${msg}\n`);
165
+ });
166
+ }
169
167
  }
170
168
  async function entry() {
171
- if (process.argv[2] === "install") {
169
+ if (process.argv.includes("install")) {
172
170
  const { runInstall } = await import("./install.js");
173
171
  await runInstall();
174
172
  process.exit(0);
175
173
  }
174
+ if (process.argv.includes("doctor")) {
175
+ const { runDoctor } = await import("./doctor.js");
176
+ await runDoctor();
177
+ }
176
178
  await main();
177
179
  }
178
180
  entry().catch((error) => {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAEnF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EACL,eAAe,EACf,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,SAAS,GAAG;IAChB,GAAG,SAAS;IACZ,GAAG,aAAa;IAChB,GAAG,UAAU;IACb,GAAG,SAAS;IACZ,GAAG,aAAa;IAChB,GAAG,WAAW;IACd,GAAG,UAAU;IACb,GAAG,aAAa;IAChB,GAAG,aAAa;IAChB,GAAG,gBAAgB;IACnB,GAAG,kBAAkB;IACrB,GAAG,gBAAgB;IACnB,GAAG,UAAU;IACb,GAAG,WAAW;IACd,GAAG,UAAU;IACb,GAAG,YAAY;IACf,GAAG,eAAe;IAClB,GAAG,SAAS;IACZ,GAAG,SAAS;IACZ,GAAG,QAAQ;IACX,GAAG,SAAS;IACZ,GAAG,SAAS;CACb,CAAC;AAEF,0EAA0E;AAC1E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChF,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAE9D,uEAAuE;AACvE,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,cAAc,GAClB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAGrE,CAAC,OAAO,CAAC;AAEV;;;GAGG;AACH,KAAK,UAAU,YAAY,CACzB,IAAY,EACZ,IAAa,EACb,MAA+B;IAE/B,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B,OAAO,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3E,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B,OAAO,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3E,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B,OAAO,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B,OAAO,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC;QACpC,OAAO,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC;QAClC,OAAO,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3E,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3E,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;QAC9B,OAAO,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;QACjC,OAAO,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACvE,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,uBAAuB,CACxC,YAAY,EACZ,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,gBAAgB,CACxB,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,EAClD,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,IAAI,CAAC;YACH,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,OAAO,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,MAAM,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;gBAC/D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,2EAA2E;IAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAEvD,0EAA0E;IAC1E,6EAA6E;IAC7E,2CAA2C;IAC3C,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,GAAG,IAAI,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,UAAU,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,EAAE,CAAC;AACf,CAAC;AAED,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gBAAgB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAC3E,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,12 @@ export declare const actionTools: ({
23
23
  };
24
24
  required: string[];
25
25
  };
26
+ annotations: {
27
+ readOnlyHint: boolean;
28
+ destructiveHint: boolean;
29
+ idempotentHint: boolean;
30
+ openWorldHint: boolean;
31
+ };
26
32
  } | {
27
33
  name: string;
28
34
  description: string;
@@ -47,6 +53,12 @@ export declare const actionTools: ({
47
53
  };
48
54
  required: string[];
49
55
  };
56
+ annotations: {
57
+ readOnlyHint: boolean;
58
+ destructiveHint: boolean;
59
+ idempotentHint: boolean;
60
+ openWorldHint: boolean;
61
+ };
50
62
  } | {
51
63
  name: string;
52
64
  description: string;
@@ -77,6 +89,12 @@ export declare const actionTools: ({
77
89
  };
78
90
  required: string[];
79
91
  };
92
+ annotations: {
93
+ readOnlyHint: boolean;
94
+ destructiveHint: boolean;
95
+ idempotentHint: boolean;
96
+ openWorldHint: boolean;
97
+ };
80
98
  } | {
81
99
  name: string;
82
100
  description: string;
@@ -101,6 +119,12 @@ export declare const actionTools: ({
101
119
  };
102
120
  required: string[];
103
121
  };
122
+ annotations: {
123
+ readOnlyHint: boolean;
124
+ destructiveHint: boolean;
125
+ idempotentHint: boolean;
126
+ openWorldHint: boolean;
127
+ };
104
128
  } | {
105
129
  name: string;
106
130
  description: string;
@@ -133,6 +157,12 @@ export declare const actionTools: ({
133
157
  };
134
158
  required: string[];
135
159
  };
160
+ annotations: {
161
+ readOnlyHint: boolean;
162
+ destructiveHint: boolean;
163
+ idempotentHint: boolean;
164
+ openWorldHint: boolean;
165
+ };
136
166
  } | {
137
167
  name: string;
138
168
  description: string;
@@ -160,6 +190,12 @@ export declare const actionTools: ({
160
190
  };
161
191
  required: string[];
162
192
  };
193
+ annotations: {
194
+ readOnlyHint: boolean;
195
+ destructiveHint: boolean;
196
+ idempotentHint: boolean;
197
+ openWorldHint: boolean;
198
+ };
163
199
  })[];
164
200
  export declare function handleActionTool(name: string, args: unknown, client: DataverseAdvancedClient): Promise<{
165
201
  content: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"actions.tools.d.ts","sourceRoot":"","sources":["../../src/tools/actions.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAGzF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkIvB,CAAC;AAyEF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAgE7D"}
1
+ {"version":3,"file":"actions.tools.d.ts","sourceRoot":"","sources":["../../src/tools/actions.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAIzF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsKvB,CAAC;AAyEF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA4E7D"}