Troubleshooting Guide for FMP MCP Server with Claude Desktop
Common Issues and Solutions
1. Claude doesn't respond with financial data
Symptoms: - Claude responds normally but doesn't fetch financial data - No indication that MCP tools are being used
Solutions:
Check API Key
# Test your API key
python -c "import os; print('API Key set:', 'FMP_API_KEY' in os.environ)"
# Test API key validity
curl "https://financialmodelingprep.com/stable/profile?symbol=AAPL&apikey=YOUR_KEY_HERE"
Verify Configuration File Location
# Run this to find config location
python -c "
import platform
from pathlib import Path
import os
system = platform.system()
if system == 'Darwin':
path = Path.home() / 'Library' / 'Application Support' / 'Claude' / 'claude_desktop_config.json'
elif system == 'Windows':
path = Path(os.environ['APPDATA']) / 'Claude' / 'claude_desktop_config.json'
else:
path = Path.home() / '.config' / 'Claude' / 'claude_desktop_config.json'
print(f'Config should be at: {path}')
print(f'File exists: {path.exists()}')
"
Restart Claude Desktop
- Completely quit Claude Desktop (not just close the window)
- Mac: Cmd+Q or Claude > Quit Claude
- Windows: File > Exit or Alt+F4
- Linux: File > Quit
- Wait 5 seconds
- Reopen Claude Desktop
2. "MCP server not found" or "Failed to start MCP server"
Symptoms: - Error message when starting Claude - MCP tools not available in conversation
Solutions:
Check Python Installation
# Check Python version
python --version
# Should be 3.10-3.14
# If not found, try:
python3 --version
Check FMP-Data Installation
# Check if installed
pip show fmp-data
# If not installed:
pip install "fmp-data[mcp]"
# Or with pip3:
pip3 install "fmp-data[mcp]"
Fix Python Path in Config
Find your Python executable:
Update your config with the correct path:
{
"mcpServers": {
"fmp-data": {
"command": "/usr/bin/python3", // Use your actual path
"args": ["-m", "fmp_data.mcp"],
"env": {
"FMP_API_KEY": "your_key"
}
}
}
}
3. Rate Limit Errors
Symptoms: - "Rate limit exceeded" messages - Claude stops fetching financial data after a few queries
Solutions:
Check Your API Tier
# Check your current limits
import requests
response = requests.get(
"https://financialmodelingprep.com/stable/profile?symbol=AAPL",
params={"apikey": "YOUR_KEY"}
)
print(f"Remaining calls: {response.headers.get('X-Rate-Limit-Remaining', 'Unknown')}")
print(f"Limit: {response.headers.get('X-Rate-Limit-Limit', 'Unknown')}")
Reduce Tool Count
Use a minimal configuration to reduce API calls:
{
"mcpServers": {
"fmp-data": {
"command": "python",
"args": ["-m", "fmp_data.mcp"],
"env": {
"FMP_API_KEY": "your_key",
"FMP_MCP_MANIFEST": "examples/mcp_configurations/minimal_manifest.py"
}
}
}
}
4. JSON Configuration Errors
Symptoms: - Claude won't start - "Invalid configuration" error
Solutions:
Validate JSON Syntax
# Test your config file
import json
from pathlib import Path
config_path = Path("path/to/your/claude_desktop_config.json")
try:
with open(config_path) as f:
json.load(f)
print("✅ JSON is valid")
except json.JSONDecodeError as e:
print(f"❌ JSON error: {e}")
Common JSON Mistakes
// ❌ WRONG - Comments not allowed
{
"mcpServers": {
"fmp-data": {
...
}
}
}
// ❌ WRONG - Trailing comma
{
"mcpServers": {
"fmp-data": {
"command": "python",
} // <- Remove this comma
}
}
// ❌ WRONG - Single quotes
{
'mcpServers': { // <- Must use double quotes
...
}
}
// ✅ CORRECT
{
"mcpServers": {
"fmp-data": {
"command": "python",
"args": ["-m", "fmp_data.mcp"],
"env": {
"FMP_API_KEY": "your_key"
}
}
}
}
5. Testing MCP Server Independently
Test Script:
# test_mcp.py
import os
os.environ["FMP_API_KEY"] = "your_key_here"
from fmp_data.mcp.server import create_app
try:
app = create_app()
print("✅ MCP server created successfully")
# Test a simple tool
from fmp_data import FMPDataClient
client = FMPDataClient.from_env()
quote = client.company.get_quote("AAPL")
print(f"✅ API working - AAPL price: ${quote.price}")
except Exception as e:
print(f"❌ Error: {e}")
Run with:
6. Windows-Specific Issues
PowerShell Execution Policy
# Check current policy
Get-ExecutionPolicy
# If Restricted, temporarily allow scripts
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Path Separators
Use forward slashes or escaped backslashes:
// ✅ Good
"FMP_MCP_MANIFEST": "C:/Users/Name/manifests/my_tools.py"
// ✅ Also good
"FMP_MCP_MANIFEST": "C:\\Users\\Name\\manifests\\my_tools.py"
// ❌ Bad
"FMP_MCP_MANIFEST": "C:\Users\Name\manifests\my_tools.py"
7. Mac-Specific Issues
Permission Issues
# Grant Terminal/Python permissions
# System Preferences > Security & Privacy > Privacy > Full Disk Access
# Add Terminal.app or your Python interpreter
Library Access
# Check if config directory exists
ls -la ~/Library/Application\ Support/Claude/
# Create if missing
mkdir -p ~/Library/Application\ Support/Claude/
8. Debug Mode
Create a debug configuration to see detailed logs:
{
"mcpServers": {
"fmp-data": {
"command": "python",
"args": ["-m", "fmp_data.mcp"],
"env": {
"FMP_API_KEY": "your_key",
"FMP_LOG_LEVEL": "DEBUG",
"PYTHONUNBUFFERED": "1"
}
}
}
}
9. Getting Help
Check Versions
# Create a diagnostic report
python -c "
import sys
import platform
import pkg_resources
print('System Information:')
print(f'OS: {platform.system()} {platform.release()}')
print(f'Python: {sys.version}')
print(f'Python Path: {sys.executable}')
try:
fmp_version = pkg_resources.get_distribution('fmp-data').version
print(f'fmp-data: {fmp_version}')
except:
print('fmp-data: Not installed')
try:
import mcp
print('MCP: Installed')
except:
print('MCP: Not installed')
"
Log Files
Check Claude Desktop logs:
- Mac: ~/Library/Logs/Claude/
- Windows: %APPDATA%\Claude\logs\
- Linux: ~/.config/Claude/logs/
Contact Support
- FMP Data Issues: GitHub Issues
- Claude Desktop: Claude Support
Quick Fixes Checklist
- [ ] API key is valid and set correctly
- [ ] Python 3.10-3.14 is installed
- [ ] fmp-data[mcp] package is installed
- [ ] Config file is in the right location
- [ ] Config JSON is valid (no syntax errors)
- [ ] Claude Desktop has been fully restarted
- [ ] Python path in config is correct
- [ ] No firewall blocking Python
- [ ] Not exceeding API rate limits
Test Commands
# 1. Test Python
python --version
# 2. Test package
pip show fmp-data
# 3. Test import
python -c "from fmp_data.mcp.server import create_app; print('Import successful')"
# 4. Test API key
python -c "
import os
import requests
key = os.environ.get('FMP_API_KEY', 'not_set')
if key != 'not_set':
r = requests.get(f'https://financialmodelingprep.com/stable/profile?symbol=AAPL&apikey={key}')
print('API Status:', r.status_code)
else:
print('API key not set')
"
# 5. Test MCP server
export FMP_API_KEY="your_key" # or SET on Windows
python -m fmp_data.mcp
If all tests pass but Claude still doesn't work, the issue is likely with the Claude Desktop configuration or a need to restart Claude.