@vorionsys/mcp-server 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 +161 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +282 -0
- package/dist/index.js.map +1 -0
- package/dist/tools.d.ts +119 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +196 -0
- package/dist/tools.js.map +1 -0
- package/package.json +69 -0
package/README.md
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# @vorionsys/mcp-server
|
|
2
|
+
|
|
3
|
+
MCP (Model Context Protocol) server for Vorion AI governance. Puts trust scoring, proof logging, and tier lookup directly into AI agent workflows.
|
|
4
|
+
|
|
5
|
+
**Stage 2 of the Vorion GTM flywheel:** SDK (done) -> MCP server (this) -> hosted API -> standards.
|
|
6
|
+
|
|
7
|
+
## Quick Start
|
|
8
|
+
|
|
9
|
+
### Usage with Claude Desktop
|
|
10
|
+
|
|
11
|
+
Add to your `claude_desktop_config.json`:
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"mcpServers": {
|
|
16
|
+
"vorion": {
|
|
17
|
+
"command": "npx",
|
|
18
|
+
"args": ["@vorionsys/mcp-server"]
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Usage with Cursor
|
|
25
|
+
|
|
26
|
+
Add to your Cursor MCP settings:
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"mcpServers": {
|
|
31
|
+
"vorion": {
|
|
32
|
+
"command": "npx",
|
|
33
|
+
"args": ["@vorionsys/mcp-server"]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Usage with any MCP-compatible client
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npx @vorionsys/mcp-server
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
The server communicates over stdio using the MCP protocol.
|
|
46
|
+
|
|
47
|
+
## Tools
|
|
48
|
+
|
|
49
|
+
### `vorion_check_trust`
|
|
50
|
+
|
|
51
|
+
Look up an agent's current trust score and tier.
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"agentId": "my-agent-123"
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Returns: `{ score, tier, tierName, observationTier, capabilities }`
|
|
60
|
+
|
|
61
|
+
### `vorion_record_signal`
|
|
62
|
+
|
|
63
|
+
Record a behavioral signal (positive or negative) for an agent.
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"agentId": "my-agent-123",
|
|
68
|
+
"type": "behavioral.success",
|
|
69
|
+
"value": 0.8
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Signal types:
|
|
74
|
+
- `behavioral.success` — Agent completed a task successfully
|
|
75
|
+
- `behavioral.failure` — Agent failed a task
|
|
76
|
+
- `compliance.pass` — Agent passed a compliance check
|
|
77
|
+
- `compliance.fail` — Agent failed a compliance check
|
|
78
|
+
|
|
79
|
+
Returns: `{ oldScore, newScore, scoreDelta, tierChange }`
|
|
80
|
+
|
|
81
|
+
### `vorion_gate_action`
|
|
82
|
+
|
|
83
|
+
Pre-flight check: can this agent perform this action?
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"agentId": "my-agent-123",
|
|
88
|
+
"action": "write:database",
|
|
89
|
+
"requiredTier": 4
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Returns: `{ allowed, agentTier, requiredTier, reason }`
|
|
94
|
+
|
|
95
|
+
### `vorion_log_proof`
|
|
96
|
+
|
|
97
|
+
Log a governance decision to the immutable proof chain.
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"agentId": "my-agent-123",
|
|
102
|
+
"action": "deploy:production",
|
|
103
|
+
"decision": "DENY",
|
|
104
|
+
"reason": "Agent trust score below deployment threshold"
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Returns: `{ proofHash, eventId, chainLength, timestamp }`
|
|
109
|
+
|
|
110
|
+
## Resources
|
|
111
|
+
|
|
112
|
+
### `vorion://tiers`
|
|
113
|
+
|
|
114
|
+
The complete BASIS 8-tier trust model:
|
|
115
|
+
- T0 Sandbox (0-199) through T7 Autonomous (951-1000)
|
|
116
|
+
- Score ranges, capabilities, penalty multipliers
|
|
117
|
+
- Penalty formula: P(T) = 3 + T
|
|
118
|
+
|
|
119
|
+
### `vorion://agents/{agentId}/trust`
|
|
120
|
+
|
|
121
|
+
Current trust profile for a specific agent, including action history.
|
|
122
|
+
|
|
123
|
+
## Architecture
|
|
124
|
+
|
|
125
|
+
The MCP server runs the Vorion SDK in **local mode** — fully self-contained, no external API or database required. Trust scores are maintained in-memory for the duration of the server process.
|
|
126
|
+
|
|
127
|
+
For persistent trust scoring backed by a database, configure the SDK in remote mode by setting:
|
|
128
|
+
- `VORION_API_ENDPOINT` — URL of the Cognigate API
|
|
129
|
+
- `VORION_API_KEY` — API key for authentication
|
|
130
|
+
|
|
131
|
+
## Trust Model
|
|
132
|
+
|
|
133
|
+
The server implements the BASIS (Baseline Authority for Safe & Interoperable Systems) 8-tier trust model:
|
|
134
|
+
|
|
135
|
+
| Tier | Name | Score | Penalty |
|
|
136
|
+
|------|-------------|---------|---------|
|
|
137
|
+
| T0 | Sandbox | 0-199 | 3x |
|
|
138
|
+
| T1 | Observed | 200-349 | 4x |
|
|
139
|
+
| T2 | Provisional | 350-499 | 5x |
|
|
140
|
+
| T3 | Monitored | 500-649 | 6x |
|
|
141
|
+
| T4 | Standard | 650-799 | 7x |
|
|
142
|
+
| T5 | Trusted | 800-875 | 8x |
|
|
143
|
+
| T6 | Certified | 876-950 | 9x |
|
|
144
|
+
| T7 | Autonomous | 951-1000| 10x |
|
|
145
|
+
|
|
146
|
+
## Development
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# Build
|
|
150
|
+
npm run build
|
|
151
|
+
|
|
152
|
+
# Run in dev mode
|
|
153
|
+
npm run dev
|
|
154
|
+
|
|
155
|
+
# Type check
|
|
156
|
+
npm run typecheck
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## License
|
|
160
|
+
|
|
161
|
+
Apache-2.0 — Vorion LLC
|
package/dist/index.d.ts
ADDED
|
@@ -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,282 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
// Copyright 2024-2026 Vorion LLC
|
|
4
|
+
/**
|
|
5
|
+
* @vorionsys/mcp-server — Vorion Governance MCP Server
|
|
6
|
+
*
|
|
7
|
+
* Exposes Vorion trust scoring, proof logging, and tier lookup
|
|
8
|
+
* to AI agents via the Model Context Protocol (MCP).
|
|
9
|
+
*
|
|
10
|
+
* Stage 2 of the Vorion GTM flywheel:
|
|
11
|
+
* SDK (done) -> MCP server (this) -> hosted API -> standards
|
|
12
|
+
*
|
|
13
|
+
* Usage with Claude Desktop:
|
|
14
|
+
* Add to claude_desktop_config.json:
|
|
15
|
+
* {
|
|
16
|
+
* "mcpServers": {
|
|
17
|
+
* "vorion": {
|
|
18
|
+
* "command": "npx",
|
|
19
|
+
* "args": ["@vorionsys/mcp-server"]
|
|
20
|
+
* }
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* @packageDocumentation
|
|
25
|
+
*/
|
|
26
|
+
import * as crypto from 'node:crypto';
|
|
27
|
+
import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
28
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
29
|
+
import { z } from 'zod';
|
|
30
|
+
import { Vorion } from '@vorionsys/sdk';
|
|
31
|
+
import { createProofPlane } from '@vorionsys/proof-plane';
|
|
32
|
+
import { TOOL_DEFINITIONS, TIER_TABLE } from './tools.js';
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
// Globals — single Vorion SDK instance in local mode + proof plane
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
const vorion = new Vorion({ localMode: true });
|
|
37
|
+
const proofPlane = createProofPlane({
|
|
38
|
+
signedBy: 'vorion-mcp-server',
|
|
39
|
+
enableSignatures: false, // Local mode — no key needed
|
|
40
|
+
environment: 'development',
|
|
41
|
+
});
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
// Helper: ensure agent exists (auto-register on first use)
|
|
44
|
+
// ---------------------------------------------------------------------------
|
|
45
|
+
async function ensureAgent(agentId) {
|
|
46
|
+
let agent = vorion.getAgent(agentId);
|
|
47
|
+
if (!agent) {
|
|
48
|
+
agent = await vorion.registerAgent({
|
|
49
|
+
agentId,
|
|
50
|
+
name: agentId,
|
|
51
|
+
capabilities: ['*'], // MCP agents get full capabilities in local mode
|
|
52
|
+
observationTier: 'GRAY_BOX',
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return agent;
|
|
56
|
+
}
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// Tier name helper (matches SDK's internal mapping)
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
function tierNumberToName(tier) {
|
|
61
|
+
const names = [
|
|
62
|
+
'Sandbox', // T0
|
|
63
|
+
'Observed', // T1
|
|
64
|
+
'Provisional', // T2
|
|
65
|
+
'Monitored', // T3
|
|
66
|
+
'Standard', // T4
|
|
67
|
+
'Trusted', // T5
|
|
68
|
+
'Certified', // T6
|
|
69
|
+
'Autonomous', // T7
|
|
70
|
+
];
|
|
71
|
+
return names[tier] ?? 'Unknown';
|
|
72
|
+
}
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
// Create MCP Server
|
|
75
|
+
// ---------------------------------------------------------------------------
|
|
76
|
+
const server = new McpServer({
|
|
77
|
+
name: 'vorion',
|
|
78
|
+
version: '0.1.0',
|
|
79
|
+
});
|
|
80
|
+
// ---------------------------------------------------------------------------
|
|
81
|
+
// Tool: vorion_check_trust
|
|
82
|
+
// ---------------------------------------------------------------------------
|
|
83
|
+
server.tool(TOOL_DEFINITIONS.vorion_check_trust.name, TOOL_DEFINITIONS.vorion_check_trust.description, {
|
|
84
|
+
agentId: z.string().describe('Unique identifier of the agent to look up'),
|
|
85
|
+
}, async ({ agentId }) => {
|
|
86
|
+
const agent = await ensureAgent(agentId);
|
|
87
|
+
const info = await agent.getTrustInfo();
|
|
88
|
+
return {
|
|
89
|
+
content: [
|
|
90
|
+
{
|
|
91
|
+
type: 'text',
|
|
92
|
+
text: JSON.stringify({
|
|
93
|
+
agentId,
|
|
94
|
+
score: info.score,
|
|
95
|
+
tier: info.tierNumber,
|
|
96
|
+
tierName: info.tierName,
|
|
97
|
+
observationTier: info.observationTier,
|
|
98
|
+
capabilities: agent.getCapabilities(),
|
|
99
|
+
}, null, 2),
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
};
|
|
103
|
+
});
|
|
104
|
+
// ---------------------------------------------------------------------------
|
|
105
|
+
// Tool: vorion_record_signal
|
|
106
|
+
// ---------------------------------------------------------------------------
|
|
107
|
+
server.tool(TOOL_DEFINITIONS.vorion_record_signal.name, TOOL_DEFINITIONS.vorion_record_signal.description, {
|
|
108
|
+
agentId: z.string().describe('Unique identifier of the agent'),
|
|
109
|
+
type: z.enum([
|
|
110
|
+
'behavioral.success',
|
|
111
|
+
'behavioral.failure',
|
|
112
|
+
'compliance.pass',
|
|
113
|
+
'compliance.fail',
|
|
114
|
+
]).describe('Type of behavioral signal to record'),
|
|
115
|
+
value: z.number().describe('Signal strength from 0.0 to 1.0'),
|
|
116
|
+
}, async ({ agentId, type, value }) => {
|
|
117
|
+
const agent = await ensureAgent(agentId);
|
|
118
|
+
const beforeInfo = await agent.getTrustInfo();
|
|
119
|
+
const oldScore = beforeInfo.score;
|
|
120
|
+
const oldTier = beforeInfo.tierNumber;
|
|
121
|
+
// Map signal type to SDK methods
|
|
122
|
+
const isPositive = type === 'behavioral.success' || type === 'compliance.pass';
|
|
123
|
+
if (isPositive) {
|
|
124
|
+
await agent.reportSuccess(type);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
await agent.reportFailure(type, `Signal value: ${value}`);
|
|
128
|
+
}
|
|
129
|
+
const afterInfo = await agent.getTrustInfo();
|
|
130
|
+
return {
|
|
131
|
+
content: [
|
|
132
|
+
{
|
|
133
|
+
type: 'text',
|
|
134
|
+
text: JSON.stringify({
|
|
135
|
+
agentId,
|
|
136
|
+
signalType: type,
|
|
137
|
+
signalValue: value,
|
|
138
|
+
oldScore,
|
|
139
|
+
newScore: afterInfo.score,
|
|
140
|
+
scoreDelta: afterInfo.score - oldScore,
|
|
141
|
+
oldTier: oldTier,
|
|
142
|
+
newTier: afterInfo.tierNumber,
|
|
143
|
+
tierChange: afterInfo.tierNumber !== oldTier
|
|
144
|
+
? `${tierNumberToName(oldTier)} -> ${tierNumberToName(afterInfo.tierNumber)}`
|
|
145
|
+
: null,
|
|
146
|
+
}, null, 2),
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
};
|
|
150
|
+
});
|
|
151
|
+
// ---------------------------------------------------------------------------
|
|
152
|
+
// Tool: vorion_gate_action
|
|
153
|
+
// ---------------------------------------------------------------------------
|
|
154
|
+
server.tool(TOOL_DEFINITIONS.vorion_gate_action.name, TOOL_DEFINITIONS.vorion_gate_action.description, {
|
|
155
|
+
agentId: z.string().describe('Unique identifier of the agent requesting the action'),
|
|
156
|
+
action: z.string().describe('The action the agent wants to perform'),
|
|
157
|
+
requiredTier: z.number().describe('Minimum trust tier (0-7) required for this action'),
|
|
158
|
+
}, async ({ agentId, action, requiredTier }) => {
|
|
159
|
+
const agent = await ensureAgent(agentId);
|
|
160
|
+
const info = await agent.getTrustInfo();
|
|
161
|
+
const agentTier = info.tierNumber;
|
|
162
|
+
const allowed = agentTier >= requiredTier;
|
|
163
|
+
const reason = allowed
|
|
164
|
+
? `Agent is T${agentTier} (${info.tierName}), meets T${requiredTier} (${tierNumberToName(requiredTier)}) requirement`
|
|
165
|
+
: `Agent is T${agentTier} (${info.tierName}), below T${requiredTier} (${tierNumberToName(requiredTier)}) requirement`;
|
|
166
|
+
return {
|
|
167
|
+
content: [
|
|
168
|
+
{
|
|
169
|
+
type: 'text',
|
|
170
|
+
text: JSON.stringify({
|
|
171
|
+
allowed,
|
|
172
|
+
agentId,
|
|
173
|
+
action,
|
|
174
|
+
agentTier,
|
|
175
|
+
agentTierName: info.tierName,
|
|
176
|
+
requiredTier,
|
|
177
|
+
requiredTierName: tierNumberToName(requiredTier),
|
|
178
|
+
reason,
|
|
179
|
+
score: info.score,
|
|
180
|
+
}, null, 2),
|
|
181
|
+
},
|
|
182
|
+
],
|
|
183
|
+
};
|
|
184
|
+
});
|
|
185
|
+
// ---------------------------------------------------------------------------
|
|
186
|
+
// Tool: vorion_log_proof
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
server.tool(TOOL_DEFINITIONS.vorion_log_proof.name, TOOL_DEFINITIONS.vorion_log_proof.description, {
|
|
189
|
+
agentId: z.string().describe('Unique identifier of the agent involved in the decision'),
|
|
190
|
+
action: z.string().describe('The action that was evaluated'),
|
|
191
|
+
decision: z.enum(['ALLOW', 'DENY']).describe('Whether the action was allowed or denied'),
|
|
192
|
+
reason: z.string().describe('Human-readable explanation for the decision'),
|
|
193
|
+
}, async ({ agentId, action, decision, reason }) => {
|
|
194
|
+
const correlationId = crypto.randomUUID();
|
|
195
|
+
const decisionId = crypto.randomUUID();
|
|
196
|
+
const agent = await ensureAgent(agentId);
|
|
197
|
+
const info = await agent.getTrustInfo();
|
|
198
|
+
const result = await proofPlane.logEvent('decision_made', correlationId, {
|
|
199
|
+
type: 'decision_made',
|
|
200
|
+
decisionId,
|
|
201
|
+
intentId: correlationId,
|
|
202
|
+
permitted: decision === 'ALLOW',
|
|
203
|
+
trustBand: info.tierName,
|
|
204
|
+
trustScore: info.score,
|
|
205
|
+
reasoning: [reason],
|
|
206
|
+
}, agentId);
|
|
207
|
+
const stats = await proofPlane.getStats();
|
|
208
|
+
const event = result.event;
|
|
209
|
+
return {
|
|
210
|
+
content: [
|
|
211
|
+
{
|
|
212
|
+
type: 'text',
|
|
213
|
+
text: JSON.stringify({
|
|
214
|
+
agentId,
|
|
215
|
+
action,
|
|
216
|
+
decision,
|
|
217
|
+
reason,
|
|
218
|
+
proofHash: event.hash ?? event.eventId,
|
|
219
|
+
eventId: event.eventId,
|
|
220
|
+
chainLength: stats.totalEvents,
|
|
221
|
+
timestamp: event.timestamp ?? new Date().toISOString(),
|
|
222
|
+
}, null, 2),
|
|
223
|
+
},
|
|
224
|
+
],
|
|
225
|
+
};
|
|
226
|
+
});
|
|
227
|
+
// ---------------------------------------------------------------------------
|
|
228
|
+
// Resource: vorion_explain_tiers — the 8-tier trust model
|
|
229
|
+
// ---------------------------------------------------------------------------
|
|
230
|
+
server.resource('trust-tiers', 'vorion://tiers', {
|
|
231
|
+
description: 'The BASIS 8-tier trust model (T0 Sandbox through T7 Autonomous). ' +
|
|
232
|
+
'Shows score ranges, capabilities, penalty multipliers, and the penalty formula P(T) = 3 + T.',
|
|
233
|
+
mimeType: 'application/json',
|
|
234
|
+
}, async () => ({
|
|
235
|
+
contents: [
|
|
236
|
+
{
|
|
237
|
+
uri: 'vorion://tiers',
|
|
238
|
+
mimeType: 'application/json',
|
|
239
|
+
text: JSON.stringify(TIER_TABLE, null, 2),
|
|
240
|
+
},
|
|
241
|
+
],
|
|
242
|
+
}));
|
|
243
|
+
// ---------------------------------------------------------------------------
|
|
244
|
+
// Resource: agent trust profile (parameterized)
|
|
245
|
+
// ---------------------------------------------------------------------------
|
|
246
|
+
server.resource('agent-trust', new ResourceTemplate('vorion://agents/{agentId}/trust', { list: undefined }), {
|
|
247
|
+
description: 'Current trust information for a specific agent',
|
|
248
|
+
mimeType: 'application/json',
|
|
249
|
+
}, async (uri, { agentId }) => {
|
|
250
|
+
const id = Array.isArray(agentId) ? agentId[0] : agentId;
|
|
251
|
+
const agent = await ensureAgent(id);
|
|
252
|
+
const info = await agent.getTrustInfo();
|
|
253
|
+
return {
|
|
254
|
+
contents: [
|
|
255
|
+
{
|
|
256
|
+
uri: uri.href,
|
|
257
|
+
mimeType: 'application/json',
|
|
258
|
+
text: JSON.stringify({
|
|
259
|
+
agentId: id,
|
|
260
|
+
score: info.score,
|
|
261
|
+
tier: info.tierNumber,
|
|
262
|
+
tierName: info.tierName,
|
|
263
|
+
observationTier: info.observationTier,
|
|
264
|
+
capabilities: agent.getCapabilities(),
|
|
265
|
+
actionHistory: agent.getActionHistory(),
|
|
266
|
+
}, null, 2),
|
|
267
|
+
},
|
|
268
|
+
],
|
|
269
|
+
};
|
|
270
|
+
});
|
|
271
|
+
// ---------------------------------------------------------------------------
|
|
272
|
+
// Start the server
|
|
273
|
+
// ---------------------------------------------------------------------------
|
|
274
|
+
async function main() {
|
|
275
|
+
const transport = new StdioServerTransport();
|
|
276
|
+
await server.connect(transport);
|
|
277
|
+
}
|
|
278
|
+
main().catch((error) => {
|
|
279
|
+
console.error('Fatal error starting Vorion MCP server:', error);
|
|
280
|
+
process.exit(1);
|
|
281
|
+
});
|
|
282
|
+
//# 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/dist/tools.d.ts
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool Definitions for Vorion Governance
|
|
3
|
+
*
|
|
4
|
+
* JSON Schema definitions for each tool exposed by the MCP server.
|
|
5
|
+
* These schemas are used by AI agents (Claude, GPT, Cursor, etc.)
|
|
6
|
+
* to understand what parameters each tool accepts.
|
|
7
|
+
*/
|
|
8
|
+
export declare const TOOL_DEFINITIONS: {
|
|
9
|
+
readonly vorion_check_trust: {
|
|
10
|
+
readonly name: "vorion_check_trust";
|
|
11
|
+
readonly description: string;
|
|
12
|
+
readonly inputSchema: {
|
|
13
|
+
readonly type: "object";
|
|
14
|
+
readonly properties: {
|
|
15
|
+
readonly agentId: {
|
|
16
|
+
readonly type: "string";
|
|
17
|
+
readonly description: "Unique identifier of the agent to look up";
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
readonly required: readonly ["agentId"];
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
readonly vorion_record_signal: {
|
|
24
|
+
readonly name: "vorion_record_signal";
|
|
25
|
+
readonly description: string;
|
|
26
|
+
readonly inputSchema: {
|
|
27
|
+
readonly type: "object";
|
|
28
|
+
readonly properties: {
|
|
29
|
+
readonly agentId: {
|
|
30
|
+
readonly type: "string";
|
|
31
|
+
readonly description: "Unique identifier of the agent";
|
|
32
|
+
};
|
|
33
|
+
readonly type: {
|
|
34
|
+
readonly type: "string";
|
|
35
|
+
readonly enum: readonly ["behavioral.success", "behavioral.failure", "compliance.pass", "compliance.fail"];
|
|
36
|
+
readonly description: "Type of behavioral signal to record";
|
|
37
|
+
};
|
|
38
|
+
readonly value: {
|
|
39
|
+
readonly type: "number";
|
|
40
|
+
readonly minimum: 0;
|
|
41
|
+
readonly maximum: 1;
|
|
42
|
+
readonly description: string;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
readonly required: readonly ["agentId", "type", "value"];
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
readonly vorion_gate_action: {
|
|
49
|
+
readonly name: "vorion_gate_action";
|
|
50
|
+
readonly description: string;
|
|
51
|
+
readonly inputSchema: {
|
|
52
|
+
readonly type: "object";
|
|
53
|
+
readonly properties: {
|
|
54
|
+
readonly agentId: {
|
|
55
|
+
readonly type: "string";
|
|
56
|
+
readonly description: "Unique identifier of the agent requesting the action";
|
|
57
|
+
};
|
|
58
|
+
readonly action: {
|
|
59
|
+
readonly type: "string";
|
|
60
|
+
readonly description: "The action the agent wants to perform (e.g., \"read:documents\", \"write:database\", \"execute:deploy\")";
|
|
61
|
+
};
|
|
62
|
+
readonly requiredTier: {
|
|
63
|
+
readonly type: "number";
|
|
64
|
+
readonly minimum: 0;
|
|
65
|
+
readonly maximum: 7;
|
|
66
|
+
readonly description: string;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
readonly required: readonly ["agentId", "action", "requiredTier"];
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
readonly vorion_log_proof: {
|
|
73
|
+
readonly name: "vorion_log_proof";
|
|
74
|
+
readonly description: string;
|
|
75
|
+
readonly inputSchema: {
|
|
76
|
+
readonly type: "object";
|
|
77
|
+
readonly properties: {
|
|
78
|
+
readonly agentId: {
|
|
79
|
+
readonly type: "string";
|
|
80
|
+
readonly description: "Unique identifier of the agent involved in the decision";
|
|
81
|
+
};
|
|
82
|
+
readonly action: {
|
|
83
|
+
readonly type: "string";
|
|
84
|
+
readonly description: "The action that was evaluated (e.g., \"read:sensitive-data\")";
|
|
85
|
+
};
|
|
86
|
+
readonly decision: {
|
|
87
|
+
readonly type: "string";
|
|
88
|
+
readonly enum: readonly ["ALLOW", "DENY"];
|
|
89
|
+
readonly description: "Whether the action was allowed or denied";
|
|
90
|
+
};
|
|
91
|
+
readonly reason: {
|
|
92
|
+
readonly type: "string";
|
|
93
|
+
readonly description: "Human-readable explanation for the decision";
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
readonly required: readonly ["agentId", "action", "decision", "reason"];
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Tier table for the vorion_explain_tiers resource
|
|
102
|
+
*/
|
|
103
|
+
export declare const TIER_TABLE: {
|
|
104
|
+
tiers: {
|
|
105
|
+
tier: number;
|
|
106
|
+
name: string;
|
|
107
|
+
scoreRange: string;
|
|
108
|
+
description: string;
|
|
109
|
+
capabilities: string[];
|
|
110
|
+
penaltyMultiplier: string;
|
|
111
|
+
}[];
|
|
112
|
+
specification: string;
|
|
113
|
+
penaltyFormula: string;
|
|
114
|
+
initialScore: number;
|
|
115
|
+
scoreRange: string;
|
|
116
|
+
hysteresis: number[];
|
|
117
|
+
decayHalfLife: string;
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsHnB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;CAyEtB,CAAC"}
|
package/dist/tools.js
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright 2024-2026 Vorion LLC
|
|
3
|
+
/**
|
|
4
|
+
* MCP Tool Definitions for Vorion Governance
|
|
5
|
+
*
|
|
6
|
+
* JSON Schema definitions for each tool exposed by the MCP server.
|
|
7
|
+
* These schemas are used by AI agents (Claude, GPT, Cursor, etc.)
|
|
8
|
+
* to understand what parameters each tool accepts.
|
|
9
|
+
*/
|
|
10
|
+
export const TOOL_DEFINITIONS = {
|
|
11
|
+
vorion_check_trust: {
|
|
12
|
+
name: 'vorion_check_trust',
|
|
13
|
+
description: 'Look up an AI agent\'s current trust score and tier in the Vorion governance system. ' +
|
|
14
|
+
'Returns the numeric score (0-1000), tier number (T0-T7), tier name, and observation tier. ' +
|
|
15
|
+
'Use this to check how trusted an agent is before allowing it to perform sensitive actions.',
|
|
16
|
+
inputSchema: {
|
|
17
|
+
type: 'object',
|
|
18
|
+
properties: {
|
|
19
|
+
agentId: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
description: 'Unique identifier of the agent to look up',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
required: ['agentId'],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
vorion_record_signal: {
|
|
28
|
+
name: 'vorion_record_signal',
|
|
29
|
+
description: 'Record a behavioral signal (positive or negative) for an AI agent. ' +
|
|
30
|
+
'Positive signals (success, compliance pass) increase trust over time. ' +
|
|
31
|
+
'Negative signals (failure, compliance fail) decrease trust — and higher-tier agents ' +
|
|
32
|
+
'are penalized MORE severely per the BASIS penalty ratio P(T) = 3 + T.',
|
|
33
|
+
inputSchema: {
|
|
34
|
+
type: 'object',
|
|
35
|
+
properties: {
|
|
36
|
+
agentId: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Unique identifier of the agent',
|
|
39
|
+
},
|
|
40
|
+
type: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
enum: [
|
|
43
|
+
'behavioral.success',
|
|
44
|
+
'behavioral.failure',
|
|
45
|
+
'compliance.pass',
|
|
46
|
+
'compliance.fail',
|
|
47
|
+
],
|
|
48
|
+
description: 'Type of behavioral signal to record',
|
|
49
|
+
},
|
|
50
|
+
value: {
|
|
51
|
+
type: 'number',
|
|
52
|
+
minimum: 0,
|
|
53
|
+
maximum: 1,
|
|
54
|
+
description: 'Signal strength from 0.0 (weakest) to 1.0 (strongest). ' +
|
|
55
|
+
'For success/pass signals, higher means better performance. ' +
|
|
56
|
+
'For failure/fail signals, higher means worse violation.',
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
required: ['agentId', 'type', 'value'],
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
vorion_gate_action: {
|
|
63
|
+
name: 'vorion_gate_action',
|
|
64
|
+
description: 'Check if an AI agent is allowed to perform a specific action based on its current trust tier. ' +
|
|
65
|
+
'Returns whether the action is allowed, the agent\'s current tier, the required tier, and a reason. ' +
|
|
66
|
+
'Use this as a pre-flight check before executing sensitive operations.',
|
|
67
|
+
inputSchema: {
|
|
68
|
+
type: 'object',
|
|
69
|
+
properties: {
|
|
70
|
+
agentId: {
|
|
71
|
+
type: 'string',
|
|
72
|
+
description: 'Unique identifier of the agent requesting the action',
|
|
73
|
+
},
|
|
74
|
+
action: {
|
|
75
|
+
type: 'string',
|
|
76
|
+
description: 'The action the agent wants to perform (e.g., "read:documents", "write:database", "execute:deploy")',
|
|
77
|
+
},
|
|
78
|
+
requiredTier: {
|
|
79
|
+
type: 'number',
|
|
80
|
+
minimum: 0,
|
|
81
|
+
maximum: 7,
|
|
82
|
+
description: 'Minimum trust tier (0-7) required to perform this action. ' +
|
|
83
|
+
'T0=Sandbox, T1=Observed, T2=Provisional, T3=Monitored, T4=Standard, T5=Trusted, T6=Certified, T7=Autonomous',
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
required: ['agentId', 'action', 'requiredTier'],
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
vorion_log_proof: {
|
|
90
|
+
name: 'vorion_log_proof',
|
|
91
|
+
description: 'Log a governance decision to the Vorion proof chain — an immutable, hash-linked audit trail. ' +
|
|
92
|
+
'Every ALLOW or DENY decision is recorded with the agent ID, action, and reasoning. ' +
|
|
93
|
+
'Returns a proof hash and the current chain length for verification.',
|
|
94
|
+
inputSchema: {
|
|
95
|
+
type: 'object',
|
|
96
|
+
properties: {
|
|
97
|
+
agentId: {
|
|
98
|
+
type: 'string',
|
|
99
|
+
description: 'Unique identifier of the agent involved in the decision',
|
|
100
|
+
},
|
|
101
|
+
action: {
|
|
102
|
+
type: 'string',
|
|
103
|
+
description: 'The action that was evaluated (e.g., "read:sensitive-data")',
|
|
104
|
+
},
|
|
105
|
+
decision: {
|
|
106
|
+
type: 'string',
|
|
107
|
+
enum: ['ALLOW', 'DENY'],
|
|
108
|
+
description: 'Whether the action was allowed or denied',
|
|
109
|
+
},
|
|
110
|
+
reason: {
|
|
111
|
+
type: 'string',
|
|
112
|
+
description: 'Human-readable explanation for the decision',
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
required: ['agentId', 'action', 'decision', 'reason'],
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Tier table for the vorion_explain_tiers resource
|
|
121
|
+
*/
|
|
122
|
+
export const TIER_TABLE = {
|
|
123
|
+
tiers: [
|
|
124
|
+
{
|
|
125
|
+
tier: 0,
|
|
126
|
+
name: 'Sandbox',
|
|
127
|
+
scoreRange: '0-199',
|
|
128
|
+
description: 'New/untrusted agent. All actions sandboxed with full audit logging.',
|
|
129
|
+
capabilities: ['rate_limit:10/min', 'audit:full', 'sandbox:true'],
|
|
130
|
+
penaltyMultiplier: '3x',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
tier: 1,
|
|
134
|
+
name: 'Observed',
|
|
135
|
+
scoreRange: '200-349',
|
|
136
|
+
description: 'Agent under active observation. Limited autonomy with strict monitoring.',
|
|
137
|
+
capabilities: ['rate_limit:10/min', 'audit:full', 'sandbox:true'],
|
|
138
|
+
penaltyMultiplier: '4x',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
tier: 2,
|
|
142
|
+
name: 'Provisional',
|
|
143
|
+
scoreRange: '350-499',
|
|
144
|
+
description: 'Probationary agent. Moderate access with standard monitoring.',
|
|
145
|
+
capabilities: ['rate_limit:100/min', 'audit:standard'],
|
|
146
|
+
penaltyMultiplier: '5x',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
tier: 3,
|
|
150
|
+
name: 'Monitored',
|
|
151
|
+
scoreRange: '500-649',
|
|
152
|
+
description: 'Established agent with consistent behavior. BLACK_BOX ceiling (600).',
|
|
153
|
+
capabilities: ['rate_limit:100/min', 'audit:standard'],
|
|
154
|
+
penaltyMultiplier: '6x',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
tier: 4,
|
|
158
|
+
name: 'Standard',
|
|
159
|
+
scoreRange: '650-799',
|
|
160
|
+
description: 'Reliable agent. Broad access with light monitoring.',
|
|
161
|
+
capabilities: ['rate_limit:1000/min', 'audit:light'],
|
|
162
|
+
penaltyMultiplier: '7x',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
tier: 5,
|
|
166
|
+
name: 'Trusted',
|
|
167
|
+
scoreRange: '800-875',
|
|
168
|
+
description: 'Highly trusted agent. Minimal constraints.',
|
|
169
|
+
capabilities: ['rate_limit:1000/min', 'audit:light'],
|
|
170
|
+
penaltyMultiplier: '8x',
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
tier: 6,
|
|
174
|
+
name: 'Certified',
|
|
175
|
+
scoreRange: '876-950',
|
|
176
|
+
description: 'Certified agent with formal verification. Near-autonomous operation.',
|
|
177
|
+
capabilities: ['minimal_constraints'],
|
|
178
|
+
penaltyMultiplier: '9x',
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
tier: 7,
|
|
182
|
+
name: 'Autonomous',
|
|
183
|
+
scoreRange: '951-1000',
|
|
184
|
+
description: 'Fully autonomous agent. Self-governing with post-hoc audit only.',
|
|
185
|
+
capabilities: ['minimal_constraints'],
|
|
186
|
+
penaltyMultiplier: '10x',
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
specification: 'BASIS (Baseline Authority for Safe & Interoperable Systems)',
|
|
190
|
+
penaltyFormula: 'P(T) = 3 + T — higher-tier agents are punished more severely for failures',
|
|
191
|
+
initialScore: 100,
|
|
192
|
+
scoreRange: '0-1000',
|
|
193
|
+
hysteresis: [25, 25, 20, 20, 15, 10, 10, 10],
|
|
194
|
+
decayHalfLife: '182 days',
|
|
195
|
+
};
|
|
196
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vorionsys/mcp-server",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "MCP server for Vorion AI governance — trust scoring, proof logging, and tier lookup",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"type": "module",
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"bin": {
|
|
12
|
+
"vorion-mcp": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"import": "./dist/index.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist",
|
|
22
|
+
"README.md",
|
|
23
|
+
"LICENSE"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc",
|
|
27
|
+
"dev": "tsx src/index.ts",
|
|
28
|
+
"test": "vitest run",
|
|
29
|
+
"typecheck": "tsc --noEmit",
|
|
30
|
+
"clean": "rm -rf dist"
|
|
31
|
+
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"@modelcontextprotocol/sdk": "^1.28.0",
|
|
34
|
+
"@vorionsys/sdk": "*",
|
|
35
|
+
"@vorionsys/proof-plane": "*",
|
|
36
|
+
"zod": "^3.23.0"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/node": "^22.10.5",
|
|
40
|
+
"typescript": "^5.7.2",
|
|
41
|
+
"tsx": "^4.0.0",
|
|
42
|
+
"vitest": "^4.0.18"
|
|
43
|
+
},
|
|
44
|
+
"keywords": [
|
|
45
|
+
"mcp",
|
|
46
|
+
"model-context-protocol",
|
|
47
|
+
"vorion",
|
|
48
|
+
"basis",
|
|
49
|
+
"ai",
|
|
50
|
+
"agent",
|
|
51
|
+
"governance",
|
|
52
|
+
"trust",
|
|
53
|
+
"safety"
|
|
54
|
+
],
|
|
55
|
+
"author": "Vorion <team@vorion.org>",
|
|
56
|
+
"license": "Apache-2.0",
|
|
57
|
+
"repository": {
|
|
58
|
+
"type": "git",
|
|
59
|
+
"url": "git+https://github.com/vorionsys/vorion.git",
|
|
60
|
+
"directory": "packages/mcp-server"
|
|
61
|
+
},
|
|
62
|
+
"bugs": {
|
|
63
|
+
"url": "https://github.com/vorionsys/vorion/issues"
|
|
64
|
+
},
|
|
65
|
+
"homepage": "https://vorion.org",
|
|
66
|
+
"engines": {
|
|
67
|
+
"node": ">=20.0.0"
|
|
68
|
+
}
|
|
69
|
+
}
|