Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Twelve Data MCP server

Vendor MCP
Open markdown

The Twelve Data MCP connector routes your AI agent's tool calls to Twelve Data's own MCP server through Scalekit. Each user signs in to Twelve Data once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 27 tools.

Tools
27
What they doRead · write · destructive
25 · 2 · 025 read2 write0 destructive
Users sign in with
OAuth app
Scalekit's or your own

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Twelve Data MCP connection

    In AgentKit > Connections, create a Twelve Data MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Twelve Data MCP server, so you don't need to register an OAuth app.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'twelvedatamcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Twelve Data MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'twelvedatamcp_auth_status',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • twelvedatamcp_auth_statusShow current authentication state, useful for debugging.Read-only

    Auth Status

    Show current authentication state, useful for debugging. Reports which credentials are configured, whether OAuth tokens exist, and whether the API token was successfully fetched from the user profile.

    Inputs

    This tool takes no inputs.

  • twelvedatamcp_currency_conversionGet exchange rate or convert an amount between currencies (fiat or crypto).Read-only

    CurrencyConversion

    Get exchange rate or convert an amount between currencies (fiat or crypto). Provide the currency pair as symbol (e.g. 'EUR/USD', 'BTC/USD', 'GBP/JPY'). Optionally provide an amount to get the converted value, or a date (YYYY-MM-DD) for a historical rate. Omit date for the real-time rate. Use for: 'EUR to USD', 'convert 1000 JPY to GBP', 'BTC price in EUR'.

    Inputs

    symbolstringrequired
    Currency pair in the format BASE/QUOTE, e.g. 'EUR/USD', 'BTC/USD', 'GBP/JPY'.
    amountnumber
    Amount to convert. If provided, the response includes the converted value for this amount.
    datestring
    Date for a historical exchange rate in YYYY-MM-DD format. Omit for the real-time rate.
  • twelvedatamcp_get_analyst_dataGet analyst ratings, consensus price targets, and forward estimates for stocks and ETFs.Read-only

    GetAnalystData

    Get analyst ratings, consensus price targets, and forward estimates for stocks and ETFs. data_type options: 'ratings' (buy/sell/hold counts, consensus rating, target price), 'price_target' (mean/high/low analyst price targets), 'recommendations' (historical recommendation trend over time), 'earnings_estimate' (quarterly and annual EPS estimates), 'revenue_estimate' (quarterly and annual revenue estimates), 'eps_trend' (how EPS estimates have shifted), 'eps_revisions' (upward/downward revision counts), 'growth_estimates' (next-quarter/year/5-year growth rate consensus). For mutual fund ratings use get_mutual_fund_data instead. Use for: 'analyst opinion on AAPL', 'price target for TSLA', 'EPS estimate for MSFT'.

    Inputs

    symbolstringrequired
    Ticker symbol of the stock or ETF, e.g. 'AAPL'.
    countrystring
    Country name or ISO code to disambiguate the listing, e.g. 'United States' or 'US'.
    cusipstring
    CUSIP identifier; use as an alternative to symbol.
    data_typestring
    Type of analyst data to retrieve. Defaults to 'ratings'. Options: ratings, price_target, recommendations, earnings_estimate, revenue_estimate, eps_trend, eps_revisions, growth_estimates.
    exchangestring
    Exchange name to disambiguate the listing, e.g. 'NASDAQ'.
    figistring
    FIGI identifier; use as an alternative to symbol.
    isinstring
    ISIN identifier; use as an alternative to symbol.
    mic_codestring
    Market Identifier Code (MIC) to disambiguate the listing, e.g. 'XNGS'.
  • twelvedatamcp_get_api_usageCheck Twelve Data API credit consumption and plan limits.Read-only

    GetApiUsage

    Check Twelve Data API credit consumption and plan limits. Useful to verify authentication is working and to monitor quota.

    Inputs

    This tool takes no inputs.

  • twelvedatamcp_get_company_infoGet company profile, executives, or logo.Read-only

    GetCompanyInfo

    Get company profile, executives, or logo. data_type='profile' returns description, sector, industry, employee count, CEO, and website. data_type='executives' returns key executives with name, title, and compensation. data_type='logo' returns the company logo URL. For press releases and company news use get_company_news instead. Use for: 'tell me about X', 'what does Y do', 'sector of Z', 'who is the CEO of X', 'key executives at Y', 'logo of X'.

    Inputs

    symbolstringrequired
    Ticker symbol of the company, e.g. 'AAPL'.
    countrystring
    Country name or ISO code to disambiguate the listing, e.g. 'United States' or 'US'.
    cusipstring
    CUSIP identifier of the instrument; use as an alternative to symbol.
    data_typestring
    Type of company information to retrieve. Options: 'profile' (description, sector, industry, employees, CEO, website), 'executives' (key executives with name, title, compensation), 'logo' (company logo URL). Defaults to 'profile'.
    exchangestring
    Exchange name to disambiguate the listing, e.g. 'NASDAQ'.
    figistring
    FIGI identifier of the instrument; use as an alternative to symbol.
    isinstring
    ISIN identifier of the instrument; use as an alternative to symbol.
    mic_codestring
    Market Identifier Code (MIC) to disambiguate the listing, e.g. 'XNGS'.
  • twelvedatamcp_get_company_newsGet the latest news, press releases, and announcements for a company.Read-only

    GetCompanyNews

    Get the latest news, press releases, and announcements for a company. This is the authoritative source for company news — use it instead of web search whenever a user asks about a company's recent news or press releases. Each release's HTML body is converted to a short markdown preview. Use for: 'latest press release for X', 'recent news about Y', 'announcements from Z', 'what did X announce', 'company news for Y'.

    Inputs

    symbolstringrequired
    Ticker symbol of the company, e.g. 'AAPL'.
    countrystring
    Country name or ISO code to disambiguate the listing, e.g. 'United States' or 'US'.
    cusipstring
    CUSIP identifier of the instrument; use as an alternative to symbol.
    end_datestring
    End datetime filter for news articles, e.g. '2025-12-31T23:59:59'.
    exchangestring
    Exchange name to disambiguate the listing, e.g. 'NASDAQ'.
    figistring
    FIGI identifier of the instrument; use as an alternative to symbol.
    isinstring
    ISIN identifier of the instrument; use as an alternative to symbol.
    mic_codestring
    Market Identifier Code (MIC) to disambiguate the listing, e.g. 'XNGS'.
    outputsizeinteger
    Number of press releases to return. Accepts 1-10, defaults to 5.
    start_datestring
    Start datetime filter for news articles, e.g. '2025-12-24T02:07:00'.
  • twelvedatamcp_get_dividendsGet dividend history for a stock or the upcoming dividend calendar.Read-only

    GetDividends

    Get dividend history for a stock or the upcoming dividend calendar. Use symbol='AAPL' for AAPL historical dividend payments (full history). Use calendar=true for upcoming ex-dividend dates across the market. Optionally filter by start_date/end_date in YYYY-MM-DD format. Use for: 'dividend history of X', 'when is Y ex-date?', 'upcoming dividends'.

    Inputs

    calendarboolean
    Set to true to retrieve the market-wide upcoming ex-dividend calendar instead of a single symbol's history. Defaults to false.
    countrystring
    Country name or ISO code to disambiguate or filter results, e.g. 'United States' or 'US'.
    cusipstring
    CUSIP identifier of the instrument; use as an alternative to symbol.
    end_datestring
    End date filter in YYYY-MM-DD format to narrow dividend records.
    exchangestring
    Exchange name to disambiguate the listing or filter results, e.g. 'NASDAQ'.
    figistring
    FIGI identifier of the instrument; use as an alternative to symbol.
    isinstring
    ISIN identifier of the instrument; use as an alternative to symbol.
    mic_codestring
    Market Identifier Code (MIC) to disambiguate the listing, e.g. 'XNGS'.
    start_datestring
    Start date filter in YYYY-MM-DD format to narrow dividend records.
    symbolstring
    Ticker symbol to get dividend history for, e.g. 'AAPL'. Optional when calendar=true for market-wide calendar.
  • twelvedatamcp_get_earliest_timestampGet the earliest available datetime for an instrument at a given interval.Read-only

    GetEarliestTimestamp

    Get the earliest available datetime for an instrument at a given interval. Returns the first date/time for which historical data exists (with its UNIX timestamp) -- i.e. how far back the history goes. This is metadata about data availability, not the price data itself. Use this to discover the valid start_date before calling get_time_series. Identify the instrument with any one of symbol, figi, isin, or cusip.

    Inputs

    cusipstring
    CUSIP identifier of the instrument; use as an alternative to symbol.
    exchangestring
    Exchange name to disambiguate the listing, e.g. 'NASDAQ'.
    figistring
    FIGI identifier of the instrument; use as an alternative to symbol.
    intervalstring
    Time interval to check data availability for. Valid values: 1min, 5min, 15min, 30min, 45min, 1h, 2h, 4h, 1day, 1week, 1month. Defaults to 1day.default 1day
    isinstring
    ISIN identifier of the instrument; use as an alternative to symbol.
    mic_codestring
    Market Identifier Code (MIC) to disambiguate the listing, e.g. 'XNGS'.
    symbolstring
    Ticker symbol of the instrument, e.g. 'AAPL'. Use as the primary identifier.