
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
@macroaxis/api-mcp
Advanced tools
Macroaxis MCP server for AI agents: real-time financial data, fundamentals, analyst ratings, portfolio correlation and Markowitz optimization. Tools are discovered dynamically from the Macroaxis API schema.
This MCP server exposes Macroaxis API-backed financial data tools, including symbol discovery, lightweight symbol profiles, structured symbol statistics, analyst ratings, portfolio correlation, and portfolio optimization.
The server holds no hard-coded tool list. On first use it fetches the public /api/v1/schema
document and registers every entry under mcpTools, using each tool's rest binding to turn a
tool call into the matching REST request (path/query mapping, array-to-CSV serialization, etc.).
Adding, changing, or removing a Macroaxis API tool therefore requires no change to this server. Update the API schema, restart your MCP client, and the new tool appears. The same published npm package always reflects the current API surface.
At the time of writing the schema exposes:
search_symbols -> /api/v1/search/symbols?q={query}
get_symbol_profile -> /api/v1/symbols/{symbol}/profile
get_symbol_statistics -> /api/v1/symbols/{symbol}/statistics
get_symbol_analyst_ratings -> /api/v1/symbols/{symbol}/analyst-ratings
get_portfolio_correlation -> /api/v1/analytics/correlation-matrix?symbols={symbols}
get_portfolio_optimization -> /api/v1/analytics/optimize?symbols={symbols}
Call /api/v1/schema (public, no key) for the authoritative, always-current tool list and each
tool's input contract.
You don't clone or build anything. With Node.js 18+ installed, add the server to your MCP client
and it runs the published package on demand via npx. Get your API key from your Macroaxis profile
(a 7-day free trial on any paid plan includes API access).
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"macroaxis-api": {
"command": "npx",
"args": ["-y", "@macroaxis/api-mcp"],
"env": { "MACROAXIS_API_KEY": "YOUR_API_KEY" }
}
}
}
Cursor (~/.cursor/mcp.json) — identical shape.
Codex (~/.codex/config.toml):
[mcp_servers.macroaxis-api]
command = "npx"
args = ["-y", "@macroaxis/api-mcp"]
[mcp_servers.macroaxis-api.env]
MACROAXIS_API_KEY = "YOUR_API_KEY"
That's it — restart the client and the Macroaxis tools appear. If you see spawn npx ENOENT, your
client launched without your shell PATH; replace npx with its absolute path (which npx).
Only MACROAXIS_API_KEY is required. The rest are optional:
| Name | Default | Description |
|---|---|---|
MACROAXIS_API_KEY | empty | Your Macroaxis API key. Sent as X-Macroaxis-Api-Key. |
MACROAXIS_API_BASE_URL | https://www.macroaxis.com | API origin. Leave unset unless self-hosting or developing locally. |
MACROAXIS_API_TIMEOUT_MS | 10000 | Upstream API timeout in milliseconds. |
MACROAXIS_API_MAX_RESPONSE_BYTES | 5000000 | Maximum accepted upstream response size. |
To run from a checkout instead of the published package:
npm install
npm start # against production
MACROAXIS_API_BASE_URL=http://localhost:8080 npm start # against a local Macroaxis
Point your client's command/args at the absolute path of src/server.js using your Node binary
(e.g. /opt/homebrew/bin/node) instead of the npx form above.
search_symbolsInput:
{
"query": "apple",
"country": "US",
"limit": 5
}
Output:
Returns the structured JSON response from Macroaxis symbol search, including:
data.querydata.countrydata.limitdata.countdata.results[].symboldata.results[].displaySymboldata.results[].namedata.results[].entityTypedata.results[].assetTypedata.results[].countrydata.results[].exchangedata.results[].urlmetadataget_symbol_profileInput:
{
"symbol": "AAPL"
}
Output:
Returns the structured JSON response from Macroaxis, including:
data.symboldata.displaySymboldata.namedata.entityTypedata.assetTypedata.exchangedata.countrydata.currencyCodedata.sectordata.industrydata.urldata.quotemetadataget_symbol_statisticsInput:
{
"symbol": "AAPL"
}
Output:
Returns the structured JSON response from Macroaxis, including:
data.symboldata.namedata.pricedata.statistics.valuationdata.statistics.profitabilitydata.statistics.liquiditydata.statistics.solvencydata.statistics.riskdata.statistics.growthdata.statistics.dividendsdata.statistics.ownershipmetadataget_symbol_analyst_ratingsInput:
{
"symbol": "AAPL"
}
Output:
Returns the structured JSON response from Macroaxis, including:
data.symboldata.namedata.exchangedata.consensus.ratingdata.consensus.scoredata.consensus.trenddata.consensus.totalAnalystsdata.consensus.strongBuydata.consensus.buydata.consensus.holddata.consensus.selldata.consensus.strongSelldata.priceTarget.meandata.priceTarget.highdata.priceTarget.lowdata.priceTarget.numberOfEstimatesdata.priceTarget.currentPricedata.priceTarget.upsideToMeanmetadataget_portfolio_correlationInput:
{
"symbols": ["AAPL", "MSFT", "GOOGL"],
"days": 180
}
days is optional (30-720, defaults to 90) and sets the trailing price window.
Output:
Returns the structured JSON response from Macroaxis, including:
data.symbolsdata.countdata.pairCountdata.pairs[].symbolAdata.pairs[].symbolBdata.pairs[].coefficientdata.averageCorrelationdata.mostCorrelateddata.leastCorrelatedmetadataRequires at least 3 symbols; up to 25 are accepted.
get_portfolio_optimizationInput:
{
"symbols": ["AAPL", "MSFT", "GOOGL"],
"risk": 60,
"days": 180,
"riskFreeRate": 0.01,
"confidenceInterval": 95,
"minimumReturn": 0,
"minWeight": 2,
"maxWeight": 35,
"cashUsage": 0
}
Only symbols is required. All other inputs are optional: risk (0-100, default 60), days (30-720, default 90), riskFreeRate (decimal fraction 0-1 where 0.01 = 1%, default 0.01), confidenceInterval (percent 1-99, default 95), minimumReturn (decimal fraction -1 to 1 where 0.05 = 5%, default 0), minWeight (percent 0-100, default 2), maxWeight (percent 0-100, default 35), and cashUsage (percent 0-100, default 0). The effective values used are echoed back under data.parameters. Shares and market values assume a budget of 10,000; use weight for budget-independent allocation.
Output:
Returns the structured JSON response from Macroaxis, including:
data.parameters (effective days, riskLevel, riskFreeRate, confidenceInterval, minimumReturn, minWeight, maxWeight, cashUsage)data.portfolio.expectedReturndata.portfolio.riskdata.portfolio.sharpeRatiodata.portfolio.diversificationScoredata.allocationCountdata.allocations[].symboldata.allocations[].weightdata.allocations[].sharesdata.allocations[].marketValuemetadataRequires at least 2 symbols; up to 25 are accepted. risk is optional (0-100, defaults to 60).
The MCP tools are thin wrappers over the Macroaxis REST API; you can call the same endpoints directly.
https://www.macroaxis.com/api/v1/schemahttps://www.macroaxis.com/api/v1/statushttps://www.macroaxis.com/mcp-serverhttps://www.macroaxis.com/api-docs/symbol-searchhttps://www.macroaxis.com/api-docs/symbol-profilehttps://www.macroaxis.com/api-docs/symbol-statisticshttps://www.macroaxis.com/api-docs/symbol-analyst-ratingshttps://www.macroaxis.com/api-docs/portfolio-correlationhttps://www.macroaxis.com/api-docs/portfolio-optimization/api/v1/schema is the single source of truth — this server discovers its tools from it, so the package always matches the live API.
fetch).search_symbols first when the user gives a company name, fund, crypto, index, or partial ticker, then pass the resolved symbol to the other tools.get_symbol_profile is a lightweight confirmation step before the heavier get_symbol_statistics.Public /api/v1/status and /api/v1/schema allow 10 requests per 60 seconds without a key. Authenticated data endpoints allow 60 requests per 60 seconds. Responses include X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Window-Seconds, X-RateLimit-Reset, and Retry-After on 429.
FAQs
Macroaxis MCP server for AI agents: financial data, fundamentals, analyst ratings, ESG, earnings, dividends, price history, technical indicators, risk metrics, peers, ownership, forecasts, and portfolio correlation, optimization, metrics, and efficient fr
The npm package @macroaxis/api-mcp receives a total of 20 weekly downloads. As such, @macroaxis/api-mcp popularity was classified as not popular.
We found that @macroaxis/api-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.