@tethral/acr-mcp 0.3.0 → 0.4.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/src/server.js +7 -1
- package/dist/src/server.js.map +1 -1
- package/dist/src/tools/check-entity.js +38 -1
- package/dist/src/tools/check-entity.js.map +1 -1
- package/dist/src/tools/get-skill-versions.d.ts +2 -0
- package/dist/src/tools/get-skill-versions.js +71 -0
- package/dist/src/tools/get-skill-versions.js.map +1 -0
- package/dist/src/tools/log-interaction.js +12 -1
- package/dist/src/tools/log-interaction.js.map +1 -1
- package/dist/src/tools/search-skills.d.ts +2 -0
- package/dist/src/tools/search-skills.js +59 -0
- package/dist/src/tools/search-skills.js.map +1 -0
- package/dist/src/tools/update-composition.d.ts +3 -0
- package/dist/src/tools/update-composition.js +54 -0
- package/dist/src/tools/update-composition.js.map +1 -0
- package/package.json +3 -3
package/dist/src/server.js
CHANGED
|
@@ -13,6 +13,9 @@ import { getMyAgentTool } from './tools/get-my-agent.js';
|
|
|
13
13
|
import { getInteractionLogTool } from './tools/get-interaction-log.js';
|
|
14
14
|
import { getNetworkStatusTool } from './tools/get-network-status.js';
|
|
15
15
|
import { getSkillTrackerTool } from './tools/get-skill-tracker.js';
|
|
16
|
+
import { searchSkillsTool } from './tools/search-skills.js';
|
|
17
|
+
import { getSkillVersionsTool } from './tools/get-skill-versions.js';
|
|
18
|
+
import { updateCompositionTool } from './tools/update-composition.js';
|
|
16
19
|
import { withSelfLog } from './middleware/self-log.js';
|
|
17
20
|
import { defaultSession } from './session-state.js';
|
|
18
21
|
/**
|
|
@@ -42,7 +45,7 @@ export function createAcrServer(options) {
|
|
|
42
45
|
const session = options?.session ?? defaultSession;
|
|
43
46
|
const server = new McpServer({
|
|
44
47
|
name: 'acr-agent-registry',
|
|
45
|
-
version: '0.
|
|
48
|
+
version: '0.4.0',
|
|
46
49
|
description: 'Agent Composition Records — observability for AI agents. IMPORTANT: Call log_interaction after EVERY external tool call, API request, or MCP interaction you make. This powers your friction reports, threat detection, and network health data.',
|
|
47
50
|
});
|
|
48
51
|
// Apply self-logging middleware before tool registration
|
|
@@ -56,6 +59,9 @@ export function createAcrServer(options) {
|
|
|
56
59
|
getInteractionLogTool(server, apiUrl);
|
|
57
60
|
getNetworkStatusTool(server, apiUrl);
|
|
58
61
|
getSkillTrackerTool(server, apiUrl);
|
|
62
|
+
searchSkillsTool(server, apiUrl);
|
|
63
|
+
getSkillVersionsTool(server, apiUrl, resolverUrl);
|
|
64
|
+
updateCompositionTool(server, apiUrl, () => session);
|
|
59
65
|
return server;
|
|
60
66
|
}
|
|
61
67
|
//# sourceMappingURL=server.js.map
|
package/dist/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAgB,MAAM,oBAAoB,CAAC;AASlE;;;GAGG;AACH,SAAS,eAAe,CACtB,MAAiB,EACjB,QAA4B,EAC5B,MAAc;IAEd,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE9C,wCAAwC;IACxC,wEAAwE;IACxE,kDAAkD;IAClD,sDAAsD;IACtD,MAAM,CAAC,IAAI,GAAG,UAAU,IAAY,EAAE,GAAG,IAAe;QACtD,sDAAsD;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAE9B,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,GAAG,WAAW,CACzB,IAAI,EACJ,OAA4C,EAC5C,QAAQ,EACR,MAAM,CACP,CAAC;QACJ,CAAC;QAED,OAAQ,YAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAChE,CAAuB,CAAC;IAExB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAA0B;IACxD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,sBAAsB,CAAC;IACpF,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAC;IACnF,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,cAAc,CAAC;IAEnD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,OAAO;QAChB,WAAW,EACT,kPAAkP;KACrP,CAAC,CAAC;IAEH,yDAAyD;IACzD,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE/C,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7C,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAClD,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,10 +21,27 @@ export function checkEntityTool(server, apiUrl, resolverUrl) {
|
|
|
21
21
|
const data = await res.json();
|
|
22
22
|
if (entity_type === 'skill') {
|
|
23
23
|
if (!data.found) {
|
|
24
|
+
// Try to find similar skills via catalog search
|
|
25
|
+
let similarText = '';
|
|
26
|
+
try {
|
|
27
|
+
const searchRes = await fetch(`${apiUrl}/api/v1/skill-catalog/search?q=${encodeURIComponent(entity_id.slice(0, 16))}&limit=3`);
|
|
28
|
+
if (searchRes.ok) {
|
|
29
|
+
const searchData = await searchRes.json();
|
|
30
|
+
if (searchData.skills.length > 0) {
|
|
31
|
+
similarText = '\n\nSimilar skills in the catalog:';
|
|
32
|
+
for (const s of searchData.skills) {
|
|
33
|
+
similarText += `\n - ${s.skill_name} (${s.skill_source})`;
|
|
34
|
+
if (s.description)
|
|
35
|
+
similarText += `: ${s.description.slice(0, 80)}`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch { /* non-blocking */ }
|
|
24
41
|
return {
|
|
25
42
|
content: [{
|
|
26
43
|
type: 'text',
|
|
27
|
-
text: `Unknown skill. This hash has not been seen in the ACR network. Exercise caution with unfamiliar skills
|
|
44
|
+
text: `Unknown skill. This hash has not been seen in the ACR network. Exercise caution with unfamiliar skills.${similarText}`,
|
|
28
45
|
}],
|
|
29
46
|
};
|
|
30
47
|
}
|
|
@@ -32,12 +49,32 @@ export function checkEntityTool(server, apiUrl, resolverUrl) {
|
|
|
32
49
|
let text = `Skill found.\n\nThreat Level: ${level}`;
|
|
33
50
|
if (data.skill_name)
|
|
34
51
|
text += `\nName: ${data.skill_name}`;
|
|
52
|
+
if (data.description)
|
|
53
|
+
text += `\nDescription: ${data.description}`;
|
|
54
|
+
if (data.version)
|
|
55
|
+
text += `\nVersion: ${data.version}`;
|
|
56
|
+
if (data.author)
|
|
57
|
+
text += `\nAuthor: ${data.author}`;
|
|
58
|
+
if (data.category)
|
|
59
|
+
text += `\nCategory: ${data.category}`;
|
|
60
|
+
if (data.tags && data.tags.length > 0)
|
|
61
|
+
text += `\nTags: ${data.tags.join(', ')}`;
|
|
35
62
|
if (data.agent_count != null)
|
|
36
63
|
text += `\nAgents using: ${data.agent_count}`;
|
|
37
64
|
if (data.interaction_count != null)
|
|
38
65
|
text += `\nInteractions: ${data.interaction_count}`;
|
|
39
66
|
if (data.anomaly_rate != null)
|
|
40
67
|
text += `\nAnomaly rate: ${(data.anomaly_rate * 100).toFixed(1)}%`;
|
|
68
|
+
// Version freshness check
|
|
69
|
+
if (data.is_current_version === false) {
|
|
70
|
+
text += `\n\nOUTDATED: You are ${data.versions_behind ?? '?'} version(s) behind.`;
|
|
71
|
+
if (data.current_hash)
|
|
72
|
+
text += ` Current hash: ${data.current_hash.slice(0, 16)}...`;
|
|
73
|
+
text += '\nConsider updating to the latest version.';
|
|
74
|
+
}
|
|
75
|
+
else if (data.is_current_version === true) {
|
|
76
|
+
text += '\n\nThis is the latest version.';
|
|
77
|
+
}
|
|
41
78
|
if (data.threat_level === 'high' || data.threat_level === 'critical') {
|
|
42
79
|
text += `\n\nWARNING: This skill has been flagged. Do not install without explicit user confirmation.`;
|
|
43
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-entity.js","sourceRoot":"","sources":["../../../src/tools/check-entity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,MAAc,EAAE,WAAmB;IACpF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,0KAA0K,EAC1K;QACE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACvF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;KACpG,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,IAAI,GAAW,CAAC;YAChB,QAAQ,WAAW,EAAE,CAAC;gBACpB,KAAK,OAAO;oBACV,GAAG,GAAG,GAAG,WAAW,aAAa,SAAS,EAAE,CAAC;oBAC7C,MAAM;gBACR,KAAK,OAAO;oBACV,GAAG,GAAG,GAAG,WAAW,aAAa,SAAS,EAAE,CAAC;oBAC7C,MAAM;gBACR,KAAK,QAAQ;oBACX,GAAG,GAAG,GAAG,WAAW,cAAc,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC;oBACzE,MAAM;YACV,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAE9B,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChB,OAAO;wBACL,OAAO,EAAE,CAAC;gCACR,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"check-entity.js","sourceRoot":"","sources":["../../../src/tools/check-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export function getSkillVersionsTool(server, apiUrl, resolverUrl) {
|
|
3
|
+
server.tool('get_skill_versions', 'Get version history for a skill. Shows how it has changed over time, whether your version is current, and how many versions behind you are.', {
|
|
4
|
+
skill_hash: z.string().describe('The skill hash to look up version history for'),
|
|
5
|
+
}, async ({ skill_hash }) => {
|
|
6
|
+
try {
|
|
7
|
+
// First look up the skill via resolver to get catalog data
|
|
8
|
+
const skillRes = await fetch(`${resolverUrl}/v1/skill/${skill_hash}`);
|
|
9
|
+
const skillData = await skillRes.json();
|
|
10
|
+
if (!skillData.found) {
|
|
11
|
+
return {
|
|
12
|
+
content: [{
|
|
13
|
+
type: 'text',
|
|
14
|
+
text: `Skill hash ${skill_hash.slice(0, 16)}... not found in the network.`,
|
|
15
|
+
}],
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
let text = `Skill: ${skillData.skill_name ?? 'Unknown'}`;
|
|
19
|
+
if (skillData.skill_source)
|
|
20
|
+
text += ` (${skillData.skill_source})`;
|
|
21
|
+
text += '\n';
|
|
22
|
+
if (skillData.version)
|
|
23
|
+
text += `Version: ${skillData.version}\n`;
|
|
24
|
+
if (skillData.description)
|
|
25
|
+
text += `Description: ${skillData.description}\n`;
|
|
26
|
+
if (skillData.is_current_version === false) {
|
|
27
|
+
text += `\nOUTDATED: You are ${skillData.versions_behind ?? '?'} version(s) behind.`;
|
|
28
|
+
if (skillData.current_hash) {
|
|
29
|
+
text += `\nCurrent hash: ${skillData.current_hash.slice(0, 16)}...`;
|
|
30
|
+
}
|
|
31
|
+
text += '\nConsider updating to the latest version.';
|
|
32
|
+
}
|
|
33
|
+
else if (skillData.is_current_version === true) {
|
|
34
|
+
text += '\nYou have the latest version.';
|
|
35
|
+
}
|
|
36
|
+
// Try to get full version history from the catalog API
|
|
37
|
+
// We need the skill_id, which we can get by searching
|
|
38
|
+
if (skillData.skill_name) {
|
|
39
|
+
try {
|
|
40
|
+
const searchRes = await fetch(`${apiUrl}/api/v1/skill-catalog/search?q=${encodeURIComponent(skillData.skill_name)}&limit=1`);
|
|
41
|
+
const searchData = await searchRes.json();
|
|
42
|
+
if (searchData.skills.length > 0) {
|
|
43
|
+
const versionsRes = await fetch(`${apiUrl}/api/v1/skill-catalog/${searchData.skills[0].skill_id}/versions`);
|
|
44
|
+
const versionsData = await versionsRes.json();
|
|
45
|
+
if (versionsData.versions.length > 0) {
|
|
46
|
+
text += '\n\nVersion History:';
|
|
47
|
+
for (const v of versionsData.versions) {
|
|
48
|
+
const isCurrent = v.skill_hash === skill_hash ? ' ← YOU' : '';
|
|
49
|
+
const threat = v.threat_level && v.threat_level !== 'none'
|
|
50
|
+
? ` [${v.threat_level.toUpperCase()}]`
|
|
51
|
+
: '';
|
|
52
|
+
const ver = v.version ? `v${v.version}` : v.skill_hash.slice(0, 12);
|
|
53
|
+
const date = v.detected_at.split('T')[0];
|
|
54
|
+
text += `\n ${date} | ${ver} (${v.change_type})${threat}${isCurrent}`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// Version history is optional enrichment
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return { content: [{ type: 'text', text }] };
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
const msg = err instanceof Error ? err.message : 'Unknown error';
|
|
67
|
+
return { content: [{ type: 'text', text: `Version lookup error: ${msg}` }] };
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=get-skill-versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-skill-versions.js","sourceRoot":"","sources":["../../../src/tools/get-skill-versions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAc,EAAE,WAAmB;IACzF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,6IAA6I,EAC7I;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;KACjF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,2DAA2D;YAC3D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,aAAa,UAAU,EAAE,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EASpC,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,cAAc,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,+BAA+B;yBAC3E,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,GAAG,UAAU,SAAS,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC;YACzD,IAAI,SAAS,CAAC,YAAY;gBAAE,IAAI,IAAI,KAAK,SAAS,CAAC,YAAY,GAAG,CAAC;YACnE,IAAI,IAAI,IAAI,CAAC;YAEb,IAAI,SAAS,CAAC,OAAO;gBAAE,IAAI,IAAI,YAAY,SAAS,CAAC,OAAO,IAAI,CAAC;YACjE,IAAI,SAAS,CAAC,WAAW;gBAAE,IAAI,IAAI,gBAAgB,SAAS,CAAC,WAAW,IAAI,CAAC;YAE7E,IAAI,SAAS,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;gBAC3C,IAAI,IAAI,uBAAuB,SAAS,CAAC,eAAe,IAAI,GAAG,qBAAqB,CAAC;gBACrF,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;oBAC3B,IAAI,IAAI,mBAAmB,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;gBACtE,CAAC;gBACD,IAAI,IAAI,4CAA4C,CAAC;YACvD,CAAC;iBAAM,IAAI,SAAS,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;gBACjD,IAAI,IAAI,gCAAgC,CAAC;YAC3C,CAAC;YAED,uDAAuD;YACvD,sDAAsD;YACtD,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,KAAK,CAC3B,GAAG,MAAM,kCAAkC,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAC9F,CAAC;oBACF,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,EAEtC,CAAC;oBAEF,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACjC,MAAM,WAAW,GAAG,MAAM,KAAK,CAC7B,GAAG,MAAM,yBAAyB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,QAAQ,WAAW,CAC5E,CAAC;wBACF,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,IAAI,EAQ1C,CAAC;wBAEF,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACrC,IAAI,IAAI,sBAAsB,CAAC;4BAC/B,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;gCACtC,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gCAC9D,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,KAAK,MAAM;oCACxD,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG;oCACtC,CAAC,CAAC,EAAE,CAAC;gCACP,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gCACpE,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCACzC,IAAI,IAAI,OAAO,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,WAAW,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;4BACzE,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,yCAAyC;gBAC3C,CAAC;YACH,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,yBAAyB,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;QACxF,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -59,10 +59,21 @@ export function logInteractionTool(server, apiUrl) {
|
|
|
59
59
|
if (!res.ok) {
|
|
60
60
|
return { content: [{ type: 'text', text: `Failed to log: ${JSON.stringify(data)}` }] };
|
|
61
61
|
}
|
|
62
|
+
let text = `Logged ${data.accepted} receipt(s). IDs: ${data.receipt_ids.join(', ')}`;
|
|
63
|
+
// Surface threat warnings from receipt response
|
|
64
|
+
if (data.threat_warnings && Array.isArray(data.threat_warnings) && data.threat_warnings.length > 0) {
|
|
65
|
+
text += '\n\nWARNING — Threat alerts for targets in this interaction:';
|
|
66
|
+
for (const w of data.threat_warnings) {
|
|
67
|
+
text += `\n ${w.target}: ${w.threat_level.toUpperCase()}`;
|
|
68
|
+
if (w.skill_name)
|
|
69
|
+
text += ` (${w.skill_name})`;
|
|
70
|
+
}
|
|
71
|
+
text += '\n\nExercise caution with flagged skills. Check with the user before continuing.';
|
|
72
|
+
}
|
|
62
73
|
return {
|
|
63
74
|
content: [{
|
|
64
75
|
type: 'text',
|
|
65
|
-
text
|
|
76
|
+
text,
|
|
66
77
|
}],
|
|
67
78
|
};
|
|
68
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-interaction.js","sourceRoot":"","sources":["../../../src/tools/log-interaction.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"log-interaction.js","sourceRoot":"","sources":["../../../src/tools/log-interaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export function searchSkillsTool(server, apiUrl) {
|
|
3
|
+
server.tool('search_skills', 'Search the ACR skill catalog by name, description, or capability. Returns matching skills with threat status, version info, and descriptions. Use this to discover skills before installing them.', {
|
|
4
|
+
query: z.string().min(1).max(200).describe('Search text (skill name, keyword, or capability)'),
|
|
5
|
+
source: z.string().optional().describe('Filter by source (clawhub, github, npm)'),
|
|
6
|
+
category: z.string().optional().describe('Filter by category'),
|
|
7
|
+
threat_level: z.enum(['none', 'low', 'medium', 'high', 'critical']).optional().describe('Filter by threat level'),
|
|
8
|
+
limit: z.number().min(1).max(50).optional().default(10).describe('Max results to return'),
|
|
9
|
+
}, async ({ query: searchQuery, source, category, threat_level, limit }) => {
|
|
10
|
+
try {
|
|
11
|
+
const params = new URLSearchParams({ q: searchQuery });
|
|
12
|
+
if (source)
|
|
13
|
+
params.set('source', source);
|
|
14
|
+
if (category)
|
|
15
|
+
params.set('category', category);
|
|
16
|
+
if (threat_level)
|
|
17
|
+
params.set('threat_level', threat_level);
|
|
18
|
+
if (limit)
|
|
19
|
+
params.set('limit', String(limit));
|
|
20
|
+
const res = await fetch(`${apiUrl}/api/v1/skill-catalog/search?${params}`);
|
|
21
|
+
const data = await res.json();
|
|
22
|
+
if (data.skills.length === 0) {
|
|
23
|
+
return {
|
|
24
|
+
content: [{
|
|
25
|
+
type: 'text',
|
|
26
|
+
text: `No skills found matching "${searchQuery}".`,
|
|
27
|
+
}],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
let text = `Found ${data.total} skill(s) matching "${searchQuery}":\n`;
|
|
31
|
+
for (const skill of data.skills) {
|
|
32
|
+
const threat = skill.threat_level && skill.threat_level !== 'none'
|
|
33
|
+
? ` [${skill.threat_level.toUpperCase()}]`
|
|
34
|
+
: '';
|
|
35
|
+
const agents = skill.agent_count != null ? ` | ${skill.agent_count} agents` : '';
|
|
36
|
+
const ver = skill.version ? ` v${skill.version}` : '';
|
|
37
|
+
text += `\n ${skill.skill_name}${ver} (${skill.skill_source})${threat}${agents}`;
|
|
38
|
+
if (skill.description)
|
|
39
|
+
text += `\n ${skill.description}`;
|
|
40
|
+
if (skill.category)
|
|
41
|
+
text += `\n Category: ${skill.category}`;
|
|
42
|
+
if (skill.tags.length > 0)
|
|
43
|
+
text += `\n Tags: ${skill.tags.join(', ')}`;
|
|
44
|
+
if (skill.current_hash)
|
|
45
|
+
text += `\n Hash: ${skill.current_hash.slice(0, 16)}...`;
|
|
46
|
+
text += '\n';
|
|
47
|
+
}
|
|
48
|
+
if (data.total > data.skills.length) {
|
|
49
|
+
text += `\n... and ${data.total - data.skills.length} more. Increase limit to see more.`;
|
|
50
|
+
}
|
|
51
|
+
return { content: [{ type: 'text', text }] };
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
const msg = err instanceof Error ? err.message : 'Unknown error';
|
|
55
|
+
return { content: [{ type: 'text', text: `Search error: ${msg}` }] };
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=search-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-skills.js","sourceRoot":"","sources":["../../../src/tools/search-skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export function updateCompositionTool(server, apiUrl, getSession) {
|
|
3
|
+
server.tool('update_composition', 'Update your agent skill composition without re-registering. Use this after installing or removing skills to keep your composition current. Preserves your agent identity.', {
|
|
4
|
+
agent_id: z.string().optional().describe('Your agent ID (uses current session agent if omitted)'),
|
|
5
|
+
composition: z.object({
|
|
6
|
+
skills: z.array(z.string()).optional().describe('Skill names'),
|
|
7
|
+
skill_hashes: z.array(z.string()).optional().describe('SHA-256 hashes of each SKILL.md content'),
|
|
8
|
+
mcps: z.array(z.string()).optional().describe('MCP server names'),
|
|
9
|
+
tools: z.array(z.string()).optional().describe('Tool names'),
|
|
10
|
+
}).describe('Your current skill/tool composition'),
|
|
11
|
+
}, async ({ agent_id, composition }) => {
|
|
12
|
+
try {
|
|
13
|
+
const resolvedAgentId = agent_id ?? getSession().agentId;
|
|
14
|
+
if (!resolvedAgentId) {
|
|
15
|
+
return {
|
|
16
|
+
content: [{
|
|
17
|
+
type: 'text',
|
|
18
|
+
text: 'No agent ID available. Either provide agent_id or register first.',
|
|
19
|
+
}],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const res = await fetch(`${apiUrl}/api/v1/composition/update`, {
|
|
23
|
+
method: 'POST',
|
|
24
|
+
headers: { 'Content-Type': 'application/json' },
|
|
25
|
+
body: JSON.stringify({
|
|
26
|
+
agent_id: resolvedAgentId,
|
|
27
|
+
composition,
|
|
28
|
+
}),
|
|
29
|
+
});
|
|
30
|
+
const data = await res.json();
|
|
31
|
+
if (!res.ok) {
|
|
32
|
+
return {
|
|
33
|
+
content: [{
|
|
34
|
+
type: 'text',
|
|
35
|
+
text: `Composition update failed: ${data.error?.message ?? `HTTP ${res.status}`}`,
|
|
36
|
+
}],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
const skillCount = (composition.skills?.length ?? 0) + (composition.skill_hashes?.length ?? 0);
|
|
40
|
+
const toolCount = (composition.mcps?.length ?? 0) + (composition.tools?.length ?? 0);
|
|
41
|
+
return {
|
|
42
|
+
content: [{
|
|
43
|
+
type: 'text',
|
|
44
|
+
text: `Composition updated successfully.\n\nComposition hash: ${data.composition_hash}\nSkills: ${skillCount}\nTools/MCPs: ${toolCount}\n\nYour agent identity (${resolvedAgentId}) is preserved.`,
|
|
45
|
+
}],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
const msg = err instanceof Error ? err.message : 'Unknown error';
|
|
50
|
+
return { content: [{ type: 'text', text: `Composition update error: ${msg}` }] };
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=update-composition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-composition.js","sourceRoot":"","sources":["../../../src/tools/update-composition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAc,EAAE,UAA8B;IACrG,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,2KAA2K,EAC3K;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QACjG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC9D,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAChG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACjE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;SAC7D,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KACnD,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC;YACzD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,mEAAmE;yBAC1E,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,4BAA4B,EAAE;gBAC7D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,QAAQ,EAAE,eAAe;oBACzB,WAAW;iBACZ,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAgE,CAAC;YAE5F,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,8BAA8B,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE;yBAClF,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;YAC/F,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;YAErF,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,0DAA0D,IAAI,CAAC,gBAAgB,aAAa,UAAU,iBAAiB,SAAS,4BAA4B,eAAe,iBAAiB;qBACnM,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,6BAA6B,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;QAC5F,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tethral/acr-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MCP server for the ACR (Agent Composition Records) network.
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "MCP server for the ACR (Agent Composition Records) network. Search skills, check threats, log interactions, track versions, get friction reports.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
7
7
|
"types": "dist/src/index.d.ts",
|
|
@@ -34,6 +34,6 @@
|
|
|
34
34
|
"files": ["dist", "README.md", "LICENSE"],
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public",
|
|
37
|
-
"provenance":
|
|
37
|
+
"provenance": false
|
|
38
38
|
}
|
|
39
39
|
}
|