@oobe-protocol-labs/sap-mcp-server 0.1.1 → 0.2.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 (97) hide show
  1. package/CHANGELOG.md +32 -1
  2. package/README.md +21 -2
  3. package/USER_DOCS/00_START_HERE.md +130 -0
  4. package/USER_DOCS/01_HOSTED_REMOTE_MCP.md +106 -0
  5. package/USER_DOCS/02_LOCAL_STDIO_MCP.md +91 -0
  6. package/USER_DOCS/03_PAYMENTS_X402_PAYSH.md +212 -0
  7. package/USER_DOCS/04_CLIENT_CONFIGS.md +73 -0
  8. package/USER_DOCS/05_SKILLS_AND_TOOLS.md +81 -0
  9. package/assets/explorer_logo.png +0 -0
  10. package/dist/bin/sap-mcp-remote.js +2 -1
  11. package/dist/bin/sap-mcp-remote.js.map +1 -1
  12. package/dist/config/env.d.ts +14 -14
  13. package/dist/config/env.d.ts.map +1 -1
  14. package/dist/config/env.js +30 -7
  15. package/dist/config/env.js.map +1 -1
  16. package/dist/core/constants.d.ts +1 -1
  17. package/dist/core/constants.js +1 -1
  18. package/dist/core/logger.d.ts +5 -0
  19. package/dist/core/logger.d.ts.map +1 -1
  20. package/dist/core/logger.js +61 -3
  21. package/dist/core/logger.js.map +1 -1
  22. package/dist/payments/monetization-gate.d.ts +6 -1
  23. package/dist/payments/monetization-gate.d.ts.map +1 -1
  24. package/dist/payments/monetization-gate.js +25 -8
  25. package/dist/payments/monetization-gate.js.map +1 -1
  26. package/dist/payments/oobe-facilitator-server.js +2 -2
  27. package/dist/payments/oobe-facilitator-server.js.map +1 -1
  28. package/dist/payments/pay-sh-spec.d.ts.map +1 -1
  29. package/dist/payments/pay-sh-spec.js +2 -1
  30. package/dist/payments/pay-sh-spec.js.map +1 -1
  31. package/dist/payments/usage-ledger.d.ts +9 -1
  32. package/dist/payments/usage-ledger.d.ts.map +1 -1
  33. package/dist/payments/usage-ledger.js +29 -1
  34. package/dist/payments/usage-ledger.js.map +1 -1
  35. package/dist/prompts/context/sap-agent-context.prompt.js +2 -2
  36. package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
  37. package/dist/remote/rate-limiter.d.ts +57 -0
  38. package/dist/remote/rate-limiter.d.ts.map +1 -0
  39. package/dist/remote/rate-limiter.js +127 -0
  40. package/dist/remote/rate-limiter.js.map +1 -0
  41. package/dist/remote/server.d.ts +68 -0
  42. package/dist/remote/server.d.ts.map +1 -1
  43. package/dist/remote/server.js +297 -19
  44. package/dist/remote/server.js.map +1 -1
  45. package/dist/resources/current/sap-current-config.resource.js +2 -2
  46. package/dist/resources/current/sap-current-config.resource.js.map +1 -1
  47. package/dist/resources/stats/sap-network-stats.resource.js +2 -2
  48. package/dist/resources/stats/sap-network-stats.resource.js.map +1 -1
  49. package/dist/security/tool-permissions.d.ts.map +1 -1
  50. package/dist/security/tool-permissions.js +25 -0
  51. package/dist/security/tool-permissions.js.map +1 -1
  52. package/dist/server/server-metadata.d.ts +1 -0
  53. package/dist/server/server-metadata.d.ts.map +1 -1
  54. package/dist/server/server-metadata.js +3 -2
  55. package/dist/server/server-metadata.js.map +1 -1
  56. package/dist/tools/chat-tools.d.ts +14 -0
  57. package/dist/tools/chat-tools.d.ts.map +1 -0
  58. package/dist/tools/chat-tools.js +697 -0
  59. package/dist/tools/chat-tools.js.map +1 -0
  60. package/dist/tools/client-sdk-tools.d.ts.map +1 -1
  61. package/dist/tools/client-sdk-tools.js +178 -2
  62. package/dist/tools/client-sdk-tools.js.map +1 -1
  63. package/dist/tools/index.d.ts +1 -0
  64. package/dist/tools/index.d.ts.map +1 -1
  65. package/dist/tools/index.js +2 -0
  66. package/dist/tools/index.js.map +1 -1
  67. package/dist/tools/profile-tools.d.ts.map +1 -1
  68. package/dist/tools/profile-tools.js +3 -2
  69. package/dist/tools/profile-tools.js.map +1 -1
  70. package/dist/tools/register-tools.d.ts.map +1 -1
  71. package/dist/tools/register-tools.js +3 -0
  72. package/dist/tools/register-tools.js.map +1 -1
  73. package/dist/tools/sap-network-stats.tool.js +2 -2
  74. package/dist/tools/sap-network-stats.tool.js.map +1 -1
  75. package/dist/tools/sap-sdk-tools.d.ts.map +1 -1
  76. package/dist/tools/sap-sdk-tools.js +34 -1
  77. package/dist/tools/sap-sdk-tools.js.map +1 -1
  78. package/dist/transports/http.js +3 -3
  79. package/dist/transports/http.js.map +1 -1
  80. package/docs/00_README.md +4 -0
  81. package/docs/01_PRODUCT_OVERVIEW.md +2 -1
  82. package/docs/02_ARCHITECTURE_AND_REQUEST_FLOW.md +1 -1
  83. package/docs/05_REMOTE_VPS_DEPLOYMENT.md +13 -0
  84. package/docs/07_ENDPOINTS_AND_CLIENTS.md +6 -1
  85. package/docs/09_TOOLS_SKILLS_AND_AGENT_GUIDE.md +2 -1
  86. package/docs/10_OPERATIONS_RELEASE_AND_PM2.md +13 -2
  87. package/docs/12_ONCHAIN_AGENT_CHAT.md +178 -0
  88. package/package.json +17 -14
  89. package/skills/README.md +1 -0
  90. package/skills/sap-agent-chat/SKILL.md +71 -0
  91. package/skills/sap-mcp/SKILL.md +3 -2
  92. package/vendor/bigint-buffer/LICENSE +1 -0
  93. package/vendor/bigint-buffer/README.md +8 -0
  94. package/vendor/bigint-buffer/dist/browser.js +3 -0
  95. package/vendor/bigint-buffer/dist/index.d.ts +35 -0
  96. package/vendor/bigint-buffer/dist/node.js +62 -0
  97. package/vendor/bigint-buffer/package.json +20 -0
@@ -0,0 +1,127 @@
1
+ /**
2
+ * @name RemoteRateLimiter
3
+ * @description Per-client rolling-window limiter for hosted MCP traffic with optional Redis backing.
4
+ */
5
+ import { Redis } from 'ioredis';
6
+ import { logger } from '../core/logger.js';
7
+ const WINDOW_SECONDS = 60;
8
+ const WINDOW_MS = WINDOW_SECONDS * 1000;
9
+ /**
10
+ * @name RemoteRateLimiter
11
+ * @description Shared Redis-backed limiter when configured, with an in-memory fallback for single-process deployments.
12
+ */
13
+ export class RemoteRateLimiter {
14
+ config;
15
+ localEntries = new Map();
16
+ redis;
17
+ constructor(config) {
18
+ this.config = config;
19
+ if (config.redisUrl) {
20
+ this.redis = new Redis(config.redisUrl, {
21
+ lazyConnect: true,
22
+ maxRetriesPerRequest: 2,
23
+ enableOfflineQueue: false,
24
+ });
25
+ this.redis.on('error', (error) => {
26
+ logger.warn('Remote rate limiter Redis error', { error });
27
+ });
28
+ }
29
+ }
30
+ /**
31
+ * @name initialize
32
+ * @description Establishes the optional Redis connection before accepting traffic.
33
+ */
34
+ async initialize() {
35
+ if (!this.redis) {
36
+ return;
37
+ }
38
+ await this.redis.connect();
39
+ logger.info('Remote rate limiter using Redis backend');
40
+ }
41
+ /**
42
+ * @name check
43
+ * @description Checks and increments the rolling counter for a caller key.
44
+ */
45
+ async check(clientKey) {
46
+ if (!this.config.enabled || this.config.requestsPerMinute <= 0) {
47
+ return {
48
+ allowed: true,
49
+ limit: Number.POSITIVE_INFINITY,
50
+ remaining: Number.POSITIVE_INFINITY,
51
+ resetSeconds: WINDOW_SECONDS,
52
+ };
53
+ }
54
+ if (this.redis) {
55
+ return this.checkRedis(clientKey);
56
+ }
57
+ return this.checkLocal(clientKey);
58
+ }
59
+ /**
60
+ * @name close
61
+ * @description Closes the optional Redis connection.
62
+ */
63
+ async close() {
64
+ await this.redis?.quit();
65
+ }
66
+ async checkRedis(clientKey) {
67
+ const key = `${this.config.keyPrefix}${clientKey}`;
68
+ const count = await this.redis?.incr(key) ?? 1;
69
+ if (count === 1) {
70
+ await this.redis?.expire(key, WINDOW_SECONDS);
71
+ }
72
+ const ttl = await this.redis?.ttl(key) ?? WINDOW_SECONDS;
73
+ const remaining = Math.max(0, this.config.requestsPerMinute - count);
74
+ return {
75
+ allowed: count <= this.config.requestsPerMinute,
76
+ limit: this.config.requestsPerMinute,
77
+ remaining,
78
+ resetSeconds: ttl > 0 ? ttl : WINDOW_SECONDS,
79
+ };
80
+ }
81
+ checkLocal(clientKey) {
82
+ const now = Date.now();
83
+ const existing = this.localEntries.get(clientKey);
84
+ const entry = existing && now < existing.resetAt
85
+ ? existing
86
+ : { count: 0, resetAt: now + WINDOW_MS };
87
+ entry.count += 1;
88
+ this.localEntries.set(clientKey, entry);
89
+ const resetSeconds = Math.max(1, Math.ceil((entry.resetAt - now) / 1000));
90
+ const remaining = Math.max(0, this.config.requestsPerMinute - entry.count);
91
+ return {
92
+ allowed: entry.count <= this.config.requestsPerMinute,
93
+ limit: this.config.requestsPerMinute,
94
+ remaining,
95
+ resetSeconds,
96
+ };
97
+ }
98
+ }
99
+ /**
100
+ * @name buildRemoteRateLimitConfigFromEnv
101
+ * @description Resolves hosted MCP rate-limit settings from environment variables.
102
+ */
103
+ export function buildRemoteRateLimitConfigFromEnv(defaultPerMinute) {
104
+ const enabled = parseBoolean(process.env.SAP_MCP_REMOTE_RATE_LIMIT_ENABLED, true);
105
+ const useRedis = parseBoolean(process.env.SAP_MCP_USE_REDIS, false);
106
+ const redisUrl = process.env.SAP_MCP_REDIS_URL;
107
+ return {
108
+ enabled,
109
+ requestsPerMinute: parsePositiveInteger(process.env.SAP_MCP_REMOTE_RATE_LIMIT_PER_MINUTE, defaultPerMinute),
110
+ redisUrl: useRedis ? redisUrl || 'redis://127.0.0.1:6379' : undefined,
111
+ keyPrefix: process.env.SAP_MCP_REMOTE_RATE_LIMIT_PREFIX || 'sap-mcp:remote:rate:',
112
+ };
113
+ }
114
+ function parseBoolean(raw, fallback) {
115
+ if (raw === undefined) {
116
+ return fallback;
117
+ }
118
+ return ['true', '1', 'yes', 'on'].includes(raw.trim().toLowerCase());
119
+ }
120
+ function parsePositiveInteger(raw, fallback) {
121
+ if (!raw) {
122
+ return fallback;
123
+ }
124
+ const value = Number.parseInt(raw, 10);
125
+ return Number.isFinite(value) && value > 0 ? value : fallback;
126
+ }
127
+ //# sourceMappingURL=rate-limiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/remote/rate-limiter.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  import * as http from 'http';
7
7
  import { type SapMcpConfig } from '../config/env.js';
8
8
  import { type RemoteAuthConfig } from './auth/index.js';
9
+ import { type RemoteRateLimitConfig } from './rate-limiter.js';
9
10
  /**
10
11
  * @name RemoteMCPConfig
11
12
  * @description Resolved runtime configuration for the remote MCP HTTP server.
@@ -15,6 +16,8 @@ export interface RemoteMCPConfig {
15
16
  host: string;
16
17
  corsOrigins?: string[];
17
18
  auth: RemoteAuthConfig;
19
+ stateless: boolean;
20
+ rateLimit: RemoteRateLimitConfig;
18
21
  }
19
22
  /**
20
23
  * @name A2AAgentCard
@@ -80,6 +83,55 @@ export interface WizardInstallDescriptor {
80
83
  signerLocation: 'user-machine-or-external-signer';
81
84
  };
82
85
  }
86
+ /**
87
+ * @name PublicServerInfo
88
+ * @description Public, secret-free metadata for the hosted SAP MCP deployment.
89
+ */
90
+ export interface PublicServerInfo {
91
+ name: 'sap-mcp-server';
92
+ title: string;
93
+ description: string;
94
+ version: string;
95
+ status: 'online';
96
+ protocol: {
97
+ primary: 'mcp';
98
+ transport: 'streamable-http';
99
+ protocolVersion: '2025-06-18';
100
+ };
101
+ endpoints: {
102
+ landing: string;
103
+ mcp: string;
104
+ health: string;
105
+ serverInfo: string;
106
+ agentCard: string;
107
+ wizardDescriptor: string;
108
+ wizardInstallScript: string;
109
+ favicon: string;
110
+ };
111
+ capabilities: {
112
+ tools: boolean;
113
+ resources: boolean;
114
+ prompts: boolean;
115
+ streaming: boolean;
116
+ payments: readonly ['x402', 'pay.sh'];
117
+ userControlledSigning: true;
118
+ };
119
+ authentication: {
120
+ schemes: readonly ('Bearer' | 'x402' | 'none')[];
121
+ bearerRequired: boolean;
122
+ };
123
+ security: {
124
+ keypairBytesExposed: false;
125
+ storesUserKeypairs: false;
126
+ rpcSecretsExposed: false;
127
+ wizardConfigDirectory: '~/.config/mcp-sap';
128
+ };
129
+ docs: {
130
+ npm: 'https://www.npmjs.com/package/@oobe-protocol-labs/sap-mcp-server';
131
+ github: 'https://github.com/OOBE-PROTOCOL/sap-mcp';
132
+ userDocs: 'https://github.com/OOBE-PROTOCOL/sap-mcp/tree/main/USER_DOCS';
133
+ };
134
+ }
83
135
  /**
84
136
  * @name parseApiKeys
85
137
  * @description Parses comma-separated `apiKey=userId` entries from environment configuration.
@@ -90,6 +142,16 @@ export declare function parseApiKeys(raw: string | undefined): Map<string, strin
90
142
  * @description Builds remote-server configuration from SAP config plus remote-specific environment values.
91
143
  */
92
144
  export declare function defaultRemoteConfig(appConfig: SapMcpConfig): RemoteMCPConfig;
145
+ /**
146
+ * @name buildPublicServerInfo
147
+ * @description Builds secret-free public metadata for humans, crawlers, and agent discovery.
148
+ */
149
+ export declare function buildPublicServerInfo(req: http.IncomingMessage, config: RemoteMCPConfig): PublicServerInfo;
150
+ /**
151
+ * @name buildLandingHtml
152
+ * @description Builds professional public HTML metadata for root and `/mcp` URL previews.
153
+ */
154
+ export declare function buildLandingHtml(req: http.IncomingMessage, config: RemoteMCPConfig, endpoint?: 'root' | 'mcp'): string;
93
155
  /**
94
156
  * @name buildA2AAgentCard
95
157
  * @description Builds the public A2A-compatible agent-card document for remote discovery.
@@ -113,6 +175,7 @@ export declare class RemoteMCPServer {
113
175
  private readonly config;
114
176
  private readonly appConfig;
115
177
  private readonly authManager;
178
+ private readonly rateLimiter;
116
179
  private transport?;
117
180
  private httpServer?;
118
181
  constructor(config?: RemoteMCPConfig);
@@ -137,4 +200,9 @@ export declare class RemoteMCPServer {
137
200
  */
138
201
  private applyCors;
139
202
  }
203
+ /**
204
+ * @name startRemoteMcpServerProcess
205
+ * @description Starts the remote MCP HTTP server and installs process signal handlers for CLI/PM2 execution.
206
+ */
207
+ export declare function startRemoteMcpServerProcess(): Promise<void>;
140
208
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/remote/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/remote/server.ts"],"names":[],"mappings":"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"}