Skip to content

MCP Gateway URL

DeepIntShield can act as an MCP server, exposing the connected MCP tools allowed for an authenticated Virtual Key to external clients such as Claude Desktop, Cursor, or any other MCP-compatible application.

This enables a powerful pattern:

  • Connect DeepIntShield to multiple MCP servers (filesystem, web search, databases, etc.)
  • Expose the key’s allowed tools through a single MCP endpoint
  • External clients connect to DeepIntShield and receive that key’s filtered catalogue

Diagram


EndpointMethodPurpose
/mcpPOSTJSON-RPC 2.0 messages for tool discovery and execution
/mcpGETServer-Sent Events (SSE) for persistent connections

Handle JSON-RPC 2.0 messages for tool listing and execution:

Terminal window
# List available tools
curl -X POST https://app.deepintshield.com/mcp \
-H "Authorization: Bearer sk-ds-your-virtual-key" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'
# Call a tool
curl -X POST https://app.deepintshield.com/mcp \
-H "Authorization: Bearer sk-ds-your-virtual-key" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "filesystem-read_file",
"arguments": {
"path": "/tmp/test.txt"
}
}
}'

Establish a persistent SSE connection for real-time communication:

Terminal window
curl -N https://app.deepintshield.com/mcp \
-H "Authorization: Bearer sk-ds-your-virtual-key" \
-H "Accept: text/event-stream"

The SSE endpoint sends:

  • connection/opened message on connect
  • Keeps connection alive until client disconnects

The /mcp endpoint supports any MCP-compatible client that can communicate via HTTP or SSE:

  • Claude Desktop - macOS and Windows desktop application
  • Cursor - IDE with MCP support
  • Custom Applications - Any app implementing the MCP protocol
  • Browser Extensions - Tools with MCP client capability

To connect an external MCP client, configure it to connect to:

https://app.deepintshield.com/mcp

Include a valid Virtual Key authentication header (Authorization: Bearer sk-ds-your-virtual-key) so the gateway can resolve the tools available to that key. Anonymous access is not supported.


Every /mcp request requires a valid, active Virtual Key persisted in DeepIntShield. Each key receives its own filtered MCP server. A key with no MCP client binding receives an empty catalogue; use an explicit * tool rule on a bound client when that key should receive every tool from that client.

Authenticate with Virtual Key (Virtual Keys start with the sk-ds- prefix):

Terminal window
# Via Authorization header
curl -X POST https://app.deepintshield.com/mcp \
-H "Authorization: Bearer sk-ds-your-virtual-key" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'
# Via x-api-key header
curl -X POST https://app.deepintshield.com/mcp \
-H "x-api-key: sk-ds-your-virtual-key" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'
# Via x-deepintshield-vk header
curl -X POST https://app.deepintshield.com/mcp \
-H "x-deepintshield-vk: sk-ds-your-virtual-key" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'
# Via x-goog-api-key header
curl -X POST https://app.deepintshield.com/mcp \
-H "x-goog-api-key: sk-ds-your-virtual-key" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'

When Agentic-New GAF is enabled, the key must also resolve one enabled governed agent in the active workspace. Send X-Agent-Subject when the key is associated with multiple agents. If the selected agent uses an identity provider, send its verified child workload credential in X-Agent-Token. Tool execution then requires the same canonical GAF Allow as POST /v1/mcp/tool/execute; a Deny, pending approval, or unavailable authorization dependency is returned as an MCP tool error result.

Claude Desktop with Virtual Key:

{
"mcpServers": {
"deepintshield-production": {
"url": "https://app.deepintshield.com/mcp",
"headers": {
"Authorization": "Bearer sk-ds-your-production-key"
}
},
"deepintshield-development": {
"url": "https://app.deepintshield.com/mcp",
"headers": {
"Authorization": "Bearer sk-ds-your-development-key"
}
}
}
}

Control which tools are exposed to MCP clients using Virtual Keys:

Configure which tools each Virtual Key can access from the Virtual Keys section of the Web UI: create or edit a key and, under MCP Client Configurations, add the clients and the tools that key may use. For example, a production key might be limited to read_file and list_directory on a filesystem client while allowing all tools (*) on a web_search client.

Learn more about Virtual Key tool filtering in MCP Tool Filtering.


DeepIntShield monitors connected MCP clients for you. If a client stops responding it is marked disconnected, its tools drop out of the aggregated registry, and DeepIntShield reconnects it in the background - external clients see the tools return automatically once it recovers. You can choose the check method per client with the is_ping_available toggle (see Connecting to MCP Servers).

To force a reconnection yourself, open the client under Agentic → MCP Registry and click Reconnect.

For Agent Mode operations, DeepIntShield tags each intermediate tool-execution step with its own request ID, so autonomous tool runs produce detailed, per-step audit trails. See Agent Mode for details.

The tools exposed through the gateway stay in sync automatically. When you connect a new client, a connected server’s tool list changes, or you edit a client’s tools_to_execute, the change is reflected for external MCP clients without them needing to reconnect - they always see the current, filtered set of tools.


The server requires a valid Virtual Key on every /mcp request. Bind only the MCP clients and tools that external client needs, keep the key active only for its intended lifetime, and rotate it through the Virtual Key controls.

All traffic to https://app.deepintshield.com/mcp is served over TLS - always use the https:// endpoint so credentials and tool traffic stay encrypted in transit.

Use Virtual Keys to limit which tools each client can access. Follow the principle of least privilege.

Use per-Virtual Key access controls to limit which clients can reach the MCP endpoint and which tools they can call.


Claude Desktop not connecting
  1. Verify the URL is correct and DeepIntShield is running
  2. Check if DeepIntShield is accessible from Claude Desktop’s network
  3. Restart Claude Desktop after configuration changes
  4. Check DeepIntShield logs for connection attempts
No tools showing up
  1. Verify MCP clients are connected in DeepIntShield
  2. Check that tools_to_execute includes the expected tools
  3. If using Virtual Keys, verify the VK has MCP tool access configured
Virtual Key authentication failing
  1. Ensure the Virtual Key exists and is active
  2. Check the header format (Bearer prefix for Authorization)
  3. Verify the key has an explicit MCP client/tool binding; no binding exposes no tools
  4. When GAF is enabled, verify the governed-agent association, selector, and workload proof

Tool Filtering

Control which tools are available per request

Open →

Virtual Key MCP Tools

Configure per-VK tool access

Open →