tokrepo-mcp-server 2.2.0 → 2.3.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 CHANGED
@@ -41,6 +41,7 @@ Once connected, your AI assistant can:
41
41
  - **Plan before install** — get install plan v2 with policy decisions, rollback, and verification
42
42
  - **Safe Codex install** — dry-run by default; risky assets must be staged or explicitly approved
43
43
  - **Lifecycle control** — list installed assets, uninstall managed files, and roll back install sessions
44
+ - **Agent eval** — run TokRepo's agent-native search/plan/install/rollback contract checks
44
45
 
45
46
  ## Available Tools
46
47
 
@@ -54,6 +55,7 @@ Once connected, your AI assistant can:
54
55
  | `tokrepo_installed` | List TokRepo-managed Codex installs |
55
56
  | `tokrepo_uninstall` | Dry-run or remove a managed Codex install |
56
57
  | `tokrepo_rollback` | Dry-run or roll back a prior Codex install session |
58
+ | `tokrepo_eval_agent` | Run agent-native CLI contract and lifecycle evals |
57
59
  | `tokrepo_install` | Get raw installable content |
58
60
  | `tokrepo_trending` | Browse popular/latest assets |
59
61
 
@@ -70,6 +72,7 @@ You: "Install that cursor rules asset"
70
72
  AI: [calls tokrepo_install_plan] → Reviews policy and actions
71
73
  AI: [calls tokrepo_codex_install with dry_run=false, confirm=true] → Writes only after explicit confirmation
72
74
  AI: [calls tokrepo_rollback with dry_run=true] → Shows exactly what would be removed before rollback
75
+ AI: [calls tokrepo_eval_agent] → Verifies TokRepo's agent-facing flow end to end
73
76
  ```
74
77
 
75
78
  ## Why TokRepo?
package/bin/server.js CHANGED
@@ -19,7 +19,7 @@ const API_BASE = process.env.TOKREPO_API || 'https://api.tokrepo.com';
19
19
  const TOKREPO_URL = 'https://tokrepo.com';
20
20
  const TOKREPO_TOKEN = process.env.TOKREPO_TOKEN || '';
21
21
  const TOKREPO_CLI = process.env.TOKREPO_CLI || '';
22
- const SERVER_VERSION = '2.2.0';
22
+ const SERVER_VERSION = '2.3.0';
23
23
 
24
24
  // ─── MCP Protocol (JSON-RPC over stdio) ───
25
25
 
@@ -245,6 +245,23 @@ const TOOLS = [
245
245
  },
246
246
  },
247
247
  },
248
+ {
249
+ name: 'tokrepo_eval_agent',
250
+ description: 'Run TokRepo agent-native evals through the CLI. Verifies filtered search, install-plan contracts, metadata quality reporting, Codex install verification, manifest state, and rollback using temporary local state.',
251
+ inputSchema: {
252
+ type: 'object',
253
+ properties: {
254
+ uuid: {
255
+ type: 'string',
256
+ description: 'Optional sample asset UUID for install-plan and lifecycle tests.',
257
+ },
258
+ keyword: {
259
+ type: 'string',
260
+ description: 'Optional search keyword for filtered search eval. Default video.',
261
+ },
262
+ },
263
+ },
264
+ },
248
265
  {
249
266
  name: 'tokrepo_trending',
250
267
  description: 'Get trending/popular AI assets on TokRepo. Use when user asks for recommended or popular AI tools.',
@@ -803,6 +820,21 @@ async function handleRollback(args) {
803
820
  return { content: [{ type: 'text', text: jsonText(dry_run === false ? 'TokRepo Codex rollback result' : 'TokRepo Codex rollback dry-run', data) }] };
804
821
  }
805
822
 
823
+ async function handleEvalAgent(args) {
824
+ const { uuid = '', keyword = '' } = args || {};
825
+ const cliArgs = ['eval-agent', '--json'];
826
+ if (uuid) cliArgs.push('--uuid', uuid);
827
+ if (keyword) cliArgs.push('--keyword', keyword);
828
+ const { stdout, stderr } = await runTokrepoCli(cliArgs);
829
+ let data;
830
+ try {
831
+ data = JSON.parse(stdout);
832
+ } catch {
833
+ data = { stdout, stderr };
834
+ }
835
+ return { content: [{ type: 'text', text: jsonText('TokRepo agent eval result', data) }] };
836
+ }
837
+
806
838
  async function handleTrending(args) {
807
839
  const { sort = 'popular', limit = 10 } = args;
808
840
  const params = new URLSearchParams({
@@ -957,6 +989,7 @@ async function handleRequest(msg) {
957
989
  case 'tokrepo_installed': result = await handleInstalled(args || {}); break;
958
990
  case 'tokrepo_uninstall': result = await handleUninstall(args || {}); break;
959
991
  case 'tokrepo_rollback': result = await handleRollback(args || {}); break;
992
+ case 'tokrepo_eval_agent': result = await handleEvalAgent(args || {}); break;
960
993
  case 'tokrepo_trending': result = await handleTrending(args || {}); break;
961
994
  case 'tokrepo_push': result = await handlePush(args || {}); break;
962
995
  case 'tokrepo_status': result = await handleStatus(args || {}); break;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tokrepo-mcp-server",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Agent-native MCP server for TokRepo — search, plan, safely install, and push AI assets from MCP clients.",
5
5
  "mcpName": "io.github.tokrepo/mcp-server",
6
6
  "bin": {