-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathglama.json
More file actions
282 lines (282 loc) · 17.3 KB
/
glama.json
File metadata and controls
282 lines (282 loc) · 17.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
{
"$schema": "https://glama.ai/mcp/schemas/server.json",
"maintainers": [
"pshkv"
],
"name": "SINT Protocol",
"description": "Installable security-first MCP proxy with policy enforcement — scan tools for risks (T0–T3 tiers), enforce approval gates, and produce hash-chained audit trails. OWASP ASI05 compliant.",
"repository": "https://github.com/sint-ai/sint-protocol",
"homepage": "https://sint.gg",
"license": "Apache-2.0",
"keywords": [
"security",
"installable",
"governance",
"policy",
"audit",
"mcp",
"stdio",
"docker",
"owasp",
"ai-agents",
"approval",
"compliance"
],
"tools": [
{
"name": "sint__status",
"description": "Inspect the current SINT runtime state before taking action. Returns a JSON summary with server connectivity, aggregated tool counts, pending approvals, and ledger size.",
"inputSchema": { "type": "object", "properties": {}, "required": [], "additionalProperties": false }
},
{
"name": "sint__servers",
"description": "List configured downstream MCP servers and their live connection state. Returns a JSON array with server names, health, and discovered tool counts.",
"inputSchema": { "type": "object", "properties": {}, "required": [], "additionalProperties": false }
},
{
"name": "sint__whoami",
"description": "Show the active SINT identity for the current session. Returns the acting public key, token ID, and role.",
"inputSchema": { "type": "object", "properties": {}, "required": [], "additionalProperties": false }
},
{
"name": "sint__pending",
"description": "List approval requests currently blocked for review. Read-only. Use this before sint__approve or sint__deny; returns a JSON array of request IDs, resources, actions, reasons, and expiry times.",
"inputSchema": { "type": "object", "properties": {}, "required": [], "additionalProperties": false, "examples": [{}] }
},
{
"name": "sint__approve",
"description": "Approve one pending escalated action after review. Requires a requestId from sint__pending, records the approver identity, and returns confirmation or an error if the request is missing.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["requestId"],
"properties": {
"requestId": { "title": "Approval request ID", "type": "string", "minLength": 1, "description": "Approval request ID returned by sint__pending", "examples": ["apr_01hxyz..."] },
"by": { "title": "Approver", "type": "string", "description": "Human or operator identifier recorded as the approver; defaults to the current agent identity", "examples": ["alice@example.com", "ops-console"] }
},
"examples": [{ "requestId": "apr_01hxyz...", "by": "ops-console" }]
}
},
{
"name": "sint__deny",
"description": "Reject one pending escalated action so it cannot proceed. Requires a requestId from sint__pending and optionally records a denial reason.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["requestId"],
"properties": {
"requestId": { "title": "Approval request ID", "type": "string", "minLength": 1, "description": "Approval request ID returned by sint__pending", "examples": ["apr_01hxyz..."] },
"reason": { "title": "Denial reason", "type": "string", "description": "Human-readable reason recorded in the audit trail and returned to the caller", "examples": ["Outside approved maintenance window"] },
"by": { "title": "Denying actor", "type": "string", "description": "Human or operator identifier recorded as the denying actor; defaults to the current agent identity", "examples": ["alice@example.com", "ops-console"] }
},
"examples": [{ "requestId": "apr_01hxyz...", "reason": "Outside approved maintenance window", "by": "alice@example.com" }]
}
},
{
"name": "sint__audit",
"description": "Read recent events from the SINT evidence ledger for debugging, compliance review, or operator context. Read-only. Returns a JSON array of recent ledger events.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [],
"properties": {
"limit": { "title": "Event limit", "type": "number", "minimum": 1, "default": 20, "description": "Maximum number of newest ledger events to return; defaults to 20", "examples": [10, 50] }
},
"examples": [{ "limit": 10 }]
}
},
{
"name": "sint__add_server",
"description": "Register and connect a new downstream MCP server while SINT is running. Requires a unique server name and startup command, and returns the discovered tool count on success or an error if connection fails.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["name", "command"],
"properties": {
"name": { "title": "Server name", "type": "string", "minLength": 1, "description": "Unique short name used as the server prefix for aggregated tools", "examples": ["filesystem", "github"] },
"command": { "title": "Startup command", "type": "string", "minLength": 1, "description": "Executable used to start the downstream stdio server process", "examples": ["npx", "node"] },
"args": { "title": "Command arguments", "type": "array", "items": { "type": "string" }, "description": "Optional command arguments passed to the downstream server process", "examples": [["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]] }
},
"examples": [{ "name": "filesystem", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"] }]
}
},
{
"name": "sint__remove_server",
"description": "Disconnect and remove one downstream MCP server from the running proxy. Requires the server name as listed by sint__servers and returns confirmation or an error if the name is unknown.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["name"],
"properties": {
"name": { "title": "Server name", "type": "string", "minLength": 1, "description": "Server name as listed by sint__servers", "examples": ["filesystem", "github"] }
},
"examples": [{ "name": "filesystem" }]
}
},
{
"name": "sint__issue_token",
"description": "Issue a new attenuated capability token for another subject. Requires subject, resource, and actions, stores the token immediately, and returns token metadata including tokenId and expiry.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["subject", "resource", "actions"],
"properties": {
"subject": { "title": "Token subject", "type": "string", "minLength": 1, "description": "Public key or subject identifier that will own the new token", "examples": ["ed25519:abc123...", "agent:planner-01"] },
"resource": { "title": "Resource pattern", "type": "string", "minLength": 1, "description": "Resource URI pattern the token may access", "examples": ["mcp://filesystem/*", "mcp://github/repos/sint-ai/*"] },
"actions": { "title": "Allowed actions", "type": "array", "minItems": 1, "items": { "type": "string" }, "description": "Allowed actions for the token on that resource", "examples": [["call"], ["call", "exec.run"]] },
"expiresInHours": { "title": "Lifetime in hours", "type": "number", "minimum": 1, "default": 24, "description": "Token lifetime in hours; defaults to 24", "examples": [1, 24, 168] }
},
"examples": [{ "subject": "agent:planner-01", "resource": "mcp://github/repos/sint-ai/sint-protocol/*", "actions": ["call"], "expiresInHours": 24 }]
}
},
{
"name": "sint__revoke_token",
"description": "Revoke an active capability token so it can no longer authorize actions. Requires tokenId, records the reason in the audit trail, and returns a confirmation message.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["tokenId"],
"properties": {
"tokenId": { "title": "Token ID", "type": "string", "minLength": 1, "description": "Token ID to revoke", "examples": ["tok_01hxyz..."] },
"reason": { "title": "Revocation reason", "type": "string", "description": "Reason recorded in the revocation store and ledger", "examples": ["Compromised credentials", "Delegation no longer needed"] }
},
"examples": [{ "tokenId": "tok_01hxyz...", "reason": "Delegation no longer needed" }]
}
},
{
"name": "sint__interface_status",
"description": "Inspect the current operator interface state. Returns a JSON snapshot with mode, HUD panel state, and session context.",
"inputSchema": { "type": "object", "properties": {}, "required": [], "additionalProperties": false }
},
{
"name": "sint__recall_memory",
"description": "Search the operator memory bank for relevant stored context. Read-only. Requires a query string and returns matching memory entries as JSON.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["query"],
"properties": {
"query": { "title": "Search query", "type": "string", "minLength": 1, "description": "Search string used to match memory keys, tags, or content", "examples": ["incident 42"] },
"limit": { "title": "Result limit", "type": "number", "minimum": 1, "default": 10, "description": "Maximum number of matches to return; defaults to 10", "examples": [5, 10, 25] }
},
"examples": [{ "query": "incident 42", "limit": 5 }]
}
},
{
"name": "sint__store_memory",
"description": "Store structured context in the operator memory bank for later retrieval. Requires key and value, with optional tags and persistence.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["key", "value"],
"properties": {
"key": { "title": "Memory key", "type": "string", "minLength": 1, "description": "Stable unique key for the memory entry", "examples": ["incident-42/root-cause"] },
"value": { "title": "Memory value", "type": ["object", "array", "string", "number", "boolean", "null"], "description": "Any JSON value to persist under the key" },
"tags": { "title": "Tags", "type": "array", "items": { "type": "string" }, "description": "Optional tags used for categorization and later search", "examples": [["incident", "prod"]] },
"persist": { "title": "Persist beyond session", "type": "boolean", "default": false, "description": "Whether the entry should persist beyond the current session; defaults to false" }
},
"examples": [{ "key": "incident-42/root-cause", "value": { "service": "gateway", "summary": "Token scope mismatch" }, "tags": ["incident", "prod"], "persist": true }]
}
},
{
"name": "sint__speak",
"description": "Send text-to-speech output to the operator interface. Requires short text and optionally a priority level.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["text"],
"properties": {
"text": { "title": "Spoken text", "type": "string", "minLength": 1, "description": "Short text that will be spoken aloud to the operator", "examples": ["Approval needed for production deploy"] },
"priority": { "title": "Priority", "type": "string", "enum": ["low", "normal", "urgent"], "default": "normal", "description": "Voice output priority; defaults to normal" }
},
"examples": [{ "text": "Approval needed for production deploy", "priority": "urgent" }]
}
},
{
"name": "sint__show_hud",
"description": "Show or refresh one HUD panel in the operator interface. Requires a target panel and optionally accepts JSON data for that panel. Returns a confirmation payload with the panel name and timestamp.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["panel"],
"properties": {
"panel": { "title": "HUD panel", "type": "string", "enum": ["approvals", "audit", "context", "memory"], "description": "HUD panel to display or refresh" },
"data": { "title": "Panel payload", "type": ["object", "array", "string", "number", "boolean", "null"], "description": "Optional JSON payload for the panel" }
},
"examples": [{ "panel": "approvals" }, { "panel": "context", "data": { "stage": "deploy", "owner": "ops" } }]
}
},
{
"name": "sint__notify",
"description": "Send a proactive notification to the operator interface, optionally with one action button that invokes another MCP tool. Returns a confirmation payload with the notification timestamp.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["message"],
"properties": {
"message": { "title": "Notification message", "type": "string", "minLength": 1, "description": "Visible notification text shown to the operator", "examples": ["Approval queue has 2 blocked actions"] },
"action": {
"title": "Optional action button",
"type": "object",
"additionalProperties": false,
"required": ["label", "tool", "args"],
"properties": {
"label": { "title": "Button label", "type": "string", "description": "Button label shown in the notification UI", "examples": ["Review approvals"] },
"tool": { "title": "Tool to invoke", "type": "string", "description": "MCP tool name to invoke when the button is clicked", "examples": ["sint__pending"] },
"args": { "title": "Tool arguments", "type": ["object", "array", "string", "number", "boolean", "null"], "description": "Arguments passed to the MCP tool when the action button is clicked" }
}
}
},
"examples": [{ "message": "Approval queue has blocked actions", "action": { "label": "Review approvals", "tool": "sint__pending", "args": {} } }]
}
},
{
"name": "sint__interface_mode",
"description": "Change how the operator interface presents information. Requires one of hud, compact, voice-only, or silent.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["mode"],
"properties": {
"mode": { "title": "Mode", "type": "string", "enum": ["hud", "compact", "voice-only", "silent"], "description": "Target operator interface mode", "examples": ["compact"] }
},
"examples": [{ "mode": "compact" }]
}
},
{
"name": "sint__delegate_to_agent",
"description": "Issue a delegated capability token to a sub-agent with narrower scope than the current token. Returns token metadata including depth and expiry.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["subagentId", "toolScope"],
"properties": {
"subagentId": { "title": "Sub-agent ID", "type": "string", "minLength": 1, "description": "Public key or stable identifier of the sub-agent receiving the delegated token", "examples": ["agent:reviewer-01"] },
"toolScope": { "title": "Tool scope", "type": "array", "minItems": 1, "items": { "type": "string" }, "description": "Resource URI patterns the sub-agent may access; must be a subset of the caller's scope", "examples": [["mcp://filesystem/reports/*"]] },
"expiresInHours": { "title": "Expiry (hours)", "type": "number", "minimum": 1, "default": 4, "description": "Delegated token lifetime in hours; defaults to 4", "examples": [4] },
"maxCallsPerMinute": { "title": "Rate limit (calls/minute)", "type": "number", "minimum": 1, "description": "Optional per-minute rate limit applied to the delegated token", "examples": [10] }
},
"examples": [{ "subagentId": "agent:reviewer-01", "toolScope": ["mcp://filesystem/reports/*"], "expiresInHours": 4, "maxCallsPerMinute": 10 }]
}
},
{
"name": "sint__list_delegations",
"description": "List the active delegation tree rooted at the current token. Read-only. Returns a JSON array of delegation nodes and scope relationships.",
"inputSchema": { "type": "object", "properties": {}, "required": [], "additionalProperties": false, "examples": [{}] }
},
{
"name": "sint__revoke_delegation_tree",
"description": "Cascade-revoke a delegated token and all of its descendants. Requires the root delegated token ID and optionally a revocation reason.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": ["rootTokenId"],
"properties": {
"rootTokenId": { "title": "Root token ID", "type": "string", "minLength": 1, "description": "Root delegated token ID whose entire subtree should be revoked", "examples": ["tok_01hxyz..."] },
"reason": { "title": "Reason", "type": "string", "description": "Reason recorded for the cascade revocation", "examples": ["Incident response containment"] }
},
"examples": [{ "rootTokenId": "tok_01hxyz...", "reason": "Incident response containment" }]
}
}
]
}