mcp-server-mcpindex 0.3.3 → 0.3.5
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/CHANGELOG.md +7 -1
- package/README.md +29 -11
- package/package.json +3 -2
- package/src/index.mjs +2 -2
- package/src/update-check.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,11 +4,17 @@ All notable changes to `mcp-server-mcpindex` are recorded here.
|
|
|
4
4
|
|
|
5
5
|
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.3.5] - 2026-07-12
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- **Honesty copy for the advisory screen vs in-path gate.** `check_tool_trust` tool description now states v1 produces REVIEW/UNVERIFIED only (ALLOW/DENY reserved) and that this package is the directory client — not `mcpindex-gate`. Package description and README integration example match: REVIEW/UNVERIFIED first; ALLOW/DENY kept as reserved contract branches.
|
|
12
|
+
|
|
7
13
|
## [0.3.3] - 2026-06-08
|
|
8
14
|
|
|
9
15
|
### Changed
|
|
10
16
|
|
|
11
|
-
- **Recommended install now rides `@latest`.** The docs wire `npx -y mcp-server-mcpindex@latest` so the host fetches the newest discovery server on each restart — no manual upgrade step. This server is the *advisory* recommender (`recommend_mcp_for_task` / `check_tool_trust` / `assess_server`), **not** the in-path drift gate, so it carries no version pin (the gate, `mcpindex-
|
|
17
|
+
- **Recommended install now rides `@latest`.** The docs wire `npx -y mcp-server-mcpindex@latest` so the host fetches the newest discovery server on each restart — no manual upgrade step. This server is the *advisory* recommender (`recommend_mcp_for_task` / `check_tool_trust` / `assess_server`), **not** the in-path drift gate, so it carries no version pin (the gate, `mcpindex-gate`, stays pinned + notify-only on purpose). The startup update notice already prints the exact `npm i -g …@latest` command for anyone who pins.
|
|
12
18
|
|
|
13
19
|
## [0.3.2] - 2026-06-08
|
|
14
20
|
|
package/README.md
CHANGED
|
@@ -10,6 +10,20 @@ A drop-in MCP server that lets your agent discover, compare, install, and pre-fl
|
|
|
10
10
|
npm install -g mcp-server-mcpindex
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
+
This is the **directory / advisory** client (recommend, search, trust). It does **not** install the in-path drift gate — that is `curl -fsSL https://mcpindex.ai/install.sh | sh`.
|
|
14
|
+
|
|
15
|
+
### Claude Code
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
claude mcp add --scope user mcpindex -- npx -y mcp-server-mcpindex@latest
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Gemini CLI
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
gemini mcp add -s user mcpindex npx -y mcp-server-mcpindex@latest
|
|
25
|
+
```
|
|
26
|
+
|
|
13
27
|
## Use it from Claude Desktop
|
|
14
28
|
|
|
15
29
|
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
@@ -64,14 +78,14 @@ npx -y mcp-server-mcpindex@latest
|
|
|
64
78
|
| --- | --- |
|
|
65
79
|
| `recommend_mcp_for_task` | Pass a natural-language task. Returns top 3 servers with reasoning, install commands, quality scores. |
|
|
66
80
|
| `search_mcp_servers` | Keyword + semantic search across the full registry. Optional category filter. |
|
|
67
|
-
| `get_install_command` | Get the exact install JSON for a server +
|
|
81
|
+
| `get_install_command` | Get the exact install JSON/CLI for a server + client (Claude Desktop, Claude Code, Cursor, Gemini CLI, Cline, Zed). |
|
|
68
82
|
| `compare_servers` | Side-by-side comparison of 2-5 servers - quality scores, install paths, env vars. |
|
|
69
83
|
| `check_tool_trust` | Pre-invocation advisory verdict for a specific tool on a server. Fail-CLOSED: returns UNVERIFIED when no verdict on file. |
|
|
70
84
|
| `assess_server` | Aggregated pre-flight verdict across all tools on a server. Same shape as `check_tool_trust`. |
|
|
71
85
|
|
|
72
|
-
## Agent-framework integration: pre-invocation
|
|
86
|
+
## Agent-framework integration: advisory pre-invocation screen
|
|
73
87
|
|
|
74
|
-
`check_tool_trust` is the integration surface
|
|
88
|
+
`check_tool_trust` is the **directory client** integration surface (not the in-path `mcpindex-gate`). It lets agent frameworks (Composio, Mastra, LangChain, DSPy, raw LLM-tool-call loops) ask for an advisory screen verdict before dispatching a call. At v1 you will see REVIEW or UNVERIFIED — not a safety clearance.
|
|
75
89
|
|
|
76
90
|
### Verdict contract (v1)
|
|
77
91
|
|
|
@@ -132,16 +146,9 @@ async function gateToolCall({ serverId, toolName, invoke, askHuman }) {
|
|
|
132
146
|
audit.log({ verdict, caveats: verdict.honest_limits });
|
|
133
147
|
|
|
134
148
|
switch (verdict.directive) {
|
|
135
|
-
case 'ALLOW':
|
|
136
|
-
return invoke();
|
|
137
|
-
|
|
138
|
-
case 'DENY':
|
|
139
|
-
throw new Error(
|
|
140
|
-
`mcpindex denied ${serverId}/${toolName}: ${JSON.stringify(verdict.dimensions)}`,
|
|
141
|
-
);
|
|
142
|
-
|
|
143
149
|
case 'REVIEW':
|
|
144
150
|
// Fail-CLOSED to human. Do NOT auto-execute on REVIEW.
|
|
151
|
+
// At v1 this is the common screened outcome (semantic-only).
|
|
145
152
|
return askHuman({ verdict, action: `${serverId}/${toolName}` });
|
|
146
153
|
|
|
147
154
|
case 'UNVERIFIED':
|
|
@@ -153,6 +160,17 @@ async function gateToolCall({ serverId, toolName, invoke, askHuman }) {
|
|
|
153
160
|
note: 'No trust verdict on file. Human review required before first use.',
|
|
154
161
|
});
|
|
155
162
|
|
|
163
|
+
case 'ALLOW':
|
|
164
|
+
// Reserved in the contract — not produced by the v1 public screen.
|
|
165
|
+
// Keep the branch for future conformance-earned ALLOW; do not expect it today.
|
|
166
|
+
return invoke();
|
|
167
|
+
|
|
168
|
+
case 'DENY':
|
|
169
|
+
// Reserved in the contract — not produced by the v1 public screen.
|
|
170
|
+
throw new Error(
|
|
171
|
+
`mcpindex denied ${serverId}/${toolName}: ${JSON.stringify(verdict.dimensions)}`,
|
|
172
|
+
);
|
|
173
|
+
|
|
156
174
|
default:
|
|
157
175
|
// Unknown directive. Fail-CLOSED.
|
|
158
176
|
return askHuman({ verdict, action: `${serverId}/${toolName}` });
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-server-mcpindex",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"description": "An MCP server for finding MCP servers, plus advisory
|
|
3
|
+
"version": "0.3.5",
|
|
4
|
+
"description": "An MCP server for finding MCP servers, plus advisory screen verdicts (check_tool_trust, assess_server). Directory client — not the in-path gate (mcpindex-gate). Drop-in for Claude Desktop, Claude Code, Cursor, Gemini CLI, Cline, Zed.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
7
7
|
"model-context-protocol",
|
|
8
8
|
"claude",
|
|
9
9
|
"cursor",
|
|
10
|
+
"gemini",
|
|
10
11
|
"agent",
|
|
11
12
|
"discovery",
|
|
12
13
|
"trust",
|
package/src/index.mjs
CHANGED
|
@@ -78,7 +78,7 @@ const TOOLS = [
|
|
|
78
78
|
},
|
|
79
79
|
client: {
|
|
80
80
|
type: 'string',
|
|
81
|
-
enum: ['claude-desktop', 'cursor', 'cline', 'zed'],
|
|
81
|
+
enum: ['claude-desktop', 'claude-code', 'cursor', 'gemini-cli', 'cline', 'zed'],
|
|
82
82
|
description: 'Target client.',
|
|
83
83
|
},
|
|
84
84
|
},
|
|
@@ -106,7 +106,7 @@ const TOOLS = [
|
|
|
106
106
|
{
|
|
107
107
|
name: 'check_tool_trust',
|
|
108
108
|
description:
|
|
109
|
-
'Pre-invocation
|
|
109
|
+
'Pre-invocation advisory screen for a specific tool on an MCP server. Returns an advisory verdict object (directive ALLOW | DENY | REVIEW | UNVERIFIED, dimensions, freshness). At v1 the public screen produces REVIEW or UNVERIFIED only — ALLOW/DENY are reserved. Not the in-path gate (mcpindex-gate). Agents SHOULD treat UNVERIFIED as "human review required", never as ALLOW.',
|
|
110
110
|
inputSchema: {
|
|
111
111
|
type: 'object',
|
|
112
112
|
properties: {
|
package/src/update-check.mjs
CHANGED
|
@@ -50,7 +50,7 @@ export function formatUpdateMessage(current, latest) {
|
|
|
50
50
|
`mcp-server-mcpindex ${current} -> ${latest} available. ` +
|
|
51
51
|
`Update: npm i -g mcp-server-mcpindex@latest ` +
|
|
52
52
|
`(or npx fetches it on next launch), then restart your MCP host ` +
|
|
53
|
-
`(Claude Desktop / Cursor / Cline / Zed) to load it.`
|
|
53
|
+
`(Claude Desktop / Claude Code / Cursor / Gemini CLI / Cline / Zed) to load it.`
|
|
54
54
|
);
|
|
55
55
|
}
|
|
56
56
|
|