@qubiton/mcp-server 0.2.1397

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/README.md ADDED
@@ -0,0 +1,205 @@
1
+ # @qubiton/mcp-server
2
+
3
+ MCP (Model Context Protocol) server for the [QubitOn API](https://www.qubiton.com) by QubitOn. Provides Claude Desktop with access to 37 tools, 20 prompts, and 7 resources via stdio.
4
+
5
+ ## Quick Start
6
+
7
+ Add to your `claude_desktop_config.json`:
8
+
9
+ ```json
10
+ {
11
+ "mcpServers": {
12
+ "qubiton": {
13
+ "command": "npx",
14
+ "args": ["-y", "@qubiton/mcp-server"],
15
+ "env": {
16
+ "QUBITON_API_KEY": "svm..."
17
+ }
18
+ }
19
+ }
20
+ }
21
+ ```
22
+
23
+ Then restart Claude Desktop. The tools, prompts, and resources will appear automatically.
24
+
25
+ ## Client Configurations
26
+
27
+ ### Cursor
28
+
29
+ Add to `~/.cursor/mcp.json`:
30
+
31
+ ```json
32
+ {
33
+ "mcpServers": {
34
+ "qubiton": {
35
+ "command": "npx",
36
+ "args": ["-y", "@qubiton/mcp-server"],
37
+ "env": {
38
+ "QUBITON_API_KEY": "svm..."
39
+ }
40
+ }
41
+ }
42
+ }
43
+ ```
44
+
45
+ ### VS Code
46
+
47
+ Add to `.vscode/mcp.json` in your project root:
48
+
49
+ ```json
50
+ {
51
+ "mcp": {
52
+ "servers": {
53
+ "qubiton": {
54
+ "command": "npx",
55
+ "args": ["-y", "@qubiton/mcp-server"],
56
+ "env": {
57
+ "QUBITON_API_KEY": "svm..."
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
63
+ ```
64
+
65
+ ### Windsurf
66
+
67
+ Add to `~/.codeium/windsurf/mcp_config.json`:
68
+
69
+ ```json
70
+ {
71
+ "mcpServers": {
72
+ "qubiton": {
73
+ "command": "npx",
74
+ "args": ["-y", "@qubiton/mcp-server"],
75
+ "env": {
76
+ "QUBITON_API_KEY": "svm..."
77
+ }
78
+ }
79
+ }
80
+ }
81
+ ```
82
+
83
+ ### Cline
84
+
85
+ Add to VS Code settings under `cline.mcpServers`:
86
+
87
+ ```json
88
+ {
89
+ "mcpServers": {
90
+ "qubiton": {
91
+ "command": "npx",
92
+ "args": ["-y", "@qubiton/mcp-server"],
93
+ "env": {
94
+ "QUBITON_API_KEY": "svm..."
95
+ }
96
+ }
97
+ }
98
+ }
99
+ ```
100
+
101
+ ## How It Works
102
+
103
+ This package is a lightweight stdio-to-HTTP bridge. It connects to the QubitOn MCP server at `https://www.qubiton.com/mcp`, discovers available tools, prompts, and resources, and re-exposes them locally via stdio for Claude Desktop.
104
+
105
+ ## Authentication
106
+
107
+ Two authentication methods are supported:
108
+
109
+ ### API Key (recommended)
110
+
111
+ Set the `QUBITON_API_KEY` environment variable with your API key (starts with `svm`). The key is sent via the `apikey` header on every request.
112
+
113
+ ### OAuth2 Bearer Token
114
+
115
+ If you have an OAuth2 token from `POST /api/oauth/token` (client_credentials grant), set `QUBITON_TOKEN`. The token is sent via the `Authorization: Bearer` header. Both can be set simultaneously — the API key is always required, and the Bearer token provides additional identity context.
116
+
117
+ ## Environment Variables
118
+
119
+ | Variable | Required | Default | Description |
120
+ |----------|----------|---------|-------------|
121
+ | `QUBITON_API_KEY` | Yes | — | Your API key (starts with `svm`) |
122
+ | `QUBITON_TOKEN` | No | — | OAuth2 Bearer token for additional auth |
123
+ | `QUBITON_BASE_URL` | No | `https://www.qubiton.com` | Override the MCP server base URL |
124
+
125
+ ## Available Tools (37)
126
+
127
+ The server exposes all tools from the QubitOn API across 9 categories:
128
+
129
+ - **Core Validation** — Address, tax ID, bank account, email, phone, business registration
130
+ - **Compliance** — Sanctions (OFAC/EU/UN), PEP screening, disqualified directors, EPA prosecution, healthcare exclusion
131
+ - **Risk & Financial** — Bankruptcy risk, credit score, fail rate, entity risk, credit analysis
132
+ - **ESG & Cybersecurity** — ESG scores, domain security, IP quality
133
+ - **Corporate Structure** — Beneficial ownership, corporate hierarchy, DUNS number, parent-child hierarchy
134
+ - **Industry Specific** — NPI, Medpass, DOT carrier, India identity, certifications, business classification
135
+ - **Financial Operations** — Payment terms analysis, currency exchange rates
136
+ - **Ariba** — Supplier profile lookup, supplier profile validation
137
+ - **Other** — Gender identification
138
+
139
+ ## Available Prompts (20)
140
+
141
+ Pre-built prompt templates for common business workflows:
142
+
143
+ - **Onboarding** (5) — New third-party onboarding, quick identity check, international entity verification, India entity verification, master data cleansing
144
+ - **Compliance** (5) — Sanctions screening, anti-corruption check, healthcare compliance, director due diligence, supplier diversity check
145
+ - **Risk** (5) — Comprehensive due diligence, financial stability assessment, ESG assessment, cybersecurity assessment, corporate structure analysis
146
+ - **Payment** (5) — Bank fraud prevention, pre-payment verification, payment optimization, periodic revalidation, transportation carrier check
147
+
148
+ ## Available Resources (7)
149
+
150
+ Reference datasets accessible to AI models:
151
+
152
+ - **tool_inventory** — Complete tool catalog organized by category
153
+ - **entity_risk_categories** — Risk category definitions
154
+ - **healthcare_types** — HCO/HCP entity types
155
+ - **india_identity_types** — PAN, Aadhaar, GSTIN, TAN, CIN formats
156
+ - **certification_types** — Diversity and small business certifications
157
+ - **supported_countries** — Country coverage by validation type
158
+ - **about** — API and company overview
159
+
160
+ ## MCP Protocol Support
161
+
162
+ This server implements the full [Model Context Protocol](https://modelcontextprotocol.io) specification, exposing the QubitOn API as 37 tools, 20 prompts, and 7 resources via stdio.
163
+
164
+ ### Summary
165
+
166
+ | Category | Count | Description |
167
+ |----------|-------|-------------|
168
+ | MCP Tools | 37 | 1:1 mapped to API endpoints — same auth, rate limits, and plan access |
169
+ | MCP Prompts | 20 | Multi-tool workflow templates (onboarding, compliance, risk, payment) |
170
+ | MCP Resources | 7 | Reference datasets (tool inventory, risk categories, country coverage) |
171
+
172
+ Prompts may be plan-gated. See [Pricing](https://www.qubiton.com/pricing) for details.
173
+
174
+ ### Discovery Endpoints
175
+
176
+ - [MCP Manifest](https://www.qubiton.com/.well-known/mcp.json) -- machine-readable server metadata
177
+ - [Resource Content](https://www.qubiton.com/api/portal/mcp/resources/{name}) -- fetch any resource by name
178
+
179
+ ### Accessing Resource Content
180
+
181
+ Resources are also available over plain HTTP for non-MCP clients:
182
+
183
+ ```bash
184
+ curl https://www.qubiton.com/api/portal/mcp/resources/tool_inventory
185
+ curl https://www.qubiton.com/api/portal/mcp/resources/supported_countries
186
+ ```
187
+
188
+ Available resources: `tool_inventory`, `entity_risk_categories`, `healthcare_types`, `india_identity_types`, `certification_types`, `supported_countries`, `about`.
189
+
190
+ ## Getting an API Key
191
+
192
+ 1. Sign up for a free account at [www.qubiton.com](https://www.qubiton.com/auth/register)
193
+ 2. Navigate to Dashboard > API Keys
194
+ 3. Copy your API key
195
+
196
+ ## Development
197
+
198
+ ```bash
199
+ npm install
200
+ npm run build
201
+ ```
202
+
203
+ ## License
204
+
205
+ MIT
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * QubitOn MCP Server
4
+ *
5
+ * Stdio-to-HTTP bridge that proxies MCP requests from Claude Desktop
6
+ * to the QubitOn MCP server at www.qubiton.com/mcp.
7
+ *
8
+ * Install in claude_desktop_config.json:
9
+ * {
10
+ * "mcpServers": {
11
+ * "qubiton": {
12
+ * "command": "npx",
13
+ * "args": ["-y", "@qubiton/mcp-server"],
14
+ * "env": { "QUBITON_API_KEY": "svm..." }
15
+ * }
16
+ * }
17
+ * }
18
+ */
19
+ export {};
package/build/index.js ADDED
@@ -0,0 +1,191 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * QubitOn MCP Server
4
+ *
5
+ * Stdio-to-HTTP bridge that proxies MCP requests from Claude Desktop
6
+ * to the QubitOn MCP server at www.qubiton.com/mcp.
7
+ *
8
+ * Install in claude_desktop_config.json:
9
+ * {
10
+ * "mcpServers": {
11
+ * "qubiton": {
12
+ * "command": "npx",
13
+ * "args": ["-y", "@qubiton/mcp-server"],
14
+ * "env": { "QUBITON_API_KEY": "svm..." }
15
+ * }
16
+ * }
17
+ * }
18
+ */
19
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
20
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
21
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
22
+ import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
23
+ const DEFAULT_BASE_URL = "https://www.qubiton.com";
24
+ // Reconnect config
25
+ const INITIAL_DELAY_MS = 1000;
26
+ const MAX_DELAY_MS = 60_000;
27
+ const BACKOFF_MULTIPLIER = 2;
28
+ const JITTER_FACTOR = 0.2;
29
+ const HEALTH_CHECK_INTERVAL_MS = 30_000;
30
+ function log(message) {
31
+ process.stderr.write(`[qubiton-mcp] ${message}\n`);
32
+ }
33
+ let remoteClient;
34
+ let reconnecting = false;
35
+ let healthCheckTimer;
36
+ function createTransport(mcpUrl, apiKey, bearerToken) {
37
+ const headers = { apikey: apiKey };
38
+ if (bearerToken) {
39
+ headers["Authorization"] = `Bearer ${bearerToken}`;
40
+ }
41
+ return new StreamableHTTPClientTransport(mcpUrl, {
42
+ requestInit: { headers },
43
+ });
44
+ }
45
+ async function connectWithRetry(mcpUrl, apiKey, bearerToken) {
46
+ let delay = INITIAL_DELAY_MS;
47
+ for (;;) {
48
+ try {
49
+ const transport = createTransport(mcpUrl, apiKey, bearerToken);
50
+ const client = new Client({
51
+ name: "qubiton-mcp-bridge",
52
+ version: "0.2.0",
53
+ });
54
+ await client.connect(transport);
55
+ return client;
56
+ }
57
+ catch (err) {
58
+ const message = err instanceof Error ? err.message : String(err);
59
+ log(`Connection failed: ${message}. Retrying in ${Math.round(delay / 1000)}s...`);
60
+ // Apply jitter: delay ± 20%
61
+ const jitter = delay * JITTER_FACTOR * (2 * Math.random() - 1);
62
+ await new Promise((resolve) => setTimeout(resolve, delay + jitter));
63
+ delay = Math.min(delay * BACKOFF_MULTIPLIER, MAX_DELAY_MS);
64
+ }
65
+ }
66
+ }
67
+ async function startHealthCheck(mcpUrl, apiKey, bearerToken) {
68
+ if (healthCheckTimer)
69
+ clearInterval(healthCheckTimer);
70
+ healthCheckTimer = setInterval(async () => {
71
+ try {
72
+ await remoteClient.listTools();
73
+ }
74
+ catch {
75
+ log("Health check failed — remote server unreachable, reconnecting...");
76
+ reconnecting = true;
77
+ try {
78
+ remoteClient = await connectWithRetry(mcpUrl, apiKey, bearerToken);
79
+ reconnecting = false;
80
+ log("Reconnected to remote MCP server");
81
+ }
82
+ catch (err) {
83
+ const message = err instanceof Error ? err.message : String(err);
84
+ log(`Reconnection failed: ${message}`);
85
+ }
86
+ }
87
+ }, HEALTH_CHECK_INTERVAL_MS);
88
+ }
89
+ async function main() {
90
+ const apiKey = process.env.QUBITON_API_KEY;
91
+ const bearerToken = process.env.QUBITON_TOKEN;
92
+ if (!apiKey) {
93
+ log("ERROR: QUBITON_API_KEY environment variable is required");
94
+ log("Get your API key at https://www.qubiton.com/dashboard/api-keys");
95
+ process.exit(1);
96
+ }
97
+ const baseUrl = process.env.QUBITON_BASE_URL ?? DEFAULT_BASE_URL;
98
+ const mcpUrl = new URL("/mcp", baseUrl);
99
+ log(`Connecting to ${mcpUrl.toString()}`);
100
+ // Connect to the remote MCP server with retry
101
+ remoteClient = await connectWithRetry(mcpUrl, apiKey, bearerToken);
102
+ log("Connected to remote MCP server");
103
+ // List available tools from the remote server
104
+ const { tools: remoteTools } = await remoteClient.listTools();
105
+ log(`Discovered ${remoteTools.length} tools from remote server`);
106
+ // Create local MCP server that re-exposes the remote tools
107
+ const localServer = new McpServer({
108
+ name: "qubiton",
109
+ version: "0.2.0",
110
+ });
111
+ // Register each remote tool locally
112
+ for (const tool of remoteTools) {
113
+ const inputSchema = tool.inputSchema;
114
+ localServer.tool(tool.name, tool.description ?? "", inputSchema.properties
115
+ ? Object.fromEntries(Object.entries(inputSchema.properties).map(([key, schema]) => [
116
+ key,
117
+ schema,
118
+ ]))
119
+ : {}, async (args) => {
120
+ if (reconnecting) {
121
+ return {
122
+ content: [{ type: "text", text: "Error: Server is reconnecting. Please try again shortly." }],
123
+ isError: true,
124
+ };
125
+ }
126
+ try {
127
+ const result = await remoteClient.callTool({
128
+ name: tool.name,
129
+ arguments: args,
130
+ });
131
+ return result;
132
+ }
133
+ catch (err) {
134
+ const message = err instanceof Error ? err.message : "Unknown error";
135
+ return {
136
+ content: [{ type: "text", text: `Error: ${message}` }],
137
+ isError: true,
138
+ };
139
+ }
140
+ });
141
+ }
142
+ // Discover and bridge prompts
143
+ try {
144
+ const { prompts: remotePrompts } = await remoteClient.listPrompts();
145
+ log(`Discovered ${remotePrompts.length} prompts from remote server`);
146
+ for (const prompt of remotePrompts) {
147
+ localServer.prompt(prompt.name, prompt.description ?? "", async () => {
148
+ if (reconnecting) {
149
+ return { messages: [{ role: "user", content: { type: "text", text: "Error: Server is reconnecting. Please try again shortly." } }] };
150
+ }
151
+ const result = await remoteClient.getPrompt({
152
+ name: prompt.name,
153
+ });
154
+ return result;
155
+ });
156
+ }
157
+ }
158
+ catch {
159
+ log("Remote server does not support prompts, skipping");
160
+ }
161
+ // Discover and bridge resources
162
+ try {
163
+ const { resources: remoteResources } = await remoteClient.listResources();
164
+ log(`Discovered ${remoteResources.length} resources from remote server`);
165
+ for (const resource of remoteResources) {
166
+ localServer.resource(resource.name, resource.uri, async (uri) => {
167
+ if (reconnecting) {
168
+ return { contents: [{ text: "Error: Server is reconnecting. Please try again shortly.", uri: uri.href, mimeType: "text/plain" }] };
169
+ }
170
+ const result = await remoteClient.readResource({
171
+ uri: uri.href,
172
+ });
173
+ return result;
174
+ });
175
+ }
176
+ }
177
+ catch {
178
+ log("Remote server does not support resources, skipping");
179
+ }
180
+ // Start health check
181
+ startHealthCheck(mcpUrl, apiKey, bearerToken);
182
+ // Start the local stdio transport
183
+ const stdioTransport = new StdioServerTransport();
184
+ await localServer.connect(stdioTransport);
185
+ log("MCP server running on stdio");
186
+ }
187
+ main().catch((err) => {
188
+ log(`Fatal error: ${err instanceof Error ? err.message : String(err)}`);
189
+ process.exit(1);
190
+ });
191
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@qubiton/mcp-server",
3
+ "version": "0.2.1397",
4
+ "description": "MCP server for the QubitOn API by QubitOn — stdio proxy to the production MCP endpoint",
5
+ "type": "module",
6
+ "bin": {
7
+ "qubiton-mcp": "./build/index.js"
8
+ },
9
+ "files": [
10
+ "build"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "typecheck": "tsc --noEmit"
15
+ },
16
+ "engines": {
17
+ "node": ">=18"
18
+ },
19
+ "keywords": [
20
+ "mcp",
21
+ "model-context-protocol",
22
+ "claude",
23
+ "qubiton",
24
+ "QubitOn",
25
+ "validation",
26
+ "enrichment"
27
+ ],
28
+ "author": "QubitOn <support@qubiton.com>",
29
+ "license": "MIT",
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/qubitonhq/qubiton-mcp"
33
+ },
34
+ "homepage": "https://www.qubiton.com",
35
+ "dependencies": {
36
+ "@modelcontextprotocol/sdk": "^1.12.0"
37
+ },
38
+ "devDependencies": {
39
+ "typescript": "~5.7.0",
40
+ "@types/node": "^22.0.0"
41
+ }
42
+ }