@@ -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
8383The 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
9193After 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 \
146148curl 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
166153Add 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
261248flowchart 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
338339graph 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
350359In 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