Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
Model Context Protocol server for Financial Modeling Prep (FMP) API, exposing 250+ tools for financial data, market insights, and analysis. Financial Modeling Prep MCP (Model Context Protocol) Server $1 A Model Context Protocol (MCP) implementation for Financial Modeling Prep, enabling AI assistants to access and analyze financial data, stock information, company fundamentals, and market insights. Table of Contents - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - Capability contract not published. No trust telemetry is available yet. 115 GitHub stars reported by the source. Last updated 3/13/2026.
Freshness
Last checked 2/25/2026
Best For
financial-modeling-prep-mcp-server is best for mcp, ai, assistant workflows where MCP compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB MCP, runtime-metrics, public facts pack
Model Context Protocol server for Financial Modeling Prep (FMP) API, exposing 250+ tools for financial data, market insights, and analysis. Financial Modeling Prep MCP (Model Context Protocol) Server $1 A Model Context Protocol (MCP) implementation for Financial Modeling Prep, enabling AI assistants to access and analyze financial data, stock information, company fundamentals, and market insights. Table of Contents - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 -
Public facts
5
Change events
1
Artifacts
0
Freshness
Feb 25, 2026
Capability contract not published. No trust telemetry is available yet. 115 GitHub stars reported by the source. Last updated 3/13/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 25, 2026
Vendor
Imbenrabi
Artifacts
0
Benchmarks
0
Last release
2.6.8
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. 115 GitHub stars reported by the source. Last updated 3/13/2026.
Setup snapshot
git clone https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Imbenrabi
Protocol compatibility
MCP
Adoption signal
115 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
json
{
"FMP_ACCESS_TOKEN": "your_fmp_api_key_here"
}bash
npm install -g financial-modeling-prep-mcp-server export FMP_ACCESS_TOKEN=your_token_here export DYNAMIC_TOOL_DISCOVERY=true # or choose static/legacy fmp-mcp
bash
git clone https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server cd Financial-Modeling-Prep-MCP-Server docker build -t fmp-mcp-server . docker run -p 8080:8080 \ -e FMP_ACCESS_TOKEN=your_token_here \ -e DYNAMIC_TOOL_DISCOVERY=true \ fmp-mcp-server
text
https://financial-modeling-prep-mcp-server-production.up.railway.app/mcp
text
๐ฅ CLI Arguments (highest priority) โ ๐ฅ Environment Variables โ ๐ฅ Session Configuration (lowest priority)
bash
# Server started with CLI argument
npm run dev -- --dynamic-tool-discovery
# ALL session requests will use Dynamic Mode, regardless of session config
# Session config like {"FMP_TOOL_SETS": "search,company"} will be IGNOREDFull documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
Model Context Protocol server for Financial Modeling Prep (FMP) API, exposing 250+ tools for financial data, market insights, and analysis. Financial Modeling Prep MCP (Model Context Protocol) Server $1 A Model Context Protocol (MCP) implementation for Financial Modeling Prep, enabling AI assistants to access and analyze financial data, stock information, company fundamentals, and market insights. Table of Contents - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 - $1 -
A Model Context Protocol (MCP) implementation for Financial Modeling Prep, enabling AI assistants to access and analyze financial data, stock information, company fundamentals, and market insights.
Choose your deployment option:
No installation required!
https://financial-modeling-prep-mcp-server-production.up.railway.app/mcpAvailable via:
Example session config:
{
"FMP_ACCESS_TOKEN": "your_fmp_api_key_here"
}
Choose your mode and deploy:
NPM Installation:
npm install -g financial-modeling-prep-mcp-server
export FMP_ACCESS_TOKEN=your_token_here
export DYNAMIC_TOOL_DISCOVERY=true # or choose static/legacy
fmp-mcp
Docker (build from source):
git clone https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server
cd Financial-Modeling-Prep-MCP-Server
docker build -t fmp-mcp-server .
docker run -p 8080:8080 \
-e FMP_ACCESS_TOKEN=your_token_here \
-e DYNAMIC_TOOL_DISCOVERY=true \
fmp-mcp-server
See Installation Methods for detailed self-hosting options.
enable_toolset, disable_toolset, list_toolsets, describe_toolset, list_toolsThis server can be used in two ways:
Direct HTTP Endpoint:
https://financial-modeling-prep-mcp-server-production.up.railway.app/mcp
Also available through MCP registries:
Configuration:
enable_toolset, disable_toolset, list_toolsets, describe_toolset, list_tools)Deploy your own instance for complete control:
This MCP server leverages toolception - a dynamic MCP server toolkit for runtime toolset management with Fastify transport and meta-tools. Toolception provides complete server orchestration including HTTP transport, session management, and tool lifecycle.
ClientResourceCache maintains isolated sessions per client with LRU/TTL evictionImportant: This server uses HTTP/SSE transport only (no stdio). See compatibility notes below.
| Client | Support | How to Connect |
|--------|---------|----------------|
| Claude.ai | Yes | Settings > Connectors > Add remote server |
| Claude Desktop | Yes | Settings > Connectors (NOT claude add or config.json) |
| Claude Mobile | Yes | Uses servers added via claude.ai |
| Smithery/Glama | Yes | Via registry with server card |
| Custom HTTP | Yes | Include mcp-client-id header |
Claude Desktop users: Do NOT use claude add <url> or edit claude_desktop_config.json - these expect stdio transport. Instead, add as a remote server via Settings > Connectors.
See Anthropic's Remote MCP Server Guide.
/ endpointClientResourceCache)ModuleResolver lazy-loads tools based on resolved modePOST /mcp - Main MCP protocol endpoint (JSON-RPC formatted messages)
GET /ping - Simple ping endpoint (returns {"status": "ok"})GET /healthcheck - Comprehensive health check endpointGET /.well-known/mcp/server-card.json - MCP server card for auto-discovery (SEP-1649)The server supports multiple configuration methods with a clear precedence hierarchy to ensure predictable behavior.
The server supports three operational modes. The mode you use depends on your deployment scenario:
FMP_ACCESS_TOKEN in session configDYNAMIC_TOOL_DISCOVERY=true)Starts with only 5 meta-tools:
enable_toolset - Enable a toolset by namedisable_toolset - Disable a toolset by namelist_toolsets - List available toolsets with active statusdescribe_toolset - Describe a toolset with details and toolslist_tools - List currently registered tool namesWhen to Use:
Our Hosted Instance: This is the default mode
Self-Hosted: Set via DYNAMIC_TOOL_DISCOVERY=true or --dynamic-tool-discovery
FMP_TOOL_SETS=search,company,quotes)Pre-loads specific toolsets at session creation. All specified tools available immediately.
When to Use:
Our Hosted Instance: Not available (we use dynamic mode)
Self-Hosted: Set via FMP_TOOL_SETS=search,company,quotes or --fmp-tool-sets=search,company,quotes
Loads all 253+ tools at session creation. Maximum compatibility with all features.
When to Use:
Our Hosted Instance: Not available (we use dynamic mode)
Self-Hosted: Default when no mode is configured, or set DYNAMIC_TOOL_DISCOVERY=false
When self-hosting, configuration follows this strict precedence hierarchy:
๐ฅ CLI Arguments (highest priority)
โ
๐ฅ Environment Variables
โ
๐ฅ Session Configuration (lowest priority)
Note: Our hosted instance mode configuration is fixed to dynamic tool exploration and cannot be changed via session config.
When server-level configurations are set (CLI arguments or environment variables), they override all session-level configurations for ALL sessions. This ensures consistent behavior across the entire server instance.
Example Override Scenario:
# Server started with CLI argument
npm run dev -- --dynamic-tool-discovery
# ALL session requests will use Dynamic Mode, regardless of session config
# Session config like {"FMP_TOOL_SETS": "search,company"} will be IGNORED
CLI Arguments (Server-level - overrides everything)
npm run dev -- --fmp-token=TOKEN --dynamic-tool-discovery
npm run dev -- --fmp-token=TOKEN --fmp-tool-sets=search,company,quotes
npm run dev -- --port=4000 --fmp-token=TOKEN
Environment Variables (Server-level - overrides session configs)
DYNAMIC_TOOL_DISCOVERY=true npm run dev
FMP_TOOL_SETS=search,company,quotes npm run dev
Session Configuration (Session-level - via HTTP query parameter)
# Base64 encoded JSON config in query parameter
curl -X POST "http://localhost:8080/mcp?config=eyJEWU5BTUlDX1RPT0xfRElTQ09WRVJZIjoidHJ1ZSJ9"
While MCP clients can filter tools automatically, large tool sets may impact performance. To optimize your experience, you can specify which tool categories to load instead of loading all 253 tools at once:
| Tool Set | Description | Example Tools |
| ---------------------- | ---------------------- | ----------------------------------------------------- |
| search | Search & Directory | Search stocks, company lookup, symbol directories |
| company | Company Profile & Info | Company profiles, executives, employee count |
| quotes | Real-time Quotes | Live stock prices, market data, price changes |
| statements | Financial Statements | Income statements, balance sheets, cash flow, ratios |
| calendar | Financial Calendar | Earnings calendar, dividends, IPOs, stock splits |
| charts | Price Charts & History | Historical prices, technical charts, market movements |
| news | Financial News | Market news, press releases, financial articles |
| analyst | Analyst Coverage | Price targets, ratings, analyst estimates |
| market-performance | Market Performance | Sector performance, gainers, losers, most active |
| insider-trades | Insider Trading | Corporate insider activity, ownership changes |
| institutional | Institutional Holdings | 13F filings, fund holdings, institutional ownership |
| indexes | Market Indexes | S&P 500, NASDAQ, Dow Jones, index constituents |
| economics | Economic Data | Treasury rates, GDP, inflation, economic indicators |
| crypto | Cryptocurrency | Crypto prices, market data, digital assets |
| forex | Foreign Exchange | Currency pairs, exchange rates, forex data |
| commodities | Commodities | Gold, oil, agricultural products, futures |
| etf-funds | ETFs & Mutual Funds | Fund holdings, performance, fund information |
| esg | ESG & Sustainability | Environmental, social, governance ratings |
| technical-indicators | Technical Indicators | RSI, SMA, EMA, MACD, Bollinger Bands |
| senate | Government Trading | Congressional and Senate trading disclosures |
| sec-filings | SEC Filings | 10-K, 10-Q, 8-K filings, regulatory documents |
| earnings | Earnings & Transcripts | Earnings reports, call transcripts |
| dcf | DCF Valuation | Discounted cash flow models, valuations |
| bulk | Bulk Data | Large-scale data downloads for analysis |
๐ง This feature is currently in BETA. API and behavior may change in future versions.
The Dynamic Toolset Management feature allows you to enable and disable tool categories at runtime instead of pre-configuring them at startup. This provides more flexibility and can help optimize performance by loading only the tools you need when you need them.
When dynamic toolset management is enabled, each session starts with only 5 meta-tools:
enable_toolset - Enable a toolset by namedisable_toolset - Disable a toolset by name (state only)list_toolsets - List available toolsets with active status and definitionsdescribe_toolset - Describe a toolset with definition, active status and toolslist_tools - List currently registered tool names (best effort)AI assistants can then use these meta-tools to dynamically load and unload specific tool categories as needed for different tasks within their session.
Command Line Arguments:
# Enable dynamic toolset management for all sessions
npm run dev -- --fmp-token=YOUR_TOKEN --dynamic-tool-discovery
# Production deployment
node dist/index.js --fmp-token=YOUR_TOKEN --dynamic-tool-discovery
Environment Variables:
# Set environment variable
export DYNAMIC_TOOL_DISCOVERY=true
export FMP_ACCESS_TOKEN=YOUR_TOKEN
npm run dev
# Or inline
DYNAMIC_TOOL_DISCOVERY=true FMP_ACCESS_TOKEN=YOUR_TOKEN npm start
Docker:
# docker-compose.yml
version: "3.8"
services:
fmp-mcp:
build: .
ports:
- "8080:8080"
environment:
- FMP_ACCESS_TOKEN=YOUR_FMP_ACCESS_TOKEN
- DYNAMIC_TOOL_DISCOVERY=true # Enable for all sessions
When no server-level dynamic mode is set, individual sessions can request dynamic mode:
# Base64 encode: {"DYNAMIC_TOOL_DISCOVERY":"true"}
CONFIG_BASE64=$(echo -n '{"DYNAMIC_TOOL_DISCOVERY":"true"}' | base64)
curl -X POST "http://localhost:8080/mcp?config=${CONFIG_BASE64}" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",...}'
Start server with dynamic mode:
DYNAMIC_TOOL_DISCOVERY=true npm start
AI assistant initializes session and gets meta-tools:
// Response includes only 5 meta-tools:
{
"tools": [
{ "name": "enable_toolset", "description": "Enable a toolset by name" },
{ "name": "disable_toolset", "description": "Disable a toolset by name (state only)" },
{ "name": "list_toolsets", "description": "List available toolsets with active status and definitions" },
{ "name": "describe_toolset", "description": "Describe a toolset with definition, active status and tools" },
{ "name": "list_tools", "description": "List currently registered tool names (best effort)" }
]
}
AI assistant enables needed toolsets:
// Enable search toolset
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"enable_toolset","arguments":{"toolset":"search"}}}
// Enable quotes toolset
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"enable_toolset","arguments":{"toolset":"quotes"}}}
AI assistant uses the enabled tools:
// Now can use search and quotes tools
{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"searchSymbol","arguments":{"query":"AAPL"}}}
{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"getQuote","arguments":{"symbol":"AAPL"}}}
AI assistant can disable unused toolsets:
{
"jsonrpc": "2.0",
"id": 6,
"method": "tools/call",
"params": {
"name": "disable_toolset",
"arguments": { "toolset": "search" }
}
}
For production environments, you can use this MCP server through various registries that provide hosted and managed MCP servers:
The Financial Modeling Prep MCP Server is available through the official Model Context Protocol Registry, providing standardized installation and discovery for AI platforms.
NPM Installation:
npm install financial-modeling-prep-mcp-server
npx fmp-mcp --fmp-token=YOUR_TOKEN
Docker (build from source):
git clone https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server
cd Financial-Modeling-Prep-MCP-Server
docker build -t fmp-mcp-server .
docker run -p 8080:8080 -e FMP_ACCESS_TOKEN=YOUR_TOKEN fmp-mcp-server
From Source:
git clone https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server
cd Financial-Modeling-Prep-MCP-Server
npm install && npm run build
npm start -- --fmp-token=YOUR_TOKEN
The server supports multiple installation methods through the MCP Registry:
| Method | Command | Best For |
| ---------- | ----------------------------------------------------------------- | ------------------------------- |
| NPM | npm install financial-modeling-prep-mcp-server | Development and local testing |
| Docker | git clone && docker build -t fmp-mcp-server . | Production deployments |
| Source | git clone && npm install | Customization and contributions |
1. Choose Your Installation Method:
# Option A: NPM (recommended for development)
npm install financial-modeling-prep-mcp-server
npx fmp-mcp --fmp-token=YOUR_TOKEN
# Option B: Docker (recommended for production)
git clone https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server
cd Financial-Modeling-Prep-MCP-Server
docker build -t fmp-mcp-server .
docker run -p 8080:8080 -e FMP_ACCESS_TOKEN=YOUR_TOKEN fmp-mcp-server
# Option C: From source (for customization)
git clone https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server
cd Financial-Modeling-Prep-MCP-Server && npm install && npm run build
npm start -- --fmp-token=YOUR_TOKEN
2. Get Your FMP API Token:
3. Test the Installation:
# Health check
curl http://localhost:8080/healthz
# List available tools
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
4. Connect to Your AI Platform:
http://localhost:8080/mcpThis server uses HTTP/SSE transport and is compatible with platforms that support remote MCP servers:
Note: This server does NOT support stdio transport. Do not use
claude add <url>orclaude_desktop_config.json- these methods expect stdio.
The Financial Modeling Prep MCP Server supports multiple installation methods to fit different deployment scenarios and development workflows.
Prerequisites:
Install globally:
npm install -g financial-modeling-prep-mcp-server
fmp-mcp --fmp-token=YOUR_TOKEN
Install locally in project:
npm install financial-modeling-prep-mcp-server
npx fmp-mcp --fmp-token=YOUR_TOKEN
With configuration options:
# Custom port and dynamic mode
npx fmp-mcp --fmp-token=YOUR_TOKEN --port=4000 --dynamic-tool-discovery
# Static toolset mode
npx fmp-mcp --fmp-token=YOUR_TOKEN --fmp-tool-sets=search,company,quotes
Prerequisites:
Build the Docker image:
git clone https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server
cd Financial-Modeling-Prep-MCP-Server
docker build -t fmp-mcp-server .
Basic Docker run:
docker run -p 8080:8080 \
-e FMP_ACCESS_TOKEN=YOUR_TOKEN \
fmp-mcp-server
With custom configuration:
# Dynamic mode with custom port
docker run -p 4000:4000 \
-e FMP_ACCESS_TOKEN=YOUR_TOKEN \
-e PORT=4000 \
-e DYNAMIC_TOOL_DISCOVERY=true \
fmp-mcp-server
# Static toolset mode
docker run -p 8080:8080 \
-e FMP_ACCESS_TOKEN=YOUR_TOKEN \
-e FMP_TOOL_SETS=search,company,quotes \
fmp-mcp-server
Docker Compose:
version: "3.8"
services:
fmp-mcp:
build: .
ports:
- "8080:8080"
environment:
- FMP_ACCESS_TOKEN=YOUR_FMP_ACCESS_TOKEN
- PORT=8080
# Optional: Choose server mode
- DYNAMIC_TOOL_DISCOVERY=true
# OR: - FMP_TOOL_SETS=search,company,quotes
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/healthz"]
interval: 30s
timeout: 10s
retries: 3
Prerequisites:
Clone and build:
# Clone repository
git clone https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server.git
cd Financial-Modeling-Prep-MCP-Server
# Install dependencies
npm install
# Build TypeScript
npm run build
# Start server
npm start -- --fmp-token=YOUR_TOKEN
Development mode:
# Run with hot reload
npm run dev -- --fmp-token=YOUR_TOKEN
# Run tests
npm test
# Run with coverage
npm run test:coverage
# Verify installation methods
npm run verify:installation
# Type checking
npm run typecheck
Custom build configuration:
# Build with specific target
npx tsc --target ES2022
# Build and watch for changes
npx tsc --watch
# Clean build
rm -rf dist && npm run build
These apply when self-hosting your own instance. Our hosted instance has fixed configuration.
| Variable | Description | Self-Host Default | Our Hosted Instance | Notes |
| ------------------------ | --------------------------------- | ----------------- | ------------------- | ----- |
| FMP_ACCESS_TOKEN | Financial Modeling Prep API token | - | Not set | Our hosted: Pass via session config |
| PORT | Server port | 8080 | Railway-managed | |
| DYNAMIC_TOOL_DISCOVERY | Enable dynamic toolset mode | false | true (fixed) | Our hosted: Always dynamic mode |
| FMP_TOOL_SETS | Static toolsets (comma-separated) | - | Not applicable | Our hosted: Dynamic mode only |
| NODE_ENV | Node.js environment | development | production | |
Deployment Scenarios:
Using Our Hosted Instance (Railway):
FMP_ACCESS_TOKEN in session configSelf-Hosting Your Own Instance:
# Example: Dynamic mode with server-level API key
export FMP_ACCESS_TOKEN=your_token_here
export DYNAMIC_TOOL_DISCOVERY=true
export PORT=8080
npm start
# Example: Static mode with specific toolsets
export FMP_ACCESS_TOKEN=your_token_here
export FMP_TOOL_SETS=search,company,quotes
npm start
# Example: Legacy mode (all tools)
export FMP_ACCESS_TOKEN=your_token_here
npm start
After installation, verify the server is working:
Health check:
curl http://localhost:8080/healthz
MCP capabilities:
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"clientInfo": {"name": "test", "version": "1.0.0"},
"capabilities": {}
}
}'
List available tools:
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
Common issues and solutions:
Port already in use:
# Use different port
PORT=4000 npm start -- --fmp-token=YOUR_TOKEN
Invalid API token:
# Verify token at https://financialmodelingprep.com/developer/docs
curl "https://financialmodelingprep.com/api/v3/profile/AAPL?apikey=YOUR_TOKEN"
Memory issues with all tools:
# Use dynamic mode or specific toolsets
npm start -- --fmp-token=YOUR_TOKEN --dynamic-tool-discovery
Docker permission issues:
# Run with user permissions
docker run --user $(id -u):$(id -g) -p 8080:8080 \
-e FMP_ACCESS_TOKEN=YOUR_TOKEN \
fmp-mcp-server
The Financial Modeling Prep MCP Server is listed on Smithery as one way to access our hosted instance.
On March 1st, 2026, Smithery discontinued their free hosting service. As a result:
Server Configuration:
https://financial-modeling-prep-mcp-server-production.up.railway.app/mcpSession Configuration Requirements:
You must pass your FMP API key in the session configuration. The server does not have an API key configured at the environment level.
Example Session Configuration:
{
"FMP_ACCESS_TOKEN": "your_fmp_api_key_here"
}
Alternative Configurations:
// Explicitly request dynamic mode (already the default)
{
"FMP_ACCESS_TOKEN": "your_fmp_api_key_here",
"DYNAMIC_TOOL_DISCOVERY": "true"
}
// Note: Static/Legacy modes are NOT SUPPORTED on our hosted instance
// Server-level configuration overrides session requests
{
"FMP_ACCESS_TOKEN": "your_fmp_api_key_here",
"FMP_TOOL_SETS": "search,company,quotes" // This will be ignored
}
Important Notes:
If you need static or legacy mode, or want full control over the server configuration:
Self-Host Your Own Instance:
Then Register with Smithery (Optional):
For Smithery integration documentation, visit smithery.ai/docs.
The server runs as an HTTP server that exposes a Model Context Protocol endpoint. Each request can include session-specific configuration via query parameters.
Local Development:
# Clone and setup
git clone https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server
cd Financial-Modeling-Prep-MCP-Server
npm install
npm run build
# Run in development
FMP_ACCESS_TOKEN=YOUR_TOKEN npm run dev
# Or with CLI arguments
npm run dev -- --fmp-token=YOUR_TOKEN
npm run dev -- --port=4000 --fmp-token=YOUR_TOKEN
๐ Server-Level Dynamic Mode (All Sessions Use Dynamic Mode):
# CLI argument (highest priority)
npm run dev -- --fmp-token=YOUR_TOKEN --dynamic-tool-discovery
# Environment variable
DYNAMIC_TOOL_DISCOVERY=true FMP_ACCESS_TOKEN=YOUR_TOKEN npm run dev
๐ง Server-Level Static Mode (All Sessions Use Specified Toolsets):
# CLI argument (highest priority)
npm run dev -- --fmp-token=YOUR_TOKEN --fmp-tool-sets=search,company,quotes
# Environment variable
FMP_TOOL_SETS=search,company,quotes FMP_ACCESS_TOKEN=YOUR_TOKEN npm run dev
๐ Server-Level Legacy Mode (All Sessions Get All Tools):
# Default behavior - no specific configuration
npm run dev -- --fmp-token=YOUR_TOKEN
FMP_ACCESS_TOKEN=YOUR_TOKEN npm run dev
# Change server port via environment variable
PORT=4000 npm run dev -- --fmp-token=YOUR_TOKEN
# Change server port via CLI argument
npm run dev -- --port=4000 --fmp-token=YOUR_TOKEN
The following system prompts are designed to help AI assistants effectively use this MCP server for financial analysis tasks. Choose the appropriate prompt based on your server configuration mode.
You are an expert financial analyst AI with access to comprehensive market data tools.
CORE RULES:
- Always use tools for current market data; never rely on outdated information or estimates
- Check conversation history to avoid redundant tool calls
- Provide concise, data-driven responses
- Always include: "This is not financial advice"
DYNAMIC TOOLSET MANAGEMENT:
Your tools are organized into categories ("toolsets") that must be enabled before use.
Available toolsets: search, company, quotes, statements, calendar, charts, news, analyst, market-performance, insider-trades, institutional, indexes, economics, crypto, forex, commodities, etf-funds, esg, technical-indicators, senate, sec-filings, earnings, dcf, bulk
EXECUTION WORKFLOW:
1. DISCOVER: Use list_toolsets to see available toolset categories and their status
2. ENABLE: Use enable_toolset for required categories based on the user's query
3. VERIFY: Use list_tools to confirm the tools you need are available
4. EXECUTE: Call specific tools from enabled toolsets
5. CLEAN UP: Consider disabling unused toolsets when switching to different analysis types
FAILURE PROTOCOL:
If tools fail repeatedly or data is unavailable, state: "I cannot find the requested information with the available tools" and stop attempting.
Begin each analysis by enabling the appropriate toolsets for the user's request.
You are an expert financial analyst AI with access to comprehensive market data tools.
CORE RULES:
- Always use tools for current market data; never rely on outdated information or estimates
- Check conversation history to avoid redundant tool calls
- Provide concise, data-driven responses
- Always include: "This is not financial advice"
STATIC TOOLSET CONFIGURATION:
Your tools are pre-loaded and immediately available. All configured toolsets remain active throughout the session.
EXECUTION WORKFLOW:
1. IDENTIFY: Determine which tools from your available toolsets best address the user's query
2. EXECUTE: Call the appropriate tools directly - no toolset management needed
3. ANALYZE: Process the data and provide insights based on the results
TOOL CATEGORIES:
Your available tools span multiple categories including company profiles, financial statements, market quotes, technical analysis, news sentiment, and economic indicators. Use the most relevant tools for each analysis.
FAILURE PROTOCOL:
If tools fail repeatedly or data is unavailable, state: "I cannot find the requested information with the available tools" and stop attempting.
Proceed directly to analysis using your available tools based on the user's request.
This server provides a human-friendly prompt to list capabilities in one shot.
list_mcp_assetsServer Capabilities, Prompts, Tools (mode-aware), Resources (health snapshot), Quick Start# 1) Initialize (example: dynamic mode session)
CONFIG_BASE64=$(echo -n '{"DYNAMIC_TOOL_DISCOVERY":"true"}' | base64)
curl -X POST "http://localhost:8080/mcp?config=${CONFIG_BASE64}" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": { "protocolVersion": "2024-11-05", "clientInfo": {"name": "client", "version": "1.0.0"}, "capabilities": {} }
}'
# 2) List prompts
curl -X POST "http://localhost:8080/mcp?config=${CONFIG_BASE64}" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"prompts/list","params":{}}'
# 3) Get the capabilities prompt
curl -X POST "http://localhost:8080/mcp?config=${CONFIG_BASE64}" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"prompts/get","params":{"name":"list_mcp_assets","arguments":{}}}'
Notes:
Tools section adapts to the effective mode (Dynamic/Static/Legacy). In legacy mode, it summarizes categories instead of listing all 250+ tools.FMP_TOOL_SETS may request Static mode, but server-level configuration controls the final toolsets.Resources section includes a lightweight health snapshot (uptime, memory summary, version, mode).The server exposes a Model Context Protocol endpoint at /mcp that accepts JSON-RPC formatted requests. Each request can include optional session configuration via query parameters.
POST http://localhost:8080/mcp[?config=BASE64_ENCODED_CONFIG]
Content-Type: application/json
Accept: application/json, text/event-stream
mcp-client-id: <your-client-id>
IMPORTANT: This server uses the MCP Streamable HTTP transport, which requires session management via headers.
| Header | When Required | Description |
|--------|--------------|-------------|
| mcp-client-id | All requests | Unique client identifier for session routing and caching |
| mcp-session-id | After initialize | Session ID returned from initialize request |
| Content-Type | All requests | Must be application/json |
| Accept | All requests | Must include application/json, text/event-stream |
Critical: The
mcp-client-idheader is required for session persistence. Without it, each request creates an anonymous client that is NOT cached, causing "Session not found or expired" errors on subsequent requests.
First Request - Initialize:
# Generate a unique client ID (once per client instance)
CLIENT_ID="my-app-$(date +%s)"
curl -X POST "http://localhost:8080/mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-client-id: $CLIENT_ID" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"clientInfo": {"name": "my-client", "version": "1.0.0"},
"capabilities": {}
}
}'
Server Response Includes:
mcp-session-id: <unique-session-id>Subsequent Requests - Include Both Session ID and Client ID:
curl -X POST "http://localhost:8080/mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-client-id: $CLIENT_ID" \
-H "mcp-session-id: <session-id-from-initialize>" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}'
Required Headers: Both mcp-client-id and mcp-session-id
mcp-session-id headermcp-client-id for efficient bundle reuseIf you forget to include the required headers, you'll receive:
{
"jsonrpc": "2.0",
"error": {
"code": -32000,
"message": "Session not found or expired"
},
"id": null
}
Solution:
mcp-client-id for your client instancemcp-client-id in ALL requests (including initialize)mcp-session-id in all requests AFTER initializeSession configurations are passed as Base64-encoded JSON in the config query parameter.
When connecting to our hosted instance (directly or via MCP registries), you must provide your FMP API key:
# Configuration: {"FMP_ACCESS_TOKEN":"your_fmp_api_key_here"}
CONFIG_BASE64=$(echo -n '{"FMP_ACCESS_TOKEN":"your_fmp_api_key_here"}' | base64)
# Make request to our hosted instance
curl -X POST "https://financial-modeling-prep-mcp-server-production.up.railway.app/mcp?config=${CONFIG_BASE64}" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","clientInfo":{"name":"client","version":"1.0.0"},"capabilities":{}}}'
Note: Our hosted instance runs in dynamic mode. Static/legacy mode configurations will be ignored.
Session configuration only supports FMP_ACCESS_TOKEN override. Server mode and toolsets are configured at server startup only.
API Key Override (if not set server-side):
# Configuration: {"FMP_ACCESS_TOKEN":"your_key"}
CONFIG_BASE64=$(echo -n '{"FMP_ACCESS_TOKEN":"your_key"}' | base64)
Note: Mode selection (DYNAMIC_TOOL_DISCOVERY, FMP_TOOL_SETS) must be configured at server startup via environment variables or CLI arguments, not per-session.
CONFIG_BASE64=$(echo -n '{"DYNAMIC_TOOL_DISCOVERY":"true"}' | base64)
curl -X POST "http://localhost:8080/mcp?config=${CONFIG_BASE64}" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"clientInfo": {
"name": "my-client",
"version": "1.0.0"
},
"capabilities": {}
}
}'
Expected Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"protocolVersion": "2024-11-05",
"capabilities": {
"tools": {
"listChanged": true
}
},
"serverInfo": {
"name": "fmp-mcp-server",
"version": "1.0.0"
}
}
}
CONFIG_BASE64=$(echo -n '{"DYNAMIC_TOOL_DISCOVERY":"true"}' | base64)
curl -X POST "http://localhost:8080/mcp?config=${CONFIG_BASE64}" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}'
Expected Response (Dynamic Mode):
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"tools": [
{
"name": "enable_toolset",
"description": "Enable a toolset by name",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Toolset name"
}
},
"required": ["name"]
}
},
{
"name": "disable_toolset",
"description": "Disable a toolset by name (state only)"
},
{
"name": "list_toolsets",
"description": "List available toolsets with active status and definitions"
},
{
"name": "describe_toolset",
"description": "Describe a toolset with definition, active status and tools"
},
{
"name": "list_tools",
"description": "List currently registered tool names (best effort)"
}
]
}
}
CONFIG_BASE64=$(echo -n '{"DYNAMIC_TOOL_DISCOVERY":"true"}' | base64)
curl -X POST "http://localhost:8080/mcp?config=${CONFIG_BASE64}" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "enable_toolset",
"arguments": {
"toolset": "search"
}
}
}'
# Requires server started with search toolset enabled (static mode) or dynamic mode
curl -X POST "http://localhost:8080/mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "searchSymbol",
"arguments": {
"query": "Apple"
}
}
}'
# Requires server started with quotes toolset enabled (static mode) or dynamic mode
curl -X POST "http://localhost:8080/mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "getQuote",
"arguments": {
"symbol": "AAPL"
}
}
}'
clientId (from mcp-client-id header)clientId across requestsMcpServer/DynamicToolsetManager per clientIdFMP_ACCESS_TOKEN can be overridden per-session via query paramCommon error responses:
// Invalid configuration
{
"jsonrpc": "2.0",
"error": {
"code": -32000,
"message": "Bad Request: Invalid configuration"
},
"id": null
}
// Tool not available
{
"jsonrpc": "2.0",
"error": {
"code": -32601,
"message": "Tool not found: toolName"
},
"id": 1
}
// Missing required parameters
{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "Missing required parameter: symbol"
},
"id": 2
}
โ ๏ธ Important: Mode Enforcement Behavior
Server-Level Configurations Override Session Configurations:
- When CLI arguments (
--dynamic-tool-discovery,--fmp-tool-sets) are used, they apply to ALL sessions- When environment variables (
DYNAMIC_TOOL_DISCOVERY,FMP_TOOL_SETS) are set, they apply to ALL sessions- Session-level configurations via query parameters are IGNORED when server-level modes are active
- This ensures consistent behavior across all sessions on a server instance
Configuration Precedence: CLI Arguments > Environment Variables > Session Configuration
Example: If server started with
--dynamic-tool-discovery, ALL sessions will use dynamic mode even if they request{"FMP_TOOL_SETS":"search,company"}in their session config.
This MCP provides the following tools for AI assistants to access financial data:
Important Note: All bulk endpoints return data in CSV format as raw strings rather than parsed JSON objects. This endpoint returns the response as a CSV file. The provided sample response represents an individual record. This design preserves the original FMP API format and provides better performance for large datasets.
To get a Financial Modeling Prep access token:
Financial Modeling Prep offers different pricing tiers with varying levels of data access and API call limits. For more information, visit the FMP Pricing page.
Contributions are welcome! Here's how you can contribute:
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)Every pull request triggers a GitHub Actions workflow that verifies the build process.
# Clone the repository
git clone https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server
cd Financial-Modeling-Prep-MCP-Server
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode with your API key
FMP_ACCESS_TOKEN=your_api_key npm run dev
# Or specify the API key directly via CLI argument
npm run dev -- --fmp-token=your_api_key
The development server will start on port 8080 by default. You can configure the port using the PORT environment variable:
PORT=4000 FMP_ACCESS_TOKEN=your_api_key npm run dev
Server-Level Static Mode (All Sessions Use Specific Toolsets):
# Environment variable approach
FMP_TOOL_SETS=search,company,quotes FMP_ACCESS_TOKEN=your_api_key npm run dev
# CLI argument approach (higher precedence)
npm run dev -- --fmp-token=your_api_key --fmp-tool-sets=search,company,quotes
Server-Level Dynamic Mode (All Sessions Start with Meta-Tools):
# Environment variable approach
DYNAMIC_TOOL_DISCOVERY=true FMP_ACCESS_TOKEN=your_api_key npm run dev
# CLI argument approach (higher precedence)
npm run dev -- --fmp-token=your_api_key --dynamic-tool-discovery
Session-Level Configuration (Default - No Server Enforcement):
# Start server without mode enforcement
npm run dev -- --fmp-token=your_api_key
# Dynamic mode - meta-tools for runtime toolset management
npm run dev -- --fmp-token=your_api_key --dynamic-tool-discovery
# Static mode - specific toolsets loaded at startup
npm run dev -- --fmp-token=your_api_key --fmp-tool-sets=search,company,quotes
# Legacy mode - all tools loaded (default)
npm run dev -- --fmp-token=your_api_key
# Start server without token
npm run dev
# Pass token per-session
CONFIG_BASE64=$(echo -n '{"FMP_ACCESS_TOKEN":"your_key"}' | base64)
curl -X POST "http://localhost:8080/mcp?config=${CONFIG_BASE64}" -d '...'
The project uses Vitest for testing. You can run tests in several ways:
# Run tests in watch mode (for development)
npm test
# Run tests once
npm run test:run
# Run tests with coverage report
npm run test:coverage
The coverage report will be generated in the coverage/ directory and displayed in the terminal. You can open coverage/index.html in your browser to view a detailed HTML coverage report.
If you encounter any bugs, have feature requests, or need help with the project, please open an issue on GitHub:
When reporting issues, please include:
This helps us understand and resolve issues more quickly.
This project is licensed under Apache License Version 2.0
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/mcp-imbenrabi-financial-modeling-prep-mcp-server/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-imbenrabi-financial-modeling-prep-mcp-server/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-imbenrabi-financial-modeling-prep-mcp-server/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-imbenrabi-financial-modeling-prep-mcp-server/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-imbenrabi-financial-modeling-prep-mcp-server/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-imbenrabi-financial-modeling-prep-mcp-server/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-imbenrabi-financial-modeling-prep-mcp-server/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-imbenrabi-financial-modeling-prep-mcp-server/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-imbenrabi-financial-modeling-prep-mcp-server/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-04-17T02:55:36.973Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "mcp",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "ai",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "assistant",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "fmp",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "financial modeling prep",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "financial data",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "financial analysis",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "financial planning",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "financial reporting",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "quotes",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "symbols",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "ticker",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "ticker symbols",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock symbols",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock quotes",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stocks",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock prices",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock market",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock data",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock analysis",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock planning",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock reporting",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "exchange",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "exchanges",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "financial news",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock news",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock market data",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock market news",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock market analysis",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock market planning",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock market reporting",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock market quotes",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stock market symbols",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "model context protocol",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "fmp api",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "ai tools",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "server",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "node",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "typescript",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "market data",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "statements",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "news",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "indexes",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "economics",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "crypto",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "forex",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "commodities",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "esg",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "technical indicators",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "sec-filings",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "earnings",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "cli",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|unknown|profile capability:mcp|supported|profile capability:ai|supported|profile capability:assistant|supported|profile capability:fmp|supported|profile capability:financial modeling prep|supported|profile capability:financial data|supported|profile capability:financial analysis|supported|profile capability:financial planning|supported|profile capability:financial reporting|supported|profile capability:quotes|supported|profile capability:symbols|supported|profile capability:ticker|supported|profile capability:ticker symbols|supported|profile capability:stock symbols|supported|profile capability:stock quotes|supported|profile capability:stock|supported|profile capability:stocks|supported|profile capability:stock prices|supported|profile capability:stock market|supported|profile capability:stock data|supported|profile capability:stock analysis|supported|profile capability:stock planning|supported|profile capability:stock reporting|supported|profile capability:exchange|supported|profile capability:exchanges|supported|profile capability:financial news|supported|profile capability:stock news|supported|profile capability:stock market data|supported|profile capability:stock market news|supported|profile capability:stock market analysis|supported|profile capability:stock market planning|supported|profile capability:stock market reporting|supported|profile capability:stock market quotes|supported|profile capability:stock market symbols|supported|profile capability:model context protocol|supported|profile capability:fmp api|supported|profile capability:ai tools|supported|profile capability:server|supported|profile capability:node|supported|profile capability:typescript|supported|profile capability:market data|supported|profile capability:statements|supported|profile capability:news|supported|profile capability:indexes|supported|profile capability:economics|supported|profile capability:crypto|supported|profile capability:forex|supported|profile capability:commodities|supported|profile capability:esg|supported|profile capability:technical indicators|supported|profile capability:sec-filings|supported|profile capability:earnings|supported|profile capability:cli|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Imbenrabi",
"href": "https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server",
"sourceUrl": "https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-03-13T04:47:30.289Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/mcp-imbenrabi-financial-modeling-prep-mcp-server/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-imbenrabi-financial-modeling-prep-mcp-server/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-03-13T04:47:30.289Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "115 GitHub stars",
"href": "https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server",
"sourceUrl": "https://github.com/imbenrabi/Financial-Modeling-Prep-MCP-Server",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-03-13T04:47:30.289Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/mcp-imbenrabi-financial-modeling-prep-mcp-server/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-imbenrabi-financial-modeling-prep-mcp-server/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub ยท GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to financial-modeling-prep-mcp-server and adjacent AI workflows.