@matimo/core 0.1.0-alpha.10 → 0.1.0-alpha.12
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/core/schema.d.ts +4 -0
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +12 -0
- package/dist/core/schema.js.map +1 -1
- package/dist/core/tool-loader.d.ts +3 -1
- package/dist/core/tool-loader.d.ts.map +1 -1
- package/dist/core/tool-loader.js +33 -10
- package/dist/core/tool-loader.js.map +1 -1
- package/dist/core/types.d.ts +11 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/executors/http-executor.d.ts +9 -0
- package/dist/executors/http-executor.d.ts.map +1 -1
- package/dist/executors/http-executor.js +47 -2
- package/dist/executors/http-executor.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/langchain.d.ts.map +1 -1
- package/dist/integrations/langchain.js +5 -4
- package/dist/integrations/langchain.js.map +1 -1
- package/dist/mcp/index.d.ts +18 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +24 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/mcp-server.d.ts +110 -0
- package/dist/mcp/mcp-server.d.ts.map +1 -0
- package/dist/mcp/mcp-server.js +646 -0
- package/dist/mcp/mcp-server.js.map +1 -0
- package/dist/mcp/secrets/aws-resolver.d.ts +41 -0
- package/dist/mcp/secrets/aws-resolver.d.ts.map +1 -0
- package/dist/mcp/secrets/aws-resolver.js +141 -0
- package/dist/mcp/secrets/aws-resolver.js.map +1 -0
- package/dist/mcp/secrets/dotenv-resolver.d.ts +23 -0
- package/dist/mcp/secrets/dotenv-resolver.d.ts.map +1 -0
- package/dist/mcp/secrets/dotenv-resolver.js +94 -0
- package/dist/mcp/secrets/dotenv-resolver.js.map +1 -0
- package/dist/mcp/secrets/env-resolver.d.ts +14 -0
- package/dist/mcp/secrets/env-resolver.d.ts.map +1 -0
- package/dist/mcp/secrets/env-resolver.js +27 -0
- package/dist/mcp/secrets/env-resolver.js.map +1 -0
- package/dist/mcp/secrets/index.d.ts +14 -0
- package/dist/mcp/secrets/index.d.ts.map +1 -0
- package/dist/mcp/secrets/index.js +13 -0
- package/dist/mcp/secrets/index.js.map +1 -0
- package/dist/mcp/secrets/resolver-chain.d.ts +34 -0
- package/dist/mcp/secrets/resolver-chain.d.ts.map +1 -0
- package/dist/mcp/secrets/resolver-chain.js +141 -0
- package/dist/mcp/secrets/resolver-chain.js.map +1 -0
- package/dist/mcp/secrets/types.d.ts +73 -0
- package/dist/mcp/secrets/types.d.ts.map +1 -0
- package/dist/mcp/secrets/types.js +8 -0
- package/dist/mcp/secrets/types.js.map +1 -0
- package/dist/mcp/secrets/vault-resolver.d.ts +43 -0
- package/dist/mcp/secrets/vault-resolver.d.ts.map +1 -0
- package/dist/mcp/secrets/vault-resolver.js +127 -0
- package/dist/mcp/secrets/vault-resolver.js.map +1 -0
- package/dist/mcp/tool-converter.d.ts +40 -0
- package/dist/mcp/tool-converter.d.ts.map +1 -0
- package/dist/mcp/tool-converter.js +176 -0
- package/dist/mcp/tool-converter.js.map +1 -0
- package/package.json +17 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matimo MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Exposes all Matimo tools via the Model Context Protocol.
|
|
5
|
+
* Supports stdio (local/Claude Desktop) and HTTP (remote/Docker) transports.
|
|
6
|
+
*
|
|
7
|
+
* Architecture:
|
|
8
|
+
* Client → MCP Protocol → MCPServer → MatimoInstance.execute() → Tool APIs
|
|
9
|
+
* Secrets resolved via SecretResolverChain (env, dotenv, Vault, AWS SM)
|
|
10
|
+
* HTTP mode protected by Bearer token (MATIMO_MCP_TOKEN)
|
|
11
|
+
*/
|
|
12
|
+
import { MatimoInstance } from '../matimo-instance';
|
|
13
|
+
import type { SecretResolverChainConfig } from './secrets/types';
|
|
14
|
+
export interface MCPServerOptions {
|
|
15
|
+
/** Transport mode. Default: 'stdio' */
|
|
16
|
+
transport?: 'stdio' | 'http';
|
|
17
|
+
/** HTTP port. Default: 3000. Only used in HTTP mode. */
|
|
18
|
+
port?: number;
|
|
19
|
+
/** Allowlist of tool names. If set, only these tools are exposed. */
|
|
20
|
+
tools?: string[];
|
|
21
|
+
/** Denylist of tool names. Excluded from exposure. */
|
|
22
|
+
excludeTools?: string[];
|
|
23
|
+
/** Secret resolver chain config. Default: env-only. */
|
|
24
|
+
secretResolver?: SecretResolverChainConfig;
|
|
25
|
+
/** Bearer token for HTTP mode. Also reads MATIMO_MCP_TOKEN env var. If not set in HTTP mode, auto-generated. */
|
|
26
|
+
mcpToken?: string;
|
|
27
|
+
/** Tool paths to load. Passed to MatimoInstance.init(). */
|
|
28
|
+
toolPaths?: string[];
|
|
29
|
+
/** Auto-discover @matimo/* packages. Default: true */
|
|
30
|
+
autoDiscover?: boolean;
|
|
31
|
+
/** Enable HTTPS. Requires cert+key or use selfSigned. Default: false */
|
|
32
|
+
https?: boolean;
|
|
33
|
+
/** Path to TLS certificate file (PEM). Required if https=true and selfSigned=false. */
|
|
34
|
+
certPath?: string;
|
|
35
|
+
/** Path to TLS private key file (PEM). Required if https=true and selfSigned=false. */
|
|
36
|
+
keyPath?: string;
|
|
37
|
+
/** Auto-generate self-signed certificate. Default: false. Certs stored in .matimo/certs/ */
|
|
38
|
+
selfSigned?: boolean;
|
|
39
|
+
}
|
|
40
|
+
export declare class MCPServer {
|
|
41
|
+
private readonly options;
|
|
42
|
+
private matimo;
|
|
43
|
+
private resolverChain;
|
|
44
|
+
private mcpServer;
|
|
45
|
+
private httpServer;
|
|
46
|
+
/** Filtered tools available for MCP registration */
|
|
47
|
+
private filteredTools;
|
|
48
|
+
/** The active bearer token (explicit, env, or auto-generated) */
|
|
49
|
+
private activeToken;
|
|
50
|
+
constructor(options?: MCPServerOptions);
|
|
51
|
+
/** Get the active bearer token (available after start()) */
|
|
52
|
+
getActiveToken(): string | null;
|
|
53
|
+
/**
|
|
54
|
+
* Start the MCP server.
|
|
55
|
+
*
|
|
56
|
+
* 1. Initialize secret resolver chain
|
|
57
|
+
* 2. Seed process.env with resolved secrets (for MatimoInstance compatibility)
|
|
58
|
+
* 3. Initialize MatimoInstance with tools
|
|
59
|
+
* 4. Register all tools on the MCP server
|
|
60
|
+
* 5. Connect transport (stdio or HTTP)
|
|
61
|
+
*/
|
|
62
|
+
start(): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Resolve all auth-related secrets for tools and seed them into process.env.
|
|
65
|
+
* This ensures MatimoInstance.injectAuthParameters() can find them.
|
|
66
|
+
*/
|
|
67
|
+
private seedEnvironmentSecrets;
|
|
68
|
+
/**
|
|
69
|
+
* Create a new McpServer instance with all filtered tools registered.
|
|
70
|
+
* Each call returns a fresh server — used per-session in HTTP mode.
|
|
71
|
+
*/
|
|
72
|
+
private createMcpServerWithTools;
|
|
73
|
+
/**
|
|
74
|
+
* Connect via stdio transport (for Claude Desktop, Cursor, etc.)
|
|
75
|
+
*/
|
|
76
|
+
private connectStdio;
|
|
77
|
+
/**
|
|
78
|
+
* Connect via HTTP/HTTPS transport with Bearer token auth.
|
|
79
|
+
* Creates a new McpServer + transport per session to support multiple concurrent clients.
|
|
80
|
+
* Auto-generates a bearer token if none is provided.
|
|
81
|
+
*/
|
|
82
|
+
private connectHttp;
|
|
83
|
+
/**
|
|
84
|
+
* Get TLS options for HTTPS mode.
|
|
85
|
+
* Supports user-provided certs or auto-generated self-signed certs.
|
|
86
|
+
*/
|
|
87
|
+
private getTlsOptions;
|
|
88
|
+
/**
|
|
89
|
+
* Generate a self-signed TLS certificate using Node.js crypto.
|
|
90
|
+
* Certs are cached in .matimo/certs/ for reuse across restarts.
|
|
91
|
+
*/
|
|
92
|
+
private generateSelfSignedCert;
|
|
93
|
+
/**
|
|
94
|
+
* Create a self-signed certificate using openssl CLI.
|
|
95
|
+
* Throws if openssl is unavailable or fails — provide --cert and --key paths as an alternative.
|
|
96
|
+
*/
|
|
97
|
+
private createSelfSignedCertViaCli;
|
|
98
|
+
/**
|
|
99
|
+
* Gracefully stop the MCP server.
|
|
100
|
+
*/
|
|
101
|
+
stop(): Promise<void>;
|
|
102
|
+
/** Get the MatimoInstance (for testing) */
|
|
103
|
+
getMatimoInstance(): MatimoInstance | null;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Factory function to create and start an MCP server.
|
|
107
|
+
* Convenience for one-liner usage.
|
|
108
|
+
*/
|
|
109
|
+
export declare function createMCPServer(options?: MCPServerOptions): Promise<MCPServer>;
|
|
110
|
+
//# sourceMappingURL=mcp-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAKjE,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uDAAuD;IACvD,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAC3C,gHAAgH;IAChH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,sDAAsD;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAqED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGL;IACnB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,UAAU,CAAiB;IACnC,oDAAoD;IACpD,OAAO,CAAC,aAAa,CAAwB;IAC7C,iEAAiE;IACjE,OAAO,CAAC,WAAW,CAAuB;gBAE9B,OAAO,GAAE,gBAAqB;IAW1C,4DAA4D;IAC5D,cAAc,IAAI,MAAM,GAAG,IAAI;IAI/B;;;;;;;;OAQG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoE5B;;;OAGG;YACW,sBAAsB;IA2CpC;;;OAGG;YAEW,wBAAwB;IA+EtC;;OAEG;YACW,YAAY;IAiB1B;;;;OAIG;YACW,WAAW;IAoMzB;;;OAGG;YACW,aAAa;IAyB3B;;;OAGG;YACW,sBAAsB;IAyCpC;;;OAGG;YAEW,0BAA0B;IAqDxC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiD3B,2CAA2C;IAC3C,iBAAiB,IAAI,cAAc,GAAG,IAAI;CAG3C;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAIpF"}
|