@dobbyai/mcp-external 1.0.4 → 1.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/dist/__tests__/agent-mail-tools.test.d.ts +8 -0
- package/dist/__tests__/agent-mail-tools.test.d.ts.map +1 -0
- package/dist/__tests__/agent-mail-tools.test.js +262 -0
- package/dist/__tests__/agent-mail-tools.test.js.map +1 -0
- package/dist/__tests__/annotations.test.d.ts +8 -0
- package/dist/__tests__/annotations.test.d.ts.map +1 -0
- package/dist/__tests__/annotations.test.js +108 -0
- package/dist/__tests__/annotations.test.js.map +1 -0
- package/dist/__tests__/auth.test.d.ts +7 -0
- package/dist/__tests__/auth.test.d.ts.map +1 -0
- package/dist/__tests__/auth.test.js +116 -0
- package/dist/__tests__/auth.test.js.map +1 -0
- package/dist/__tests__/integration/protocol.test.d.ts +8 -0
- package/dist/__tests__/integration/protocol.test.d.ts.map +1 -0
- package/dist/__tests__/integration/protocol.test.js +104 -0
- package/dist/__tests__/integration/protocol.test.js.map +1 -0
- package/dist/__tests__/mcp-integrations.test.d.ts +8 -0
- package/dist/__tests__/mcp-integrations.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-integrations.test.js +375 -0
- package/dist/__tests__/mcp-integrations.test.js.map +1 -0
- package/dist/__tests__/memory-graph-tools.test.d.ts +8 -0
- package/dist/__tests__/memory-graph-tools.test.d.ts.map +1 -0
- package/dist/__tests__/memory-graph-tools.test.js +265 -0
- package/dist/__tests__/memory-graph-tools.test.js.map +1 -0
- package/dist/__tests__/schedule-tools.test.d.ts +8 -0
- package/dist/__tests__/schedule-tools.test.d.ts.map +1 -0
- package/dist/__tests__/schedule-tools.test.js +290 -0
- package/dist/__tests__/schedule-tools.test.js.map +1 -0
- package/dist/__tests__/tiers.test.d.ts +7 -0
- package/dist/__tests__/tiers.test.d.ts.map +1 -0
- package/dist/__tests__/tiers.test.js +103 -0
- package/dist/__tests__/tiers.test.js.map +1 -0
- package/dist/__tests__/tools.test.d.ts +7 -0
- package/dist/__tests__/tools.test.d.ts.map +1 -0
- package/dist/__tests__/tools.test.js +143 -0
- package/dist/__tests__/tools.test.js.map +1 -0
- package/dist/__tests__/transport.test.d.ts +7 -0
- package/dist/__tests__/transport.test.d.ts.map +1 -0
- package/dist/__tests__/transport.test.js +55 -0
- package/dist/__tests__/transport.test.js.map +1 -0
- package/dist/__tests__/web-eval-tools.test.d.ts +8 -0
- package/dist/__tests__/web-eval-tools.test.d.ts.map +1 -0
- package/dist/__tests__/web-eval-tools.test.js +252 -0
- package/dist/__tests__/web-eval-tools.test.js.map +1 -0
- package/dist/__tests__/workflow-tools.test.d.ts +8 -0
- package/dist/__tests__/workflow-tools.test.d.ts.map +1 -0
- package/dist/__tests__/workflow-tools.test.js +268 -0
- package/dist/__tests__/workflow-tools.test.js.map +1 -0
- package/dist/auth/oauth-provider.d.ts +34 -0
- package/dist/auth/oauth-provider.d.ts.map +1 -0
- package/dist/auth/oauth-provider.js +75 -0
- package/dist/auth/oauth-provider.js.map +1 -0
- package/dist/auth/token-verifier.d.ts +40 -0
- package/dist/auth/token-verifier.d.ts.map +1 -0
- package/dist/auth/token-verifier.js +138 -0
- package/dist/auth/token-verifier.js.map +1 -0
- package/dist/http-server.d.ts +35 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +175 -0
- package/dist/http-server.js.map +1 -0
- package/dist/index.js +113 -52
- package/dist/index.js.map +1 -1
- package/dist/lib/dobby-client.d.ts +50 -20
- package/dist/lib/dobby-client.d.ts.map +1 -1
- package/dist/lib/dobby-client.js +50 -0
- package/dist/lib/dobby-client.js.map +1 -1
- package/dist/tools/agent-mail.d.ts +153 -0
- package/dist/tools/agent-mail.d.ts.map +1 -0
- package/dist/tools/agent-mail.js +340 -0
- package/dist/tools/agent-mail.js.map +1 -0
- package/dist/tools/approvals.d.ts +24 -0
- package/dist/tools/approvals.d.ts.map +1 -1
- package/dist/tools/approvals.js +24 -0
- package/dist/tools/approvals.js.map +1 -1
- package/dist/tools/crew-builder.d.ts +24 -0
- package/dist/tools/crew-builder.d.ts.map +1 -1
- package/dist/tools/crew-builder.js +24 -0
- package/dist/tools/crew-builder.js.map +1 -1
- package/dist/tools/crewai.d.ts +24 -0
- package/dist/tools/crewai.d.ts.map +1 -1
- package/dist/tools/crewai.js +24 -0
- package/dist/tools/crewai.js.map +1 -1
- package/dist/tools/exa.d.ts +161 -0
- package/dist/tools/exa.d.ts.map +1 -0
- package/dist/tools/exa.js +228 -0
- package/dist/tools/exa.js.map +1 -0
- package/dist/tools/github-mcp.d.ts +303 -0
- package/dist/tools/github-mcp.d.ts.map +1 -0
- package/dist/tools/github-mcp.js +397 -0
- package/dist/tools/github-mcp.js.map +1 -0
- package/dist/tools/governance.d.ts +129 -0
- package/dist/tools/governance.d.ts.map +1 -0
- package/dist/tools/governance.js +171 -0
- package/dist/tools/governance.js.map +1 -0
- package/dist/tools/index.d.ts +3589 -159
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +250 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/jira.d.ts +60 -0
- package/dist/tools/jira.d.ts.map +1 -1
- package/dist/tools/jira.js +60 -0
- package/dist/tools/jira.js.map +1 -1
- package/dist/tools/knowledge-base.d.ts +144 -0
- package/dist/tools/knowledge-base.d.ts.map +1 -0
- package/dist/tools/knowledge-base.js +179 -0
- package/dist/tools/knowledge-base.js.map +1 -0
- package/dist/tools/mcp-metrics.d.ts +62 -0
- package/dist/tools/mcp-metrics.d.ts.map +1 -0
- package/dist/tools/mcp-metrics.js +270 -0
- package/dist/tools/mcp-metrics.js.map +1 -0
- package/dist/tools/mcp-tools.d.ts +12 -0
- package/dist/tools/mcp-tools.d.ts.map +1 -1
- package/dist/tools/mcp-tools.js +12 -0
- package/dist/tools/mcp-tools.js.map +1 -1
- package/dist/tools/mem0.d.ts +168 -0
- package/dist/tools/mem0.d.ts.map +1 -0
- package/dist/tools/mem0.js +255 -0
- package/dist/tools/mem0.js.map +1 -0
- package/dist/tools/memory-graph.d.ts +197 -0
- package/dist/tools/memory-graph.d.ts.map +1 -0
- package/dist/tools/memory-graph.js +545 -0
- package/dist/tools/memory-graph.js.map +1 -0
- package/dist/tools/messages.d.ts +12 -0
- package/dist/tools/messages.d.ts.map +1 -1
- package/dist/tools/messages.js +12 -0
- package/dist/tools/messages.js.map +1 -1
- package/dist/tools/moltbook.d.ts +564 -0
- package/dist/tools/moltbook.d.ts.map +1 -0
- package/dist/tools/moltbook.js +792 -0
- package/dist/tools/moltbook.js.map +1 -0
- package/dist/tools/ops.d.ts +219 -0
- package/dist/tools/ops.d.ts.map +1 -0
- package/dist/tools/ops.js +360 -0
- package/dist/tools/ops.js.map +1 -0
- package/dist/tools/schedules.d.ts +196 -0
- package/dist/tools/schedules.d.ts.map +1 -0
- package/dist/tools/schedules.js +264 -0
- package/dist/tools/schedules.js.map +1 -0
- package/dist/tools/services.d.ts +6 -0
- package/dist/tools/services.d.ts.map +1 -1
- package/dist/tools/services.js +6 -0
- package/dist/tools/services.js.map +1 -1
- package/dist/tools/tasks.d.ts +45 -0
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +49 -4
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/tiers.d.ts +39 -0
- package/dist/tools/tiers.d.ts.map +1 -0
- package/dist/tools/tiers.js +138 -0
- package/dist/tools/tiers.js.map +1 -0
- package/dist/tools/unified-agents.d.ts +62 -0
- package/dist/tools/unified-agents.d.ts.map +1 -0
- package/dist/tools/unified-agents.js +147 -0
- package/dist/tools/unified-agents.js.map +1 -0
- package/dist/tools/web-eval.d.ts +172 -0
- package/dist/tools/web-eval.d.ts.map +1 -0
- package/dist/tools/web-eval.js +347 -0
- package/dist/tools/web-eval.js.map +1 -0
- package/dist/tools/workflow.d.ts +171 -0
- package/dist/tools/workflow.d.ts.map +1 -0
- package/dist/tools/workflow.js +518 -0
- package/dist/tools/workflow.js.map +1 -0
- package/package.json +8 -3
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Governance MCP Tools
|
|
3
|
+
*
|
|
4
|
+
* Policy-as-Code operations via MCP for Claude Desktop/Cursor/VS Code users.
|
|
5
|
+
* 4 tools:
|
|
6
|
+
* 1. export_policies — Export org governance policies as YAML/JSON
|
|
7
|
+
* 2. import_policies — Import policies from YAML/JSON
|
|
8
|
+
* 3. validate_policies — Dry-run validate a policy document
|
|
9
|
+
* 4. apply_guardrail — Apply a guardrail template to an org
|
|
10
|
+
*/
|
|
11
|
+
// ============================================
|
|
12
|
+
// Tool Definitions
|
|
13
|
+
// ============================================
|
|
14
|
+
export const governanceTools = {
|
|
15
|
+
export_policies: {
|
|
16
|
+
name: 'export_policies',
|
|
17
|
+
annotations: {
|
|
18
|
+
title: 'Export Policies',
|
|
19
|
+
readOnlyHint: true,
|
|
20
|
+
destructiveHint: false,
|
|
21
|
+
openWorldHint: false,
|
|
22
|
+
},
|
|
23
|
+
description: 'Export all governance policies for an organization as YAML or JSON. Returns a PolicyDocument with organization policies, gateway config, budgets, and kill-switch state. Useful for backup, version control, or cross-org deployment.',
|
|
24
|
+
inputSchema: {
|
|
25
|
+
type: 'object',
|
|
26
|
+
properties: {
|
|
27
|
+
organization_id: {
|
|
28
|
+
type: 'string',
|
|
29
|
+
description: 'Organization ID (org_xxx)',
|
|
30
|
+
},
|
|
31
|
+
format: {
|
|
32
|
+
type: 'string',
|
|
33
|
+
enum: ['yaml', 'json'],
|
|
34
|
+
description: 'Export format (default: yaml)',
|
|
35
|
+
default: 'yaml',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
required: ['organization_id'],
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
import_policies: {
|
|
42
|
+
name: 'import_policies',
|
|
43
|
+
annotations: {
|
|
44
|
+
title: 'Import Policies',
|
|
45
|
+
readOnlyHint: false,
|
|
46
|
+
destructiveHint: true,
|
|
47
|
+
openWorldHint: false,
|
|
48
|
+
},
|
|
49
|
+
description: 'Import governance policies from a YAML/JSON document into an organization. Upserts policies by name — existing policies are updated, new ones are created. Kill-switch state is NOT imported for safety.',
|
|
50
|
+
inputSchema: {
|
|
51
|
+
type: 'object',
|
|
52
|
+
properties: {
|
|
53
|
+
organization_id: {
|
|
54
|
+
type: 'string',
|
|
55
|
+
description: 'Target organization ID (org_xxx)',
|
|
56
|
+
},
|
|
57
|
+
content: {
|
|
58
|
+
type: 'string',
|
|
59
|
+
description: 'Policy document content (YAML or JSON string)',
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
required: ['organization_id', 'content'],
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
validate_policies: {
|
|
66
|
+
name: 'validate_policies',
|
|
67
|
+
annotations: {
|
|
68
|
+
title: 'Validate Policies',
|
|
69
|
+
readOnlyHint: true,
|
|
70
|
+
destructiveHint: false,
|
|
71
|
+
openWorldHint: false,
|
|
72
|
+
},
|
|
73
|
+
description: 'Dry-run validate a policy document without applying it. Returns validation errors, warnings, and a diff showing what would change compared to current org state.',
|
|
74
|
+
inputSchema: {
|
|
75
|
+
type: 'object',
|
|
76
|
+
properties: {
|
|
77
|
+
organization_id: {
|
|
78
|
+
type: 'string',
|
|
79
|
+
description: 'Organization ID to validate against (org_xxx)',
|
|
80
|
+
},
|
|
81
|
+
content: {
|
|
82
|
+
type: 'string',
|
|
83
|
+
description: 'Policy document content (YAML or JSON string)',
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
required: ['organization_id', 'content'],
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
apply_guardrail: {
|
|
90
|
+
name: 'apply_guardrail',
|
|
91
|
+
annotations: {
|
|
92
|
+
title: 'Apply Guardrail',
|
|
93
|
+
readOnlyHint: false,
|
|
94
|
+
destructiveHint: true,
|
|
95
|
+
openWorldHint: false,
|
|
96
|
+
},
|
|
97
|
+
description: 'Apply a pre-built guardrail template to an organization. Templates include: conservative, balanced, enterprise, hipaa, sox, gdpr. Each template configures organization policies, gateway settings, and content rules appropriate for the compliance scenario.',
|
|
98
|
+
inputSchema: {
|
|
99
|
+
type: 'object',
|
|
100
|
+
properties: {
|
|
101
|
+
organization_id: {
|
|
102
|
+
type: 'string',
|
|
103
|
+
description: 'Organization ID (org_xxx)',
|
|
104
|
+
},
|
|
105
|
+
template: {
|
|
106
|
+
type: 'string',
|
|
107
|
+
enum: ['conservative', 'balanced', 'enterprise', 'hipaa', 'sox', 'gdpr'],
|
|
108
|
+
description: 'Guardrail template name',
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
required: ['organization_id', 'template'],
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
// ============================================
|
|
116
|
+
// Tool Handlers
|
|
117
|
+
// ============================================
|
|
118
|
+
export async function handleExportPolicies(args, client) {
|
|
119
|
+
const format = args.format || 'yaml';
|
|
120
|
+
const response = await client.post(`/api/v1/organizations/${args.organization_id}/policies/export`, { format });
|
|
121
|
+
if (typeof response === 'string') {
|
|
122
|
+
return response;
|
|
123
|
+
}
|
|
124
|
+
return JSON.stringify(response, null, 2);
|
|
125
|
+
}
|
|
126
|
+
export async function handleImportPolicies(args, client) {
|
|
127
|
+
const response = await client.post(`/api/v1/organizations/${args.organization_id}/policies/import`, { content: args.content });
|
|
128
|
+
const result = response;
|
|
129
|
+
if (result.success) {
|
|
130
|
+
return `Import successful: ${result.policiesCreated} created, ${result.policiesUpdated} updated` +
|
|
131
|
+
(result.gatewayPolicyUpdated ? ', gateway policy updated' : '') +
|
|
132
|
+
(result.errors?.length ? `\nWarnings: ${result.errors.join('; ')}` : '');
|
|
133
|
+
}
|
|
134
|
+
return `Import failed: ${result.errors?.join('; ') || 'Unknown error'}`;
|
|
135
|
+
}
|
|
136
|
+
export async function handleValidatePolicies(args, client) {
|
|
137
|
+
const response = await client.post(`/api/v1/organizations/${args.organization_id}/policies/validate`, { content: args.content });
|
|
138
|
+
const result = response;
|
|
139
|
+
const lines = [];
|
|
140
|
+
lines.push(`Valid: ${result.valid ? 'Yes' : 'No'}`);
|
|
141
|
+
if (result.errors?.length) {
|
|
142
|
+
lines.push(`\nErrors (${result.errors.length}):`);
|
|
143
|
+
result.errors.forEach((e) => lines.push(` - ${e.path}: ${e.message}`));
|
|
144
|
+
}
|
|
145
|
+
if (result.warnings?.length) {
|
|
146
|
+
lines.push(`\nWarnings (${result.warnings.length}):`);
|
|
147
|
+
result.warnings.forEach((w) => lines.push(` - ${w.path}: ${w.message}`));
|
|
148
|
+
}
|
|
149
|
+
if (result.diff) {
|
|
150
|
+
const d = result.diff;
|
|
151
|
+
if (d.added?.length)
|
|
152
|
+
lines.push(`\nAdded: ${d.added.join(', ')}`);
|
|
153
|
+
if (d.removed?.length)
|
|
154
|
+
lines.push(`Removed: ${d.removed.join(', ')}`);
|
|
155
|
+
if (d.changed?.length) {
|
|
156
|
+
lines.push(`Changed (${d.changed.length}):`);
|
|
157
|
+
d.changed.forEach((c) => lines.push(` - ${c.path}`));
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return lines.join('\n');
|
|
161
|
+
}
|
|
162
|
+
export async function handleApplyGuardrail(args, client) {
|
|
163
|
+
const response = await client.post(`/api/v1/organizations/${args.organization_id}/policies/templates`, { template: args.template });
|
|
164
|
+
const result = response;
|
|
165
|
+
if (result.success) {
|
|
166
|
+
return `Guardrail '${args.template}' applied: ${result.policiesCreated} policies created, ${result.policiesUpdated} updated` +
|
|
167
|
+
(result.gatewayPolicyUpdated ? ', gateway config updated' : '');
|
|
168
|
+
}
|
|
169
|
+
return `Failed to apply template: ${result.errors?.join('; ') || result.error || 'Unknown error'}`;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=governance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.js","sourceRoot":"","sources":["../../src/tools/governance.ts"],"names":[],"mappings":"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"}
|