Skip to main content

MCP Server Overview

Haptic implements the Model Context Protocol (MCP), an open standard that enables AI assistants to securely access external data sources and tools.

What is MCP?

The Model Context Protocol is a standardized way for AI assistants to:
  • Discover available tools and data sources
  • Request access to external APIs
  • Receive structured responses
  • Maintain secure, authenticated connections
Think of it as a universal adapter that lets any MCP-compatible AI talk to any MCP server.

How Haptic Uses MCP

Haptic acts as an MCP server that bridges your AI assistant with your financial data:
Your AI Assistant  ←→  Haptic MCP Server  ←→  Plaid  ←→  Your Bank

The Flow

  1. Your AI makes a request (e.g., “What’s my net worth?”)
  2. Haptic’s MCP server receives the request
  3. Haptic queries Plaid for your financial data
  4. Plaid connects to your bank securely
  5. Data flows back through the chain
  6. Your AI receives structured financial information

MCP Endpoint

Production URL: https://mcp.haptic.sh/mcp This is the only URL you need to configure in your AI assistant. It handles:
  • OAuth authorization flow
  • API token validation
  • Tool discovery
  • Request routing
  • Response formatting
The /mcp endpoint supports both OAuth 2.0 (Claude Desktop, ChatGPT) and Bearer token authentication (custom AI assistants).

Available Tools

Haptic exposes three financial data tools via MCP:

Security

Authentication

Every request to the MCP server must be authenticated:
  • OAuth 2.0: Automatic authorization flow for Claude Desktop and ChatGPT
  • Bearer Token: Manual API tokens (format: hap_...) for custom AI assistants

Data Protection

  • Encrypted at rest: Plaid access tokens use AES-256-CBC encryption
  • Encrypted in transit: All connections use HTTPS/TLS
  • Hashed tokens: MCP API tokens are hashed with SHA-256 (one-way)
  • Read-only access: Haptic can only read data, never modify accounts or move money

Privacy

Haptic follows a minimal data approach:
  • ✅ Store: User ID, encrypted Plaid tokens, account metadata
  • ❌ Never store: Account balances, transaction details, banking credentials

How AI Assistants Use MCP

When properly configured, your AI can:
  1. Discover tools - See what financial data is available
  2. Make tool calls - Request specific data (e.g., account summary)
  3. Receive responses - Get structured JSON data
  4. Format for users - Present information in natural language

Example Interaction

User: "What's my current net worth?"

AI thinks: I should use the get_account_summary tool

AI calls: get_account_summary()

Haptic returns:
{
  "net_worth": 45230.15,
  "assets": 52000.00,
  "liabilities": 6769.85,
  "accounts": [...]
}

AI responds: "Your current net worth is $45,230.15.
You have $52,000 in assets and $6,769.85 in liabilities."

Supported AI Assistants

Setup: Settings → Developer → Model Context ProtocolAdd server with URL: https://mcp.haptic.sh/mcpAuthorize when prompted - no manual token needed.
Setup: Settings → Beta Features → Model Context ProtocolAdd Haptic with URL: https://mcp.haptic.sh/mcpAuthorize via OAuth - fully automated.

Manual Token Setup

For AI assistants without OAuth support:
  1. Generate token at haptic.sh/dashboard
  2. Configure your AI:
    • Server URL: https://mcp.haptic.sh/mcp
    • API Key: Your generated token (starts with hap_)
See Authentication for detailed instructions.

MCP Specification Compliance

Haptic implements MCP version 1.0 with support for:
  • ✅ Tool discovery via tools/list
  • ✅ Tool execution via tools/call
  • ✅ OAuth 2.0 authorization flow
  • ✅ Bearer token authentication
  • ✅ Structured error responses
  • ✅ JSON-RPC 2.0 message format

Rate Limits

Currently, Haptic does not enforce rate limits on MCP requests. However, reasonable usage is expected:
  • Recommended: Cache responses when appropriate
  • Avoid: Rapid-fire requests (e.g., >10 requests/second)
  • Future: Rate limits may be introduced for fair usage
Your AI assistant should cache recent responses (e.g., account summary) to avoid unnecessary requests.

Next Steps