@mesheshq/mcp-server 1.0.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 (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +167 -0
  3. package/dist/client.d.ts +114 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +185 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +57 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/server.d.ts +4 -0
  12. package/dist/server.d.ts.map +1 -0
  13. package/dist/server.js +19 -0
  14. package/dist/server.js.map +1 -0
  15. package/dist/tools/connections.d.ts +4 -0
  16. package/dist/tools/connections.d.ts.map +1 -0
  17. package/dist/tools/connections.js +235 -0
  18. package/dist/tools/connections.js.map +1 -0
  19. package/dist/tools/deliveries.d.ts +4 -0
  20. package/dist/tools/deliveries.d.ts.map +1 -0
  21. package/dist/tools/deliveries.js +153 -0
  22. package/dist/tools/deliveries.js.map +1 -0
  23. package/dist/tools/events.d.ts +4 -0
  24. package/dist/tools/events.d.ts.map +1 -0
  25. package/dist/tools/events.js +89 -0
  26. package/dist/tools/events.js.map +1 -0
  27. package/dist/tools/rules.d.ts +4 -0
  28. package/dist/tools/rules.d.ts.map +1 -0
  29. package/dist/tools/rules.js +134 -0
  30. package/dist/tools/rules.js.map +1 -0
  31. package/dist/tools/workspaces.d.ts +4 -0
  32. package/dist/tools/workspaces.d.ts.map +1 -0
  33. package/dist/tools/workspaces.js +145 -0
  34. package/dist/tools/workspaces.js.map +1 -0
  35. package/dist/types.d.ts +101 -0
  36. package/dist/types.d.ts.map +1 -0
  37. package/dist/types.js +2 -0
  38. package/dist/types.js.map +1 -0
  39. package/dist/utils.d.ts +14 -0
  40. package/dist/utils.d.ts.map +1 -0
  41. package/dist/utils.js +10 -0
  42. package/dist/utils.js.map +1 -0
  43. package/package.json +68 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Meshes Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,167 @@
1
+ # @mesheshq/mcp-server
2
+
3
+ [![Tests](https://github.com/mesheshq/meshes-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/mesheshq/meshes-mcp-server/actions/workflows/ci.yml)
4
+ [![NPM Version][npm-version-image]][npm-url]
5
+ [![NPM Install Size][npm-install-size-image]][npm-install-size-url]
6
+
7
+ MCP server for [Meshes](https://meshes.io) — emit events, manage workspaces,
8
+ create routing rules, and inspect deliveries from any MCP-compatible client.
9
+
10
+ ## Features
11
+
12
+ - **Emit Events** — send product events (signups, payments, cancellations) to Meshes
13
+ - **Manage Workspaces** — list and configure workspaces
14
+ - **Routing Rules** — create and update event routing rules
15
+ - **Connections** — manage integration connections (HubSpot, Salesforce, Mailchimp, etc.)
16
+ - **Delivery Status** — inspect event delivery logs and retry status
17
+
18
+ ## Setup
19
+
20
+ Create a free Meshes account and create Machine Keys in the dashboard
21
+ under Profile → API Keys.
22
+
23
+ ### Claude Code
24
+
25
+ ```bash
26
+ claude mcp add meshes \
27
+ -e MESHES_ACCESS_KEY=your_access_key \
28
+ -e MESHES_SECRET_KEY=your_secret_key \
29
+ -e MESHES_ORG_ID=your_org_id \
30
+ -- npx -y @mesheshq/mcp-server
31
+ ```
32
+
33
+ ### Cursor
34
+
35
+ Open Cursor Settings → MCP → Add new global MCP server:
36
+
37
+ ```json
38
+ {
39
+ "mcpServers": {
40
+ "meshes": {
41
+ "command": "npx",
42
+ "args": ["-y", "@mesheshq/mcp-server"],
43
+ "env": {
44
+ "MESHES_ACCESS_KEY": "your_access_key",
45
+ "MESHES_SECRET_KEY": "your_secret_key",
46
+ "MESHES_ORG_ID": "your_organization_uuid"
47
+ }
48
+ }
49
+ }
50
+ }
51
+ ```
52
+
53
+ ### Claude Desktop
54
+
55
+ Open Claude Desktop → Settings → Developer → Edit Config:
56
+
57
+ ```json
58
+ {
59
+ "mcpServers": {
60
+ "meshes": {
61
+ "command": "npx",
62
+ "args": ["-y", "@mesheshq/mcp-server"],
63
+ "env": {
64
+ "MESHES_ACCESS_KEY": "your_access_key",
65
+ "MESHES_SECRET_KEY": "your_secret_key",
66
+ "MESHES_ORG_ID": "your_organization_uuid"
67
+ }
68
+ }
69
+ }
70
+ }
71
+ ```
72
+
73
+ ### Windsurf
74
+
75
+ Add to your Windsurf MCP configuration:
76
+
77
+ ```json
78
+ {
79
+ "mcpServers": {
80
+ "meshes": {
81
+ "command": "npx",
82
+ "args": ["-y", "@mesheshq/mcp-server"],
83
+ "env": {
84
+ "MESHES_ACCESS_KEY": "your_access_key",
85
+ "MESHES_SECRET_KEY": "your_secret_key",
86
+ "MESHES_ORG_ID": "your_organization_uuid"
87
+ }
88
+ }
89
+ }
90
+ }
91
+ ```
92
+
93
+ > **Security note:** MCP config files contain your secret key. They
94
+ > live in your home directory (e.g. `~/.cursor/mcp.json`), not your
95
+ > project repo. Never commit access keys or secret keys to version control.
96
+
97
+ ## Environment Variables
98
+
99
+ | Variable | Required | Description |
100
+ | ------------------- | -------- | ----------------------------------------------- |
101
+ | `MESHES_ACCESS_KEY` | Yes | Machine access key from dashboard |
102
+ | `MESHES_SECRET_KEY` | Yes | Machine secret key from dashboard |
103
+ | `MESHES_ORG_ID` | Yes | Organization UUID |
104
+ | `MESHES_API_URL` | No | API base URL (default: `https://api.meshes.io`) |
105
+
106
+ ## Available Tools
107
+
108
+ | Tool | Description |
109
+ | ---------------------------------------- | -------------------------------------------------------------- |
110
+ | `meshes_emit_event` | Emit a product event to Meshes for routing and delivery |
111
+ | `meshes_emit_bulk_events` | Emit up to 100 events in a single request |
112
+ | `meshes_list_workspaces` | List all workspaces in the multi-tenant organization |
113
+ | `meshes_get_workspace` | Get details of a specific workspace |
114
+ | `meshes_create_workspace` | Create a new workspace |
115
+ | `meshes_update_workspace` | Update workspace properties |
116
+ | `meshes_list_connections` | List connections for a workspace |
117
+ | `meshes_get_connection` | Get details of a connection |
118
+ | `meshes_create_connection` | Create a new connection destination |
119
+ | `meshes_update_connection` | Update connection configuration metadata |
120
+ | `meshes_delete_connection` | Delete a connection |
121
+ | `meshes_get_connection_actions` | Get available actions (destination endpoints) for a connection |
122
+ | `meshes_get_connection_fields` | Get destination field configuration for mappings |
123
+ | `meshes_get_connection_default_mappings` | Get default mappings for a connection |
124
+ | `meshes_list_rules` | List all routing rules |
125
+ | `meshes_get_rule` | Get details of a specific routing rule |
126
+ | `meshes_create_rule` | Create an event routing rule mapping events to an action |
127
+ | `meshes_delete_rule` | Delete an event routing rule |
128
+ | `meshes_list_events` | List events across the organization with pagination |
129
+ | `meshes_get_workspace_events` | List events for a workspace with filtered criteria |
130
+ | `meshes_get_event` | Get event details with delivery status matrix |
131
+ | `meshes_get_event_payload` | Get event details containing data payload |
132
+ | `meshes_retry_event_rule` | Retry a failed rule delivery |
133
+ | `meshes_list_integrations` | Get metadata about all supported integration types |
134
+
135
+ ## Development
136
+
137
+ ```bash
138
+ git clone https://github.com/mesheshq/meshes-mcp-server.git
139
+ cd meshes-mcp-server
140
+ npm install
141
+ npm run build
142
+ npm test
143
+ ```
144
+
145
+ ## What is Meshes?
146
+
147
+ [Meshes](https://meshes.io) is a universal integration layer for SaaS
148
+ applications. Emit product events once — signups, payments, form
149
+ submissions — and Meshes routes them to CRMs, email tools, webhooks,
150
+ and more with retries, fan-out, field mappings, and multi-tenant
151
+ isolation built in.
152
+
153
+ ## Documentation
154
+
155
+ - [Meshes Docs](https://meshes.io/docs)
156
+ - [API Reference](https://docs.meshes.dev)
157
+ - [MCP Server Docs](https://meshes.io/docs/ai/mcp-server)
158
+ - [Authentication](https://meshes.io/docs/api/authentication)
159
+
160
+ ## License
161
+
162
+ MIT
163
+
164
+ [npm-install-size-image]: https://badgen.net/packagephobia/publish/@mesheshq/mcp-server?cache=200
165
+ [npm-install-size-url]: https://packagephobia.com/result?p=%40mesheshq%2Fmcp-server
166
+ [npm-url]: https://www.npmjs.com/package/@mesheshq/mcp-server
167
+ [npm-version-image]: https://badgen.net/npm/v/@mesheshq/mcp-server?cache=200
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Meshes API client — matches the OpenAPI spec at https://docs.meshes.dev
3
+ * Base URL: https://api.meshes.io
4
+ */
5
+ import type { Connection, EventStatus, IntegrationType, MeshesConfig, MeshesEvent, PaginatedResponse, Rule, RuleEvent, RuleMetadata, Workspace } from './types.js';
6
+ export declare class MeshesApiClient {
7
+ private config;
8
+ constructor(config: MeshesConfig);
9
+ private request;
10
+ listWorkspaces(): Promise<PaginatedResponse<Workspace>>;
11
+ getWorkspace(id: string): Promise<Workspace>;
12
+ createWorkspace(params: {
13
+ name: string;
14
+ description?: string;
15
+ }): Promise<{
16
+ workspace: Workspace;
17
+ }>;
18
+ updateWorkspace(id: string, params: {
19
+ name: string;
20
+ description?: string | null;
21
+ }): Promise<Workspace>;
22
+ getWorkspaceConnections(id: string): Promise<PaginatedResponse<Connection>>;
23
+ getWorkspaceRules(id: string): Promise<PaginatedResponse<Rule>>;
24
+ getWorkspaceEvents(id: string, params?: {
25
+ limit?: number;
26
+ cursor?: string;
27
+ event?: string;
28
+ status?: EventStatus;
29
+ resource?: string;
30
+ resource_id?: string;
31
+ }): Promise<PaginatedResponse<MeshesEvent>>;
32
+ listConnections(): Promise<PaginatedResponse<Connection>>;
33
+ getConnection(id: string): Promise<Connection>;
34
+ createConnection(params: {
35
+ workspace: string;
36
+ type: IntegrationType;
37
+ name: string;
38
+ metadata: Record<string, unknown>;
39
+ hidden?: boolean;
40
+ }): Promise<{
41
+ connection: Connection;
42
+ }>;
43
+ updateConnection(id: string, params: {
44
+ name: string;
45
+ metadata: Record<string, unknown>;
46
+ hidden?: boolean;
47
+ }): Promise<Connection>;
48
+ deleteConnection(id: string, forceDelete?: boolean): Promise<{
49
+ id: string;
50
+ type: IntegrationType;
51
+ }>;
52
+ getConnectionActions(id: string): Promise<unknown>;
53
+ getConnectionFields(id: string, refresh?: boolean): Promise<unknown>;
54
+ getConnectionDefaultMappings(id: string): Promise<unknown>;
55
+ listRules(params?: {
56
+ event?: string;
57
+ resource?: string;
58
+ resource_id?: string;
59
+ }): Promise<PaginatedResponse<Rule>>;
60
+ getRule(id: string): Promise<Rule>;
61
+ createRule(params: {
62
+ workspace: string;
63
+ connection: string;
64
+ event: string;
65
+ metadata: RuleMetadata;
66
+ resource?: string;
67
+ resource_id?: string;
68
+ active?: boolean;
69
+ hidden?: boolean;
70
+ }): Promise<{
71
+ rule: Rule;
72
+ }>;
73
+ deleteRule(id: string): Promise<{
74
+ id: string;
75
+ connection: string;
76
+ type: IntegrationType;
77
+ event: string;
78
+ }>;
79
+ listEvents(params?: {
80
+ limit?: number;
81
+ cursor?: string;
82
+ }): Promise<PaginatedResponse<MeshesEvent>>;
83
+ emitEvent(params: {
84
+ workspace: string;
85
+ event: string;
86
+ payload: Record<string, unknown>;
87
+ resource?: string;
88
+ resource_id?: string;
89
+ }): Promise<{
90
+ event: {
91
+ id: string;
92
+ event: string;
93
+ workspace: string;
94
+ created_by: string;
95
+ created_at: string;
96
+ };
97
+ }>;
98
+ emitBulkEvents(events: Array<{
99
+ workspace: string;
100
+ event: string;
101
+ payload: Record<string, unknown>;
102
+ resource?: string;
103
+ resource_id?: string;
104
+ }>): Promise<{
105
+ count: number;
106
+ error_count?: number;
107
+ records: unknown[];
108
+ }>;
109
+ getEvent(id: string): Promise<MeshesEvent>;
110
+ getEventPayload(id: string): Promise<MeshesEvent>;
111
+ retryEventRule(eventId: string, ruleId: string): Promise<RuleEvent>;
112
+ listIntegrations(): Promise<PaginatedResponse<unknown>>;
113
+ }
114
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js ADDED
@@ -0,0 +1,185 @@
1
+ /**
2
+ * Meshes API client — matches the OpenAPI spec at https://docs.meshes.dev
3
+ * Base URL: https://api.meshes.io
4
+ */
5
+ // ── JWT Token Generation ──────────────────────────────────────
6
+ // Meshes uses short-lived HS256 JWTs for machine-to-machine auth.
7
+ // See: https://meshes.io/docs/api/authentication
8
+ async function mintJwt(config) {
9
+ // Dynamic import — jose is an ESM package
10
+ const { SignJWT } = await import('jose');
11
+ const key = new TextEncoder().encode(config.secretKey);
12
+ const token = await new SignJWT({ org: config.orgId })
13
+ .setProtectedHeader({ alg: 'HS256', typ: 'JWT', kid: config.accessKey })
14
+ .setIssuer(`urn:meshes:m2m:${config.accessKey}`)
15
+ .setAudience('meshes-api')
16
+ .setIssuedAt()
17
+ .setExpirationTime('30s')
18
+ .sign(key);
19
+ return token;
20
+ }
21
+ // ── Client ────────────────────────────────────────────────────
22
+ export class MeshesApiClient {
23
+ config;
24
+ constructor(config) {
25
+ this.config = config;
26
+ }
27
+ async request(path, options = {}) {
28
+ const token = await mintJwt(this.config);
29
+ const url = `${this.config.baseUrl}${path}`;
30
+ const response = await fetch(url, {
31
+ ...options,
32
+ headers: {
33
+ Authorization: `Bearer ${token}`,
34
+ 'Content-Type': 'application/json',
35
+ ...options.headers,
36
+ },
37
+ });
38
+ if (!response.ok) {
39
+ const body = await response.text();
40
+ throw new Error(`Meshes API ${response.status}: ${body}`);
41
+ }
42
+ if (response.status === 204)
43
+ return {};
44
+ return response.json();
45
+ }
46
+ // ── Workspaces ────────────────────────────────────────────
47
+ listWorkspaces() {
48
+ return this.request('/api/v1/workspaces');
49
+ }
50
+ getWorkspace(id) {
51
+ return this.request(`/api/v1/workspaces/${id}`);
52
+ }
53
+ createWorkspace(params) {
54
+ return this.request('/api/v1/workspaces', {
55
+ method: 'POST',
56
+ body: JSON.stringify(params),
57
+ });
58
+ }
59
+ updateWorkspace(id, params) {
60
+ return this.request(`/api/v1/workspaces/${id}`, {
61
+ method: 'PUT',
62
+ body: JSON.stringify(params),
63
+ });
64
+ }
65
+ getWorkspaceConnections(id) {
66
+ return this.request(`/api/v1/workspaces/${id}/connections`);
67
+ }
68
+ getWorkspaceRules(id) {
69
+ return this.request(`/api/v1/workspaces/${id}/rules`);
70
+ }
71
+ getWorkspaceEvents(id, params) {
72
+ const query = new URLSearchParams();
73
+ if (params?.limit)
74
+ query.set('limit', String(params.limit));
75
+ if (params?.cursor)
76
+ query.set('cursor', params.cursor);
77
+ if (params?.event)
78
+ query.set('event', params.event);
79
+ if (params?.status)
80
+ query.set('status', params.status);
81
+ if (params?.resource)
82
+ query.set('resource', params.resource);
83
+ if (params?.resource_id)
84
+ query.set('resource_id', params.resource_id);
85
+ const qs = query.toString();
86
+ return this.request(`/api/v1/workspaces/${id}/events${qs ? `?${qs}` : ''}`);
87
+ }
88
+ // ── Connections ───────────────────────────────────────────
89
+ listConnections() {
90
+ return this.request('/api/v1/connections');
91
+ }
92
+ getConnection(id) {
93
+ return this.request(`/api/v1/connections/${id}`);
94
+ }
95
+ createConnection(params) {
96
+ return this.request('/api/v1/connections', {
97
+ method: 'POST',
98
+ body: JSON.stringify(params),
99
+ });
100
+ }
101
+ updateConnection(id, params) {
102
+ return this.request(`/api/v1/connections/${id}`, {
103
+ method: 'PUT',
104
+ body: JSON.stringify(params),
105
+ });
106
+ }
107
+ deleteConnection(id, forceDelete) {
108
+ return this.request(`/api/v1/connections/${id}`, {
109
+ method: 'DELETE',
110
+ body: forceDelete ? JSON.stringify({ force_delete: true }) : undefined,
111
+ });
112
+ }
113
+ getConnectionActions(id) {
114
+ return this.request(`/api/v1/connections/${id}/actions`);
115
+ }
116
+ getConnectionFields(id, refresh) {
117
+ const qs = refresh ? '?refresh=true' : '';
118
+ return this.request(`/api/v1/connections/${id}/fields${qs}`);
119
+ }
120
+ getConnectionDefaultMappings(id) {
121
+ return this.request(`/api/v1/connections/${id}/mappings/default`);
122
+ }
123
+ // ── Rules ─────────────────────────────────────────────────
124
+ listRules(params) {
125
+ const query = new URLSearchParams();
126
+ if (params?.event)
127
+ query.set('event', params.event);
128
+ if (params?.resource)
129
+ query.set('resource', params.resource);
130
+ if (params?.resource_id)
131
+ query.set('resource_id', params.resource_id);
132
+ const qs = query.toString();
133
+ return this.request(`/api/v1/rules${qs ? `?${qs}` : ''}`);
134
+ }
135
+ getRule(id) {
136
+ return this.request(`/api/v1/rules/${id}`);
137
+ }
138
+ createRule(params) {
139
+ return this.request('/api/v1/rules', {
140
+ method: 'POST',
141
+ body: JSON.stringify(params),
142
+ });
143
+ }
144
+ deleteRule(id) {
145
+ return this.request(`/api/v1/rules/${id}`, { method: 'DELETE' });
146
+ }
147
+ // ── Events ────────────────────────────────────────────────
148
+ listEvents(params) {
149
+ const query = new URLSearchParams();
150
+ if (params?.limit)
151
+ query.set('limit', String(params.limit));
152
+ if (params?.cursor)
153
+ query.set('cursor', params.cursor);
154
+ const qs = query.toString();
155
+ return this.request(`/api/v1/events${qs ? `?${qs}` : ''}`);
156
+ }
157
+ emitEvent(params) {
158
+ return this.request('/api/v1/events', {
159
+ method: 'POST',
160
+ body: JSON.stringify(params),
161
+ });
162
+ }
163
+ emitBulkEvents(events) {
164
+ return this.request('/api/v1/events/bulk', {
165
+ method: 'POST',
166
+ body: JSON.stringify(events),
167
+ });
168
+ }
169
+ getEvent(id) {
170
+ return this.request(`/api/v1/events/${id}`);
171
+ }
172
+ getEventPayload(id) {
173
+ return this.request(`/api/v1/events/${id}/payload`);
174
+ }
175
+ retryEventRule(eventId, ruleId) {
176
+ return this.request(`/api/v1/events/${eventId}/rules/${ruleId}/retry`, {
177
+ method: 'POST',
178
+ });
179
+ }
180
+ // ── Integrations ──────────────────────────────────────────
181
+ listIntegrations() {
182
+ return this.request('/api/v1/integrations');
183
+ }
184
+ }
185
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,57 @@
1
+ #!/usr/bin/env node
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { MeshesApiClient } from './client.js';
4
+ import { createServer } from './server.js';
5
+ // ── Configuration ─────────────────────────────────────────────
6
+ // Authentication uses short-lived HS256 JWTs minted from your
7
+ // Meshes machine key credentials. The server generates a fresh
8
+ // token for each API request (tokens expire in 30 seconds).
9
+ // See: https://meshes.io/docs/api/authentication
10
+ const ACCESS_KEY = process.env.MESHES_ACCESS_KEY;
11
+ const SECRET_KEY = process.env.MESHES_SECRET_KEY;
12
+ const ORG_ID = process.env.MESHES_ORG_ID;
13
+ const BASE_URL = process.env.MESHES_API_URL || 'https://api.meshes.io';
14
+ if (!ACCESS_KEY || !SECRET_KEY || !ORG_ID) {
15
+ const missing = [];
16
+ if (!ACCESS_KEY)
17
+ missing.push('MESHES_ACCESS_KEY');
18
+ if (!SECRET_KEY)
19
+ missing.push('MESHES_SECRET_KEY');
20
+ if (!ORG_ID)
21
+ missing.push('MESHES_ORG_ID');
22
+ console.error(`Error: Missing required environment variable ${missing.join(', ')}\n` +
23
+ `Set it in your MCP client configuration:\n\n` +
24
+ `{\n` +
25
+ ` "mcpServers": {\n` +
26
+ ` "meshes": {\n` +
27
+ ` "command": "npx",\n` +
28
+ ` "args": ["-y", "@mesheshq/mcp-server"],\n` +
29
+ ` "env": {\n` +
30
+ ` "MESHES_ACCESS_KEY": "your_access_key",\n` +
31
+ ` "MESHES_SECRET_KEY": "your_secret_key",\n` +
32
+ ` "MESHES_ORG_ID": "your_organization_uuid"\n` +
33
+ ` }\n` +
34
+ ` }\n` +
35
+ ` }\n` +
36
+ `}\n\n` +
37
+ `Find your credentials in the Meshes dashboard under Settings → Machine Keys.`);
38
+ process.exit(1);
39
+ }
40
+ const client = new MeshesApiClient({
41
+ accessKey: ACCESS_KEY,
42
+ secretKey: SECRET_KEY,
43
+ orgId: ORG_ID,
44
+ baseUrl: BASE_URL,
45
+ });
46
+ const server = createServer(client);
47
+ // ── Start Server ──────────────────────────────────────────────
48
+ async function main() {
49
+ const transport = new StdioServerTransport();
50
+ await server.connect(transport);
51
+ console.error('Meshes MCP server running on stdio');
52
+ }
53
+ main().catch((error) => {
54
+ console.error('Fatal error:', error);
55
+ process.exit(1);
56
+ });
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,iEAAiE;AACjE,8DAA8D;AAC9D,+DAA+D;AAC/D,4DAA4D;AAC5D,iDAAiD;AAEjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AACjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AACjD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,uBAAuB,CAAC;AAEvE,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE3C,OAAO,CAAC,KAAK,CACX,gDAAgD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACpE,8CAA8C;QAC9C,KAAK;QACL,qBAAqB;QACrB,mBAAmB;QACnB,2BAA2B;QAC3B,iDAAiD;QACjD,kBAAkB;QAClB,mDAAmD;QACnD,mDAAmD;QACnD,qDAAqD;QACrD,WAAW;QACX,SAAS;QACT,OAAO;QACP,OAAO;QACP,8EAA8E,CACjF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;IACjC,SAAS,EAAE,UAAU;IACrB,SAAS,EAAE,UAAU;IACrB,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,QAAQ;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAEpC,iEAAiE;AAEjE,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACtD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { MeshesApiClient } from './client.js';
3
+ export declare function createServer(client: MeshesApiClient): McpServer;
4
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAOnD,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAa/D"}
package/dist/server.js ADDED
@@ -0,0 +1,19 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { registerConnectionTools } from './tools/connections.js';
3
+ import { registerDeliveryTools } from './tools/deliveries.js';
4
+ import { registerEventTools } from './tools/events.js';
5
+ import { registerRuleTools } from './tools/rules.js';
6
+ import { registerWorkspaceTools } from './tools/workspaces.js';
7
+ export function createServer(client) {
8
+ const server = new McpServer({
9
+ name: 'meshes-mcp-server',
10
+ version: '0.1.0',
11
+ });
12
+ registerWorkspaceTools(server, client);
13
+ registerConnectionTools(server, client);
14
+ registerRuleTools(server, client);
15
+ registerEventTools(server, client);
16
+ registerDeliveryTools(server, client);
17
+ return server;
18
+ }
19
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,UAAU,YAAY,CAAC,MAAuB;IAClD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { MeshesApiClient } from '../client.js';
3
+ export declare function registerConnectionTools(server: McpServer, client: MeshesApiClient): void;
4
+ //# sourceMappingURL=connections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../src/tools/connections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAiBpD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,eAAe,QA6QxB"}