@mcp-consultant-tools/powerplatform-data 25.0.0-beta.1 → 25.0.0-beta.2

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.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
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":""}
@@ -0,0 +1,200 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * HTTP Server entry point for PowerPlatform Data MCP
4
+ * Enables use with Claude Mobile via Cloudflare Tunnel
5
+ *
6
+ * Usage:
7
+ * npm run start:http
8
+ * # Then: cloudflared tunnel run <tunnel-name>
9
+ */
10
+ import express from 'express';
11
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
12
+ import { InMemoryTransport } from '@modelcontextprotocol/sdk/inMemory.js';
13
+ import { createEnvLoader } from '@mcp-consultant-tools/core';
14
+ import { registerPowerplatformDataTools } from './index.js';
15
+ // Load environment variables (suppresses stdout for MCP protocol)
16
+ createEnvLoader();
17
+ const app = express();
18
+ app.use(express.json());
19
+ // CORS for compatibility
20
+ app.use((req, res, next) => {
21
+ res.header('Access-Control-Allow-Origin', '*');
22
+ res.header('Access-Control-Allow-Methods', 'GET, POST, DELETE, OPTIONS');
23
+ res.header('Access-Control-Allow-Headers', '*');
24
+ if (req.method === 'OPTIONS') {
25
+ return res.sendStatus(200);
26
+ }
27
+ next();
28
+ });
29
+ // API Key authentication middleware
30
+ // Supports: x-api-key header, Authorization: Bearer <key>, or ?api_key=<key> query param
31
+ const apiKeyAuth = (req, res, next) => {
32
+ const expectedKey = process.env.MCP_API_KEY;
33
+ if (req.path === '/health' || req.path === '/' || req.method === 'OPTIONS') {
34
+ return next();
35
+ }
36
+ if (!expectedKey) {
37
+ return next();
38
+ }
39
+ // Check multiple sources for API key
40
+ const headerKey = req.headers['x-api-key'];
41
+ const bearerToken = req.headers['authorization']?.replace('Bearer ', '');
42
+ const queryKey = req.query.api_key;
43
+ const providedKey = headerKey || bearerToken || queryKey;
44
+ if (providedKey !== expectedKey) {
45
+ console.error('API key authentication failed');
46
+ return res.status(401).json({ error: 'Invalid or missing API key' });
47
+ }
48
+ next();
49
+ };
50
+ app.use(apiKeyAuth);
51
+ // Debug logging
52
+ app.use((req, res, next) => {
53
+ console.error(`[${new Date().toISOString()}] ${req.method} ${req.path}`);
54
+ if (req.body && Object.keys(req.body).length > 0) {
55
+ console.error(' Body:', JSON.stringify(req.body).substring(0, 300));
56
+ }
57
+ next();
58
+ });
59
+ // Global MCP server instance
60
+ let mcpServer = null;
61
+ let serverTransport = null;
62
+ let clientTransport = null;
63
+ async function initializeMcpServer() {
64
+ if (mcpServer)
65
+ return;
66
+ mcpServer = new McpServer({
67
+ name: 'powerplatform-data-http',
68
+ version: '25.0.0-beta.2',
69
+ });
70
+ registerPowerplatformDataTools(mcpServer);
71
+ // Create linked in-memory transports
72
+ const [server, client] = InMemoryTransport.createLinkedPair();
73
+ serverTransport = server;
74
+ clientTransport = client;
75
+ await mcpServer.connect(serverTransport);
76
+ console.error('✅ MCP server initialized with InMemoryTransport');
77
+ }
78
+ // MCP endpoint - manual JSON-RPC handling
79
+ app.post('/mcp', async (req, res) => {
80
+ try {
81
+ await initializeMcpServer();
82
+ const jsonRpcRequest = req.body;
83
+ console.error(' JSON-RPC method:', jsonRpcRequest.method);
84
+ // Check if this is a notification (no id = no response expected)
85
+ const isNotification = jsonRpcRequest.id === undefined;
86
+ // Send request through client transport
87
+ await clientTransport.send(jsonRpcRequest);
88
+ if (isNotification) {
89
+ // Notifications don't expect a response - just acknowledge
90
+ console.error(' (notification - no response expected)');
91
+ res.status(202).json({ jsonrpc: '2.0', result: 'accepted' });
92
+ return;
93
+ }
94
+ // Wait for response (with timeout)
95
+ const response = await Promise.race([
96
+ new Promise((resolve) => {
97
+ const handler = (msg) => {
98
+ if (msg.id === jsonRpcRequest.id) {
99
+ clientTransport.onmessage = undefined;
100
+ resolve(msg);
101
+ }
102
+ };
103
+ clientTransport.onmessage = handler;
104
+ }),
105
+ new Promise((_, reject) => setTimeout(() => reject(new Error('Timeout waiting for MCP response')), 30000)),
106
+ ]);
107
+ console.error(' Response:', JSON.stringify(response).substring(0, 200));
108
+ res.json(response);
109
+ }
110
+ catch (error) {
111
+ console.error('MCP HTTP error:', error);
112
+ res.status(500).json({
113
+ jsonrpc: '2.0',
114
+ error: { code: -32603, message: error.message },
115
+ id: req.body?.id || null,
116
+ });
117
+ }
118
+ });
119
+ // SSE endpoint for streaming (required by some clients)
120
+ app.get('/mcp', (req, res) => {
121
+ res.setHeader('Content-Type', 'text/event-stream');
122
+ res.setHeader('Cache-Control', 'no-cache');
123
+ res.setHeader('Connection', 'keep-alive');
124
+ // Send initial connection message
125
+ res.write(`data: ${JSON.stringify({ type: 'connected' })}\n\n`);
126
+ // Keep connection alive
127
+ const keepAlive = setInterval(() => {
128
+ res.write(': keepalive\n\n');
129
+ }, 30000);
130
+ req.on('close', () => {
131
+ clearInterval(keepAlive);
132
+ console.error('SSE connection closed');
133
+ });
134
+ });
135
+ // Health check endpoint
136
+ app.get('/health', (req, res) => {
137
+ res.json({ status: 'ok', serverInitialized: mcpServer !== null });
138
+ });
139
+ // Root endpoint - info
140
+ app.get('/', (req, res) => {
141
+ res.json({
142
+ name: 'PowerPlatform Data MCP Server',
143
+ version: '25.0.0-beta.2',
144
+ mcp_endpoint: '/mcp',
145
+ health_endpoint: '/health',
146
+ tools: ['query-records', 'get-record', 'get-entity-metadata', 'get-lookup-target', 'create-record', 'update-record', 'delete-record', 'execute-action'],
147
+ });
148
+ });
149
+ // REST-style tool endpoint for compatibility
150
+ // Catches paths like /connector/link/tool_name
151
+ app.post('/:connector/:linkId/:toolName', async (req, res) => {
152
+ try {
153
+ await initializeMcpServer();
154
+ const toolName = req.params.toolName;
155
+ const args = req.body.args ? JSON.parse(req.body.args) : req.body;
156
+ console.error(` REST→MCP: ${toolName} with args:`, JSON.stringify(args).substring(0, 200));
157
+ const requestId = Date.now();
158
+ const jsonRpcRequest = {
159
+ jsonrpc: '2.0',
160
+ id: requestId,
161
+ method: 'tools/call',
162
+ params: {
163
+ name: toolName,
164
+ arguments: args,
165
+ },
166
+ };
167
+ await clientTransport.send(jsonRpcRequest);
168
+ const response = await Promise.race([
169
+ new Promise((resolve) => {
170
+ const handler = (msg) => {
171
+ if (msg.id === requestId) {
172
+ clientTransport.onmessage = undefined;
173
+ resolve(msg);
174
+ }
175
+ };
176
+ clientTransport.onmessage = handler;
177
+ }),
178
+ new Promise((_, reject) => setTimeout(() => reject(new Error('Timeout')), 30000)),
179
+ ]);
180
+ // Extract text content from MCP response for simpler REST response
181
+ if (response.result?.content?.[0]?.text) {
182
+ res.json({ result: response.result.content[0].text });
183
+ }
184
+ else {
185
+ res.json(response);
186
+ }
187
+ }
188
+ catch (error) {
189
+ console.error('REST→MCP error:', error);
190
+ res.status(500).json({ error: error.message });
191
+ }
192
+ });
193
+ const PORT = process.env.HTTP_PORT || 3001;
194
+ app.listen(PORT, () => {
195
+ console.error(`PowerPlatform Data MCP HTTP server running on http://localhost:${PORT}/mcp`);
196
+ console.error(`Health check: http://localhost:${PORT}/health`);
197
+ console.error('');
198
+ console.error('To expose via tunnel: cloudflared tunnel run <tunnel-name>');
199
+ });
200
+ //# 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/build/index.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-consultant-tools/powerplatform-data",
3
- "version": "25.0.0-beta.1",
3
+ "version": "25.0.0-beta.2",
4
4
  "description": "MCP server for PowerPlatform data CRUD operations (operational use)",
5
5
  "type": "module",
6
6
  "main": "./build/index.js",
@@ -18,7 +18,8 @@
18
18
  "scripts": {
19
19
  "build": "tsc",
20
20
  "clean": "rm -rf build *.tsbuildinfo",
21
- "prepublishOnly": "npm run build"
21
+ "prepublishOnly": "npm run build",
22
+ "start:http": "node --env-file=.env build/http-server.js"
22
23
  },
23
24
  "keywords": [
24
25
  "mcp",
@@ -43,9 +44,11 @@
43
44
  "@mcp-consultant-tools/core": "^22.0.0",
44
45
  "@modelcontextprotocol/sdk": "^1.0.4",
45
46
  "axios": "^1.8.3",
47
+ "express": "^4.21.2",
46
48
  "zod": "^3.24.1"
47
49
  },
48
50
  "devDependencies": {
51
+ "@types/express": "^5.0.0",
49
52
  "@types/node": "^22.10.5",
50
53
  "typescript": "^5.8.2"
51
54
  },