Documentation Index
Fetch the complete documentation index at: https://docs.igrisecurity.com/llms.txt
Use this file to discover all available pages before exploring further.
MCP Client Config
The SDK’s connectHttp() generates a URL + headers that work with any MCP client supporting HTTP transport.
SDK Usage (Programmatic)
For apps that create MCP connections dynamically:
import { Igris } from "@igris-security/sdk";
const igris = new Igris({ apiKey: process.env.IGRIS_API_KEY! });
const config = igris.connectHttp("github-prod", {
user: currentUser.email,
metadata: { role: currentUser.role },
});
// config = { baseUrl, apiKey, headers }
// Pass baseUrl + headers to your MCP client, and add the Authorization header
// from config.apiKey:
const client = new McpClient({
transport: new StreamableHttpTransport(config.baseUrl, {
headers: {
Authorization: `Bearer ${config.apiKey}`,
...config.headers,
},
}),
});
const tools = await client.listTools();
const result = await client.callTool("create_branch", { name: "feat/new" });
For direct, programmatic tool calls without wiring up an external MCP client, use the
igris.mcp resource — initialize, listTools, and callTool.
Claude Desktop
Add to your Claude Desktop config (~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"github": {
"url": "https://api.igrisecurity.com/v1/mcp/github-prod",
"headers": {
"Authorization": "Bearer ig_your_api_key",
"X-Igris-User": "alice@company.com",
"X-Igris-Metadata": "{\"role\":\"developer\"}"
}
}
}
}
Cursor
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"github": {
"url": "https://api.igrisecurity.com/v1/mcp/github-prod",
"headers": {
"Authorization": "Bearer ig_your_api_key",
"X-Igris-User": "alice@company.com",
"X-Igris-Metadata": "{\"role\":\"developer\"}"
}
}
}
}
Claude Code
Add to ~/.claude.json or .mcp.json:
{
"mcpServers": {
"github": {
"type": "url",
"url": "https://api.igrisecurity.com/v1/mcp/github-prod",
"headers": {
"Authorization": "Bearer ig_your_api_key",
"X-Igris-User": "alice@company.com",
"X-Igris-Metadata": "{\"role\":\"developer\"}"
}
}
}
}
VS Code
Add to .vscode/mcp.json:
{
"servers": {
"github": {
"type": "sse",
"url": "https://api.igrisecurity.com/v1/mcp/github-prod",
"headers": {
"Authorization": "Bearer ig_your_api_key",
"X-Igris-User": "alice@company.com",
"X-Igris-Metadata": "{\"role\":\"developer\"}"
}
}
}
}
X-Igris-User and X-Igris-Metadata are optional. They’re useful when you want
per-user policy decisions and per-user audit attribution. The Authorization header
is required.
Multiple Connections
You can use multiple connections — each points to a different upstream MCP server:
const github = igris.connectHttp("github-prod", { user: "alice" });
const slack = igris.connectHttp("slack-prod", { user: "alice" });
const notion = igris.connectHttp("notion-prod", { user: "alice" });
Each gets its own gateway URL, policies, and audit trail.
Self-Hosted
For self-hosted Igris deployments, set the baseUrl:
const igris = new Igris({
apiKey: "ig_...",
baseUrl: "https://igris.your-company.internal",
});
The gateway URL will use your domain: https://igris.your-company.internal/v1/mcp/github-prod