ai.smithery/TakoData-tako-mcp

Provide real-time data querying and visualization by integrating Tako with your agents. Generate o…

2MITai-ml

Install

Config snippet generator goes here (5 client tabs)

README

# Tako MCP Server

An MCP (Model Context Protocol) server that provides access to Tako's knowledge base and interactive data visualizations.

## What is this?

This MCP server enables AI agents to:

- **Search** Tako's knowledge base for charts and data visualizations
- **Fetch** chart preview images and AI-generated insights
- **Render** fully interactive Tako charts via MCP-UI

## Installation

```bash
pip install tako-mcp
```

Or install from source:

```bash
git clone https://github.com/anthropics/tako-mcp.git
cd tako-mcp
pip install -e .
```

## Quick Start

### Get an API Token

Sign up at [trytako.com](https://trytako.com) and create an API token in your account settings.

### Run the Server

```bash
tako-mcp
```

Or with Docker:

```bash
docker build -t tako-mcp .
docker run -p 8001:8001 tako-mcp
```

### Connect Your Agent

Point your MCP client to `http://localhost:8001`.

## Available Tools

### `knowledge_search`

Search Tako's knowledge base for charts and data visualizations.

```json
{
  "query": "Intel vs Nvidia headcount",
  "api_token": "your-api-token",
  "count": 5,
  "search_effort": "deep"
}
```

Returns matching charts with IDs, titles, descriptions, and URLs.

### `get_chart_image`

Get a preview image URL for a chart.

```json
{
  "pub_id": "chart-id",
  "api_token": "your-api-token",
  "dark_mode": true
}
```

### `get_card_insights`

Get AI-generated insights for a chart.

```json
{
  "pub_id": "chart-id",
  "api_token": "your-api-token",
  "effort": "medium"
}
```

Returns bullet-point insights and a natural language description.

### `explore_knowledge_graph`

Discover available entities, metrics, and cohorts.

```json
{
  "query": "tech companies",
  "api_token": "your-api-token",
  "limit": 20
}
```

## ThinViz API - Create Custom Charts

ThinViz lets you create charts with your own data using pre-configured templates.

### `list_chart_schemas`

List available chart templates.

```json
{
  "api_token": "your-api-token"
}
```

Returns schemas like `stock_card`, `bar_chart`, `grouped_bar_chart`.

### `get_chart_schema`

Get detailed info about a schema including required components.

```json
{
  "schema_name": "bar_chart",
  "api_token": "your-api-token"
}
```

### `create_chart`

Create a chart from a template with your data.

```json
{
  "schema_name": "bar_chart",
  "api_token": "your-api-token",
  "source": "Company Reports",
  "components": [
    {
      "component_type": "header",
      "config": {
        "title": "Revenue by Region",
        "subtitle": "Q4 2024"
      }
    },
    {
      "component_type": "categorical_bar",
      "config": {
        "datasets": [{
          "label": "Revenue",
          "data": [
            {"x": "North America", "y": 120},
            {"x": "Europe", "y": 98},
            {"x": "Asia", "y": 156}
          ],
          "units": "$M"
        }],
        "title": "Revenue by Region"
      }
    }
  ]
}
```

Returns the new chart's `card_id`, `embed_url`, and `image_url`.

## MCP-UI - Interactive Charts

### `open_chart_ui`

Open an interactive chart in the UI (MCP-UI).

```json
{
  "pub_id": "chart-id",
  "dark_mode": true,
  "width": 900,
  "height": 600
}
```

Returns a UIResource for rendering an interactive iframe.

## Configuration

Environment variables:

| Variable | Description | Default |
|----------|-------------|---------|
| `TAKO_API_URL` | Tako API endpoint | `https://api.trytako.com` |
| `PUBLIC_BASE_URL` | Public URL for chart embeds | `https://trytako.com` |
| `PORT` | Server port | `8001` |
| `HOST` | Server host | `0.0.0.0` |
| `MCP_ALLOWED_HOSTS` | Additional allowed hosts (comma-separated) | |
| `MCP_ENABLE_DNS_REBINDING` | Enable DNS rebinding protection | `true` |

## Testing

Run the test client:

```bash
python -m tests.test_client --api-token YOUR_API_TOKEN
```

This verifies:
- MCP handshake and initialization
- Tool discovery
- Search, images, and insights
- MCP-UI resource generation

## Example Flow

1. User asks: "Show me a chart about Intel vs Nvidia headcount"
2. Agent calls `knowledge_search` with the query
3. Agent receives chart results with IDs
4. Agent can:
   - Call `get_card_insights` to summarize the data
   - Call `get_chart_image` for a preview
   - Call `open_chart_ui` to render an interactive chart

## Health Checks

- `GET /health` - Simple "ok" response
- `GET /health/detailed` - JSON with status and timestamp

## Architecture

```
AI Agent (LangGraph, CopilotKit, etc.)
    ↓
  MCP Protocol (SSE)
    ↓
Tako MCP Server
    ↓
Tako API
```

The server acts as a thin proxy that:
1. Authenticates requests with your API token
2. Translates MCP tool calls to Tako API requests
3. Returns formatted results and UI resources

## MCP-UI Support

The `open_chart_ui` tool returns an MCP-UI resource that clients can render as an interactive iframe. The embedded chart supports:

- Zooming and panning
- Hover interactions
- Responsive resizing via `postMessage`
- Light and dark themes

Clients that support M