@ticketnation/stellar-mcp 0.1.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.
- package/README.md +67 -0
- package/bin/stellar-mcp.js +33 -0
- package/package.json +41 -0
package/README.md
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# @ticketnation/stellar-mcp
|
|
2
|
+
|
|
3
|
+
Official stdio bridge for the Ticket Nation **Stellar OS** MCP server. It lets
|
|
4
|
+
stdio-only MCP clients use the hosted Stellar workflow at
|
|
5
|
+
`https://app.stellarseatsticket.com/api/mcp`.
|
|
6
|
+
|
|
7
|
+
The package contains no Stellar business logic or credentials. Requests,
|
|
8
|
+
tenant authorization, snapshot review, Buy/Spec decisions, audit evidence,
|
|
9
|
+
purchase-order preparation, and guarded TicketVault operations remain on the
|
|
10
|
+
hosted Stellar OS service.
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
|
|
14
|
+
- Node.js 22 or newer
|
|
15
|
+
- A personal Stellar MCP key issued for an active Stellar OS user
|
|
16
|
+
- Tenant permissions appropriate for each requested operation
|
|
17
|
+
|
|
18
|
+
## Configure an MCP client
|
|
19
|
+
|
|
20
|
+
Store the personal key in the client's secret environment. Never put it in a
|
|
21
|
+
prompt, repository, browser URL, or shared configuration file.
|
|
22
|
+
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"mcpServers": {
|
|
26
|
+
"stellar-os": {
|
|
27
|
+
"command": "npx",
|
|
28
|
+
"args": ["-y", "@ticketnation/stellar-mcp@latest"],
|
|
29
|
+
"env": {
|
|
30
|
+
"STELLAR_MCP_API_KEY": "stl_mcp_..."
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Clients that support authenticated remote Streamable HTTP directly do not need
|
|
38
|
+
this package. Connect them to:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
https://app.stellarseatsticket.com/api/mcp
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Send the personal key as a bearer authorization value through the client's
|
|
45
|
+
secret configuration.
|
|
46
|
+
|
|
47
|
+
## Available workflows
|
|
48
|
+
|
|
49
|
+
- Verify the acting Stellar user and authorized tenants.
|
|
50
|
+
- Search and review tenant-shared saved event availability snapshots.
|
|
51
|
+
- Create a Buy request for standard approval or a policy-released Spec request.
|
|
52
|
+
- Review Spec execution readiness and declare seats as the assigned purchaser.
|
|
53
|
+
- Separately queue an internal speculative PO and dark/unlisted TicketVault
|
|
54
|
+
inventory when production safety gates permit it.
|
|
55
|
+
- Observe TicketVault Pricer output and separately publish or withdraw approved
|
|
56
|
+
Spec inventory.
|
|
57
|
+
|
|
58
|
+
Snapshot evidence is saved observation data, not live availability. Quantities
|
|
59
|
+
and target prices remain explicit operator decisions. TicketVault mutations
|
|
60
|
+
remain protected by server-side assignment, capability, exact-event,
|
|
61
|
+
purpose-scoped connection, idempotency, audit, queue, and feature-flag controls.
|
|
62
|
+
|
|
63
|
+
## Key lifecycle
|
|
64
|
+
|
|
65
|
+
Keys are personal and requests are attributed to that existing Stellar user.
|
|
66
|
+
Revoke the key immediately if it is exposed, the user changes duties, or the
|
|
67
|
+
client no longer needs access.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const STELLAR_MCP_URL = "https://app.stellarseatsticket.com/api/mcp";
|
|
4
|
+
const apiKey = process.env.STELLAR_MCP_API_KEY?.trim();
|
|
5
|
+
|
|
6
|
+
if (!apiKey) {
|
|
7
|
+
process.stderr.write(
|
|
8
|
+
"STELLAR_MCP_API_KEY is required. Create a personal key in Stellar OS and store it only in your MCP client's secret environment.\n",
|
|
9
|
+
);
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
if (!apiKey.startsWith("stl_mcp_")) {
|
|
14
|
+
process.stderr.write("STELLAR_MCP_API_KEY has an invalid format.\n");
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// mcp-remote expands the environment placeholder itself. The credential never
|
|
19
|
+
// becomes a command-line argument or package file.
|
|
20
|
+
process.env.STELLAR_MCP_AUTH_HEADER = `Bearer ${apiKey}`;
|
|
21
|
+
delete process.env.STELLAR_MCP_API_KEY;
|
|
22
|
+
process.argv = [
|
|
23
|
+
process.execPath,
|
|
24
|
+
"stellar-mcp",
|
|
25
|
+
STELLAR_MCP_URL,
|
|
26
|
+
"--header",
|
|
27
|
+
"Authorization:${STELLAR_MCP_AUTH_HEADER}",
|
|
28
|
+
"--transport",
|
|
29
|
+
"http-only",
|
|
30
|
+
"--silent",
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
await import("mcp-remote/dist/proxy.js");
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ticketnation/stellar-mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Official stdio bridge for the Ticket Nation Stellar OS MCP server.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"private": false,
|
|
7
|
+
"bin": {
|
|
8
|
+
"stellar-mcp": "./bin/stellar-mcp.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"bin",
|
|
12
|
+
"README.md"
|
|
13
|
+
],
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"verify": "node --check bin/stellar-mcp.js",
|
|
19
|
+
"prepublishOnly": "npm run verify"
|
|
20
|
+
},
|
|
21
|
+
"engines": {
|
|
22
|
+
"node": ">=22"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"mcp",
|
|
26
|
+
"model-context-protocol",
|
|
27
|
+
"ticketnation",
|
|
28
|
+
"stellar-os",
|
|
29
|
+
"ticketing"
|
|
30
|
+
],
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "git+https://github.com/oralecarlangelo/stellar-os.git",
|
|
34
|
+
"directory": "packages/stellar-mcp"
|
|
35
|
+
},
|
|
36
|
+
"homepage": "https://app.stellarseatsticket.com",
|
|
37
|
+
"license": "UNLICENSED",
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"mcp-remote": "0.8.1"
|
|
40
|
+
}
|
|
41
|
+
}
|