@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.
- package/build/http-server.d.ts +3 -0
- package/build/http-server.d.ts.map +1 -0
- package/build/http-server.js +200 -0
- package/build/http-server.js.map +1 -0
- package/build/index.js +0 -0
- package/package.json +5 -2
|
@@ -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.
|
|
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
|
},
|