> ## Documentation Index
> Fetch the complete documentation index at: https://finance.chiefpriest.design/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Complete installation guide for local development and production deployment

## System Requirements

<CardGroup cols={2}>
  <Card title="Minimum Requirements" icon="computer">
    * Python 3.8 or higher
    * 512MB RAM
    * 100MB disk space
    * Internet connection
  </Card>

  <Card title="Recommended" icon="rocket">
    * Python 3.11+
    * 1GB RAM
    * 500MB disk space
    * Stable internet connection
  </Card>
</CardGroup>

## Local Development Setup

### 1. Clone the Repository

```bash theme={null}
git clone https://github.com/your-org/financial-mcp-server.git
cd financial-mcp-server
```

### 2. Create Virtual Environment (Recommended)

<CodeGroup>
  ```bash Python venv theme={null}
  python3 -m venv financial-mcp
  source financial-mcp/bin/activate  # On Windows: financial-mcp\Scripts\activate
  ```

  ```bash Conda theme={null}
  conda create -n financial-mcp python=3.11
  conda activate financial-mcp
  ```

  ```bash Poetry theme={null}
  poetry install
  poetry shell
  ```
</CodeGroup>

### 3. Install Dependencies

```bash theme={null}
pip install -r requirements.txt
```

<Details>
  <summary>View all dependencies</summary>

  ```txt theme={null}
  fastapi==0.104.1
  uvicorn==0.24.0
  pydantic==2.5.0
  requests==2.31.0
  yfinance==0.2.28
  python-multipart==0.0.6
  mcp==1.0.0
  ```
</Details>

### 4. Environment Configuration

Create a `.env` file in the project root:

```bash theme={null}
# Required for FMP professional tools
FMP_API_KEY=your_fmp_api_key

# Server configuration
PORT=8001
HOST=0.0.0.0

# Optional: Logging level
LOG_LEVEL=INFO

# Optional: CORS settings
CORS_ORIGINS=*
```

<Warning>
  Never commit your `.env` file to version control. Add it to `.gitignore`.
</Warning>

### 5. Verify Installation

```bash theme={null}
python3 main.py
```

Expected output:

```
🚀 Starting Enhanced Financial MCP Server
📡 MCP Protocol: http://0.0.0.0:8001/
🌐 REST API: http://0.0.0.0:8001/api/v1/
📚 API Docs: http://0.0.0.0:8001/docs
🔧 Tools Available: 32 (6 YFinance + 26 FMP)
```

## Production Deployment

### Railway Deployment

<Steps>
  <Step title="Connect Repository">
    1. Go to [Railway](https://railway.app)
    2. Create new project from GitHub repository
    3. Select your financial-mcp-server repository
  </Step>

  <Step title="Configure Environment Variables">
    In Railway dashboard:

    ```
    FMP_API_KEY=your_actual_api_key
    PORT=$PORT
    ```
  </Step>

  <Step title="Deploy">
    Railway automatically detects Python and uses the `Procfile`:

    ```
    web: python main.py
    ```
  </Step>
</Steps>

### Docker Deployment

<CodeGroup>
  ```dockerfile Dockerfile theme={null}
  FROM python:3.11-slim

  WORKDIR /app

  COPY requirements.txt .
  RUN pip install --no-cache-dir -r requirements.txt

  COPY . .

  EXPOSE 8001

  CMD ["python", "main.py"]
  ```

  ```bash Build and Run theme={null}
  docker build -t financial-mcp-server .
  docker run -p 8001:8001 -e FMP_API_KEY=your_key financial-mcp-server
  ```

  ```yaml docker-compose.yml theme={null}
  version: '3.8'
  services:
    financial-mcp:
      build: .
      ports:
        - "8001:8001"
      environment:
        - FMP_API_KEY=your_fmp_api_key
        - PORT=8001
      restart: unless-stopped
  ```
</CodeGroup>

### Heroku Deployment

<Steps>
  <Step title="Install Heroku CLI">
    ```bash theme={null}
    # macOS
    brew tap heroku/brew && brew install heroku

    # Other platforms: https://devcenter.heroku.com/articles/heroku-cli
    ```
  </Step>

  <Step title="Create Heroku App">
    ```bash theme={null}
    heroku create your-financial-mcp-server
    heroku config:set FMP_API_KEY=your_actual_api_key
    ```
  </Step>

  <Step title="Deploy">
    ```bash theme={null}
    git push heroku main
    ```
  </Step>
</Steps>

### VPS/Cloud Server

For Ubuntu/Debian servers:

```bash theme={null}
# Update system
sudo apt update && sudo apt upgrade -y

# Install Python and dependencies
sudo apt install python3 python3-pip python3-venv nginx -y

# Clone and setup
git clone https://github.com/your-org/financial-mcp-server.git
cd financial-mcp-server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Create systemd service
sudo nano /etc/systemd/system/financial-mcp.service
```

<Details>
  <summary>systemd service file</summary>

  ```ini theme={null}
  [Unit]
  Description=Financial MCP Server
  After=network.target

  [Service]
  Type=simple
  User=ubuntu
  WorkingDirectory=/home/ubuntu/financial-mcp-server
  Environment=PATH=/home/ubuntu/financial-mcp-server/venv/bin
  Environment=FMP_API_KEY=your_actual_api_key
  ExecStart=/home/ubuntu/financial-mcp-server/venv/bin/python main.py
  Restart=always

  [Install]
  WantedBy=multi-user.target
  ```
</Details>

```bash theme={null}
# Enable and start service
sudo systemctl enable financial-mcp
sudo systemctl start financial-mcp
sudo systemctl status financial-mcp
```

## API Keys Setup

### Financial Modeling Prep (FMP)

<Steps>
  <Step title="Create Account">
    Visit [Financial Modeling Prep](https://financialmodelingprep.com/developer/docs) and create a free account
  </Step>

  <Step title="Get API Key">
    After registration, find your API key in the dashboard
  </Step>

  <Step title="Set Environment Variable">
    ```bash theme={null}
    export FMP_API_KEY="your_actual_api_key_here"
    ```
  </Step>
</Steps>

<Info>
  **Free Tier Limits**: 250 requests/day. Upgrade to paid plans for higher limits and additional features.
</Info>

### YFinance (No API Key Required)

YFinance uses Yahoo Finance's public data and doesn't require an API key. However, it may be subject to rate limiting.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Installation Issues">
    **Python version conflicts:**

    ```bash theme={null}
    python3 --version  # Should be 3.8+
    ```

    **Missing pip:**

    ```bash theme={null}
    python3 -m ensurepip --upgrade
    ```

    **Permission errors:**

    ```bash theme={null}
    pip install --user -r requirements.txt
    ```
  </Accordion>

  <Accordion title="Runtime Issues">
    **Port already in use:**

    ```bash theme={null}
    # Find process using port
    lsof -i :8001

    # Kill process
    kill -9 <PID>

    # Or use different port
    export PORT=8002
    ```

    **Missing environment variables:**

    ```bash theme={null}
    # Check current environment
    env | grep FMP_API_KEY

    # Set if missing
    export FMP_API_KEY="your_key"
    ```
  </Accordion>

  <Accordion title="API Issues">
    **FMP API errors:**

    * Verify API key is correct
    * Check rate limits (250/day for free tier)
    * Ensure internet connectivity

    **YFinance rate limiting:**

    * This is normal behavior from Yahoo Finance
    * Server implements automatic retry logic
    * Consider upgrading to FMP paid plan for reliability
  </Accordion>
</AccordionGroup>

## Health Checks

Verify your installation with these endpoints:

<CodeGroup>
  ```bash Health Check theme={null}
  curl http://localhost:8001/api/v1/health
  ```

  ```bash Test Stock Quote theme={null}
  curl http://localhost:8001/api/v1/stock/AAPL
  ```

  ```bash Test Market Data theme={null}
  curl http://localhost:8001/api/v1/market/gainers
  ```
</CodeGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Configuration" icon="gear" href="/guides/configuration">
    Customize server settings and behavior
  </Card>

  <Card title="API Reference" icon="book" href="/api-reference/introduction">
    Explore all available endpoints
  </Card>

  <Card title="Frontend Integration" icon="code" href="/guides/frontend-integration">
    Connect your application
  </Card>

  <Card title="Troubleshooting" icon="wrench" href="/guides/troubleshooting">
    Common issues and solutions
  </Card>
</CardGroup>
