Skip to content

Commit 2909249

Browse files
Anuj ShrivastavaAnuj Shrivastava
authored andcommitted
docs: improve diagrams, remove VS Code Copilot section, update contacts
Signed-off-by: Anuj Shrivastava <anujshrivastava@Anujs-MacBook-Pro-691.local>
1 parent 4d0dc0a commit 2909249

1 file changed

Lines changed: 56 additions & 47 deletions

File tree

README.md

Lines changed: 56 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Verify MCP Server bridges **Large Language Models (LLMs)** and **IBM Security Ve
1414
| ~50,000 tokens/request | **~2,000 tokens/request** |
1515
| Context overflow risk | Fits any LLM context |
1616

17-
Works with any MCP-compatible client: VS Code Copilot, Claude Desktop, custom AI agents, or direct HTTP calls.
17+
Works with any MCP-compatible client: Claude Desktop, VS Code, custom AI agents, or direct HTTP calls.
1818

1919
---
2020

@@ -82,10 +82,12 @@ That's it — the MCP server is running and ready to use.
8282

8383
The LLM follows a **discover → inspect → execute** pattern:
8484

85-
```
86-
1. verify_discover("users") → finds user-related endpoints
87-
2. verify_get_api_details("getUsers") → gets params, body schema, auth requirements
88-
3. verify_execute("GET", "/v2.0/Users") → returns actual user data
85+
```mermaid
86+
flowchart LR
87+
S1["① verify_discover\n───────────\nsearch: 'users'\n→ matching endpoints"] --> S2["② verify_get_api_details\n───────────\nendpoint_id: getUsers\n→ full param schema"] --> S3["③ verify_execute\n───────────\nGET /v2.0/Users\n→ actual user data"]
88+
style S1 fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
89+
style S2 fill:#fef3c7,stroke:#f59e0b,color:#451a03
90+
style S3 fill:#d1fae5,stroke:#10b981,color:#064e3b
8991
```
9092

9193
After the first discovery, the LLM **learns the pattern** and stops calling discover — further reducing tokens in multi-turn conversations.
@@ -146,21 +148,6 @@ curl -X POST http://localhost:8004/tools/call \
146148
curl http://localhost:8004/tools
147149
```
148150

149-
### With VS Code Copilot (SSE Mode)
150-
151-
Add to `.vscode/mcp.json` in your workspace:
152-
153-
```json
154-
{
155-
"servers": {
156-
"verify": {
157-
"type": "sse",
158-
"url": "http://localhost:8004/sse"
159-
}
160-
}
161-
}
162-
```
163-
164151
### With Claude Desktop (stdio Mode)
165152

166153
Add to your Claude Desktop MCP config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
@@ -259,7 +246,7 @@ docker run -d --name verify-mcp -p 8004:8004 \
259246

260247
```mermaid
261248
flowchart TB
262-
subgraph CLIENT["MCP Client (LLM / VS Code Copilot / Claude Desktop)"]
249+
subgraph CLIENT["MCP Client (LLM / Claude Desktop / AI Agents)"]
263250
U([User Prompt])
264251
end
265252
@@ -277,8 +264,8 @@ flowchart TB
277264
278265
subgraph AUTH["OAuth2 Token Handling"]
279266
direction LR
280-
CC["client_credentials Grant\n→ /v1.0/endpoint/default/token\n→ Bearer Token"]
281-
CACHE["Token Cache\nAuto-refresh before\nexpiry"]
267+
CC["client_credentials Grant\n→ /v1.0/endpoint/default/token\n→ Bearer Token"]
268+
CACHE["Token Cache\nAuto-refresh before\nexpiry"]
282269
end
283270
284271
CC --> CACHE
@@ -297,9 +284,9 @@ flowchart TB
297284
end
298285
end
299286
300-
U -->|"HTTP/SSE or stdio"| T
301-
T --> T1 & T2 & T3 & T4
302-
T1 & T2 & T3 & T4 -->|"HTTPS + Bearer token"| API
287+
U -->|"HTTP/SSE or stdio"| T
288+
T -->|"③ dispatch to tool"| T1 & T2 & T3 & T4
289+
T1 & T2 & T3 & T4 -->|"HTTPS + Bearer token"| API
303290
API --- CATEGORIES
304291
```
305292

@@ -311,40 +298,62 @@ sequenceDiagram
311298
participant MCP as MCP Server
312299
participant Verify as IBM Verify API
313300
314-
Note over MCP: OAuth2 client_credentials grant
315-
MCP->>Verify: POST /v1.0/endpoint/default/token
316-
Verify-->>MCP: Bearer token (cached)
301+
rect rgb(240, 248, 255)
302+
Note over MCP,Verify: Step ① Auth — OAuth2 client_credentials grant
303+
MCP->>Verify: POST /v1.0/endpoint/default/token
304+
Verify-->>MCP: Bearer token (cached, auto-refreshed)
305+
end
317306
318-
User->>MCP: verify_discover(search="users")
319-
MCP-->>User: Matching endpoints with schemas
307+
rect rgb(255, 251, 235)
308+
Note over User,MCP: Step ② Discover — find relevant endpoints
309+
User->>MCP: verify_discover(search="users")
310+
MCP-->>User: Matching endpoints with schemas
311+
end
320312
321-
User->>MCP: verify_get_api_details(endpoint_id="getUsers")
322-
MCP-->>User: Full params: count, startIndex, filter, sortBy...
313+
rect rgb(255, 243, 205)
314+
Note over User,MCP: Step ③ Inspect — get full parameter schema
315+
User->>MCP: verify_get_api_details(endpoint_id="getUsers")
316+
MCP-->>User: Full params: count, startIndex, filter, sortBy...
317+
end
323318
324-
User->>MCP: verify_execute(method="GET", endpoint="/v2.0/Users", params={count: 10})
325-
MCP->>Verify: GET /v2.0/Users?count=10 [Bearer token]
326-
Verify-->>MCP: SCIM user list
327-
MCP-->>User: JSON results
319+
rect rgb(209, 250, 229)
320+
Note over User,Verify: Step ④ Execute — read
321+
User->>MCP: verify_execute(method="GET", endpoint="/v2.0/Users", params={count: 10})
322+
MCP->>Verify: GET /v2.0/Users?count=10 [Bearer token]
323+
Verify-->>MCP: SCIM user list
324+
MCP-->>User: JSON results
325+
end
328326
329-
User->>MCP: verify_execute(method="POST", endpoint="/v2.0/Users", body={...})
330-
MCP->>Verify: POST /v2.0/Users [Bearer token]
331-
Verify-->>MCP: Created user
332-
MCP-->>User: New user details
327+
rect rgb(220, 240, 255)
328+
Note over User,Verify: Step ⑤ Execute — write
329+
User->>MCP: verify_execute(method="POST", endpoint="/v2.0/Users", body={...})
330+
MCP->>Verify: POST /v2.0/Users [Bearer token]
331+
Verify-->>MCP: Created user
332+
MCP-->>User: New user details
333+
end
333334
```
334335

335336
### Token Efficiency
336337

337338
```mermaid
338339
graph LR
339-
subgraph NAIVE["❌ Naive: 1 Tool per Endpoint"]
340-
A["200+ tool definitions\n~50,000 tokens/request\nContext overflow"]
340+
subgraph NAIVE["❌ Without Verify MCP Server"]
341+
direction TB
342+
NA["200+ tool definitions"]
343+
NB["🔴 ~50,000 tokens per request"]
344+
NC["🔴 Context window overflow"]
345+
ND["🔴 LLM must choose from 200+ tools"]
341346
end
342347
343-
subgraph META["✅ Meta-Tool Pattern"]
344-
B["4 tool definitions\n~2,000 tokens/request\n98% reduction"]
348+
subgraph META["✅ With Verify MCP Server"]
349+
direction TB
350+
MA["4 tool definitions"]
351+
MB["🟢 ~2,000 tokens per request"]
352+
MC["🟢 Fits any LLM context window"]
353+
MD["🟢 10-turn chat saves ~480,000 tokens"]
345354
end
346355
347-
NAIVE -.->|"replaced by"| META
356+
NAIVE -.->|"98% token reduction"| META
348357
```
349358

350359
In a **10-turn conversation**, this saves approximately **480,000 tokens** compared to the per-endpoint approach.
@@ -362,7 +371,7 @@ In a **10-turn conversation**, this saves approximately **480,000 tokens** compa
362371
**Need help?**
363372

364373
- Check container logs: `docker logs verify-mcp`
365-
- Contact: [ashrivastava@in.ibm.com](mailto:ashrivastava@in.ibm.com), [rahul.k.p@ibm.com](mailto:rahul.k.p@ibm.com)
374+
- Contact: [ashrivastava@in.ibm.com](mailto:ashrivastava@in.ibm.com), [Suraj.Kanth@ibm.com](mailto:Suraj.Kanth@ibm.com)
366375

367376
---
368377

0 commit comments

Comments
 (0)