Nasdaq Data Link MCP server for AI agents

Live

API KEY

FINANCIAL DATA

Accounting & Finance

Nasdaq Data Link gives your agent read access to financial and economic data: search time-series datasets, read their observations with date ranges and transformations, and query rows from data tables with filters.

  • Per-user credentials: each call uses the actual user's API key, never a shared bot.
  • Encrypted per-tenant vault: AES-256, resolved at request time, never in LLM context.
  • Scoped before every call: pre-call scope check, 90-day SIEM-exportable audit chain.
Nasdaq Data Link
agent · Acme Q3
Run
Show the last 12 monthly values of FRED/UNRATE.
S
nasdaqdatalink_get_time_series_data
102ms
Data research agent
US unemployment ranged from 3.9% to 4.3% over the last 12 months and ended the period at 4.1%.
Sources: FRED/UNRATE, 12 observations
nasdaqdatalink
12 rows
18:29
Message Claude...

Tools your data research agent reaches for on Nasdaq Data Link, scoped per user.

CALL ANY TOOL
6 tools for financial data on Nasdaq Data Link: search time-series datasets, read database and dataset metadata, get observations, and query data tables.
nasdaqdatalink_get_database
Get database
Get the metadata of a Nasdaq Data Link time-series database by its code. Returns database.id, name, database_code, description, datasets_count, downloads, premium and url_name. Use nasdaqdatalink_get_database to see what a database such as FRED holds and whether it is premium. Use nasdaqdatalink_search_datasets with database_code to list its datasets.
Parameters
Name
Type
Required
Description
database_code
string
Required
Time-series database code, such as FRED. It is the part before the slash in a dataset code like FRED/GDP.
nasdaqdatalink_get_table_metadata
Get table metadata
nasdaqdatalink_get_time_series_data
Get time series data
nasdaqdatalink_get_time_series_metadata
Get time series metadata
nasdaqdatalink_query_table
Query table
nasdaqdatalink_search_datasets
Search datasets
Build your Agent
Same auth pattern across LangChain, OpenAI, Anthropic, and Google ADK.
Python · LlamaIndex
import { ScalekitClient } from "@scalekit-sdk/node";
import { createReactAgent } from "@langchain/langgraph/prebuilt";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

// Nasdaq Data Link tools scoped to this user
const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["nasdaqdatalink"], toolNames: [
    "nasdaqdatalink_search_datasets",
    "nasdaqdatalink_get_time_series_metadata",
    "nasdaqdatalink_get_time_series_data"] },
  pageSize: 100,
});

const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "Find the US unemployment rate dataset and show the last 24 months" }] });
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const openai = new OpenAI();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["nasdaqdatalink"] }, pageSize: 100,
});

const res = await openai.chat.completions.create({
  model: "gpt-5",
  messages: [{ role: "user", content: "Find the US unemployment rate dataset and show the last 24 months" }],
  tools,
});

// Execute the tool call with the user's vaulted Nasdaq Data Link API key
await sk.tools.executeTool(res.choices[0].message.tool_calls[0], "user_123");
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const anthropic = new Anthropic();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["nasdaqdatalink"] }, pageSize: 100,
});

const msg = await anthropic.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Find the US unemployment rate dataset and show the last 24 months" }],
  tools,
});

// Tool call runs with the user's vaulted Nasdaq Data Link API key
await sk.tools.executeTool(msg.content, "user_123");
import { Agent } from "@google/adk/agents";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["nasdaqdatalink"] }, pageSize: 100,
});

const agent = new Agent({
  name: "data_research_agent",
  model: "gemini-2.5-pro",
  instruction: "Nasdaq Data Link tools scoped to this user",
  tools,
});

await agent.run("Find the US unemployment rate dataset and show the last 24 months");
Try these prompts
Copy any prompt into your agent. Each maps directly to a Nasdaq Data Link tool. Click to copy, paste into your agent, done.
Discovery
Copy the prompt
Copied
Search for datasets about US housing starts.
Copy the prompt
Copied
What does the FRED database hold, and is it premium?
Copy the prompt
Copied
What columns and date range does FRED/GDP cover?
Time series
Copy the prompt
Copied
Show quarterly FRED/GDP for the last 5 years.
Copy the prompt
Copied
Get FRED/UNRATE as a percent change since 2020.
Copy the prompt
Copied
Collapse FRED/DFF to monthly values for 2024.
Data tables
Copy the prompt
Copied
Which columns can I filter on in the ZACKS/FC table?
Copy the prompt
Copied
Query ZACKS/FC rows for ticker AAPL.
Copy the prompt
Copied
Fetch the next page of results for that query.
SEE HOW AUTH WORKS
Each user connects their own Nasdaq Data Link API key once, and Scalekit sends it with every call. Keys stay vaulted, every call is scope checked, and every action is logged.
1
Authorize
Your user connects
Nasdaq Data Link
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Nasdaq Data Link
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Nasdaq Data Link
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Nasdaq Data Link
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
See the same per-user auth pattern across other finance and market data connectors.
GTM and RevOps Teams
Competitive intelligence briefing agent
Scans Gong calls for competitor mentions, matches each one to its Notion battlecard, and DMs every affected rep a single Slack digest per cycle. Every call runs as the PMM who owns the briefing, never a shared bot.
GTM and RevOps Teams
Revenue forecast commentary
Pulls open pipeline from Salesforce and HubSpot, calculates coverage against quota, flags at-risk stages, posts commentary to Slack, and logs every snapshot to Google Sheets.
Test other agents
See the same per-user auth pattern across other finance and market data connectors.
GTM
Competitive intelligence briefing agent
Scan Gong calls for competitor mentions, match each one to its Notion battlecard, and DM every affected rep a single Slack digest.
GTM
Revenue forecast agent
Score pipeline coverage against quota across Salesforce and HubSpot, post forecast commentary to Slack, log snapshots to Sheets.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared Nasdaq Data Link API key looks fine in a demo. In production every dataset query looks like one service account, and you cannot tell which user triggered it. Scalekit resolves the credential of the actual user who triggered the agent, never a shared bot.
// shared key
audit → bot_service_account

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Nasdaq Data Link today. Ten connectors tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access Nasdaq Data Link as the user or through a shared API key?
As the user. Each user connects their own Nasdaq Data Link API key once, and Scalekit sends it with every call. Audit logs attribute every dataset query to that user, not a shared service account.
Where is the Nasdaq Data Link API key stored?
In Scalekit's managed AES-256 token vault, namespaced per tenant. To rotate it, the user reconnects with a new API key. Revocation is a single dashboard action. Credentials never appear in prompts, logs, or LLM context.
Can I limit what the agent does in Nasdaq Data Link?
Yes. All 6 Nasdaq Data Link tools are read-only: they search, describe, and read datasets and tables and never change anything. You can still filter by tool name in listScopedTools to expose a smaller set, for example only nasdaqdatalink_search_datasets and nasdaqdatalink_get_time_series_data. Scalekit also enforces scope checks before every API call.
What happens when a user revokes Nasdaq Data Link access?
The connection is invalidated on the next tool call. Subsequent requests for that user fail closed with a clear error. Other users in the tenant remain unaffected. The event is logged for audit.
Can the agent read premium Nasdaq Data Link data?
Only data the user's subscription covers. Premium databases and premium tables need a subscription, while free tables work with any key. nasdaqdatalink_get_database and nasdaqdatalink_search_datasets show whether a database or dataset is premium.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""nasdaqdatalink"": {
""url"": ""https://mcp.scalekit.com/nasdaqdatalink"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.nasdaqdatalink]
url = ""https://mcp.scalekit.com/nasdaqdatalink""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""nasdaqdatalink"": {
""url"": ""https://mcp.scalekit.com/nasdaqdatalink"",
""type"": ""http""
}
}
}