TypeScriptADK-TS

IQ AI's Third-Party MCP Wrappers

Convenient wrappers for popular third-party MCP servers from Anthropic and the community

ADK-TS provides convenience wrappers for popular third-party MCP servers, making them as easy to use as IQ AI's built-in servers. These wrappers follow the same simple configuration pattern.

Community Servers

These are wrappers around MCP servers built by Anthropic and the community. You can also connect to any MCP-compliant server using McpToolset directly.

Learn more about integrating external MCPs →

Market Data

Third-party MCP servers for cryptocurrency market data and analytics.

Productivity

MCP servers for workspace and knowledge management tools.

Utilities

MCP servers for file operations, memory management, and utility functions.

Quick Start

IQ AI's Third-Party MCP Wrappers follow the same simple pattern as IQ AI servers:

import { McpFilesystem, McpMemory, LlmAgent } from "@iqai/adk";

// Initialize filesystem with allowed directories
const filesystemToolset = McpFilesystem({
  env: {
    ALLOWED_DIRECTORIES: "/workspace,/project/data",
  },
});

// Initialize memory (no config needed)
const memoryToolset = McpMemory();

// Get tools
const [fileTools, memoryTools] = await Promise.all([
  filesystemToolset.getTools(),
  memoryToolset.getTools(),
]);

// Create agent with combined tools
const agent = new LlmAgent({
  name: "smart_assistant",
  description: "An assistant with file system and memory capabilities",
  model: "gemini-2.5-flash",
  tools: [...fileTools, ...memoryTools],
});

// Always cleanup
await Promise.all([filesystemToolset.close(), memoryToolset.close()]);

Common Configuration

All IQ AI's Third-Party MCP Wrappers support these configuration options:

OptionTypeDescription
envobjectEnvironment variables (server-specific)
debugbooleanEnable debug logging
descriptionstringCustom description
retryOptions.maxRetriesnumberMax retry attempts (default: 2)
retryOptions.initialDelaynumberInitial retry delay in ms (default: 200)
samplingHandlerSamplingHandlerHandler for MCP sampling requests

Using Other External MCPs

No wrapper for the MCP server you need? Use McpGeneric to connect to any npm-based MCP server with the same config pattern as the built-in wrappers:

import { McpGeneric } from "@iqai/adk";

// Connect to any npm-based MCP server
const toolset = McpGeneric("@some-org/mcp-server-package", {
  env: {
    API_KEY: process.env.API_KEY || "",
  },
});

const tools = await toolset.getTools();

You can also pass a custom display name as a third argument:

const toolset = McpGeneric(
  "@modelcontextprotocol/server-brave-search",
  { env: { BRAVE_API_KEY: process.env.BRAVE_API_KEY || "" } },
  "Brave Search MCP",
);

For more control (SSE transport, custom retry logic, etc.), use McpToolset directly:

import { McpToolset } from "@iqai/adk";

const toolset = new McpToolset({
  name: "Custom MCP Server",
  description: "Any MCP-compliant server",
  transport: {
    mode: "stdio",
    command: "npx",
    args: ["-y", "@some-org/mcp-server-package"],
    env: {
      API_KEY: process.env.API_KEY || "",
      PATH: process.env.PATH || "",
    },
  },
});

const tools = await toolset.getTools();

Learn more about integrating external MCPs →