The ForexFactory MCP Server provides programmatic access to economic calendar data from ForexFactory for trading assistants, LLMs, and agentic workflows.
Tools: Retrieve economic calendar events using ffcal_get_calendar_events for predefined periods (today, tomorrow, yesterday, this_week, next_week, last_week, this_month, next_month, last_month) or custom date ranges, returning JSON-formatted data.
Resources: Subscribe to calendar events via MCP endpoints for today (ffcal://events/today), the current week (ffcal://events/week), or custom date ranges (ffcal://events/range/{start}/{end}).
Prompts: Generate AI-ready trading intelligence including daily prep notes, weekly outlooks, volatility grids, and trade scenario maps. Output format is customizable via a style parameter (bullet points, tables, etc.).
Integration: Compatible with MCP clients including LangChain, n8n, Python applications, and MCP CLI. Supports multiple transport modes (stdio, HTTP, SSE) and Docker-ready deployment for flexible integration scenarios.
Integrates with LangChain agents through MCPToolkit, enabling AI agents to access ForexFactory economic calendar data for trading and financial analysis workflows
Provides MCP-compatible access to ForexFactory economic calendar events for automation workflows and trading pipelines
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ForexFactory MCP Servershow me today's economic events"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ ForexFactory MCP Server
An MCP (Model Context Protocol) server that exposes ForexFactory economic calendar data as resources and tools.
Designed for use in agentic workflows, LLMs, and trading assistants.
๐ Features
โ Retrieve economic calendar events by time period (
today,this_week,custom, etc.)โ Access via MCP resources (for subscription-style access)
โ Access via MCP tools (direct calls from clients/agents)
โ JSON-first responses for easy integration
โก Integrates with LangChain, n8n, or any MCP-compatible client
๐ Development Status
This project is actively developed. The core functionality is stable (retrieving ForexFactory economic calendar events via MCP tools and resources), but we are still:
Expanding features (prompts, deployment options)
Improving documentation and examples
We welcome feedback and contributions while we continue building out the ecosystem.
forexfactory-mcp/
โโโ src/forexfactory_mcp/ # Main package
โ โโโ models/ # Schemas & enums
โ โโโ services/ # Scraper + data normalization
โ โโโ tools/ # MCP tool definitions
โ โโโ resources/ # MCP resource definitions
โ โโโ prompts/ # Prompt templates (optional MCP prompts)
โ โโโ utils/ # Shared helpers & config
โ โโโ server.py # FastMCP server entrypoint
โ
โโโ examples/ # Example clients
โโโ tests/ # Unit tests
โโโ .env.example # Copy to .env for config
โโโ pyproject.toml # Dependencies & metadata
โโโ README.md # Documentation
โโโ .python-version # Python version pin (3.12)(See repo for full details โ this is a high-level layout for contributors.)
๐ง Installation
Requirements
Python 3.12+
uv or pip
A modern terminal or MCP-compatible client
Setup
# Clone repo
git clone https://github.com/kjpou1/forexfactory-mcp.git
cd forexfactory-mcp
# Install dependencies
uv sync # or: pip install -e .
# Copy example environment and adjust if needed
cp .env.example .envโถ๏ธ Usage
โก Quickstart
Start the server with default settings (stdio transport):
uv run ffcal-serverRun with HTTP transport:
uv run ffcal-server --transport http --host 0.0.0.0 --port 8080SSE transport (โ ๏ธ deprecated)
uv run ffcal-server --transport sse --host 127.0.0.1 --port 8001Environment variable defaults
MCP_TRANSPORT=http
MCP_HOST=0.0.0.0
MCP_PORT=8080๐ท๏ธ Namespace
Default namespace:
ffcalOverride via .env:
NAMESPACE=ffcal๐ฆ Resources
Name | Path | Description |
|
| Today's events |
|
| All events this week |
|
| Custom date range |
๐ ๏ธ Tools
Name | Type | Description |
| Tool | Retrieve events for a given period |
Supported values:
today, tomorrow, yesterday, this_week, next_week, last_week, this_month, next_month, last_month, custom๐ Prompts
Name | Description |
| Trader prep note for today |
| Weekly macro event summary |
| Weekly event-risk heatmap |
| Scenario map for specific events |
๐งฉ Prompt Styles
All prompts support a style parameter to control formatting.
Default:
style: str = "bullet points"See the Output Style Reference for available formats.
๐ป Client Examples
Example: Using MCP CLI
mcp call ffcal:get_calendar_events time_period=this_weekExample: Using in Python
from mcp.client.session import Session
async with Session("ws://localhost:8000") as session:
result = await session.call_tool("ffcal:get_calendar_events", {"time_period": "today"})
print(result)Example: LangChain Integration
from langchain.agents import initialize_agent
from langchain_mcp import MCPToolkit
toolkit = MCPToolkit.from_server_url("ws://localhost:8000", namespace="ffcal")
agent = initialize_agent(toolkit.tools)
response = agent.run("What are today's USD-related high impact events?")
print(response)๐ Client Configuration Reference
Includes:
โ Example configs for Claude Desktop (local + Docker)
๐ณ Docker build and setup
๐งฉ VS Code MCP integration (future)
๐งช Testing + troubleshooting checklist
๐ Inspector setup for visual debugging
โ๏ธ Configuration
Variable | Default | Description |
|
| Namespace prefix |
|
| Transport type ( |
|
| Host for HTTP/SSE |
|
| Port for HTTP/SSE |
|
| Playwright timeout |
| System local | Timezone override |
Example .env
MCP_TRANSPORT=http
MCP_HOST=0.0.0.0
MCP_PORT=8080
NAMESPACE=ffcal๐ณ Docker Integration
Supports both stdio (default) and HTTP/SSE.
docker compose build
docker compose up forexfactory_mcpRuns MCP server and exposes it on port 8000.
Target | Description |
| Build Docker image |
| Run server in HTTP mode |
| Run in stdio mode |
| Inspect via MCP Inspector |
| Stop containers |
๐ 1. uv or dependency install fails
Run:
docker compose build --no-cache forexfactory_mcpโก 2. Server exits immediately
Switch to:
make run-http๐ 3. Port in use
Change port:
docker compose run --rm -e MCP_PORT=8080 forexfactory_mcp๐ 4. Browser fails
Install Chromium:
docker compose run forexfactory_mcp playwright install chromium๐งช Testing
pytest -v๐ Roadmap
Event filters by currency and impact
Historical backfill
MCP prompt expansions
Cloud-ready deployment
๐ค Contributing
Fork the repo
Create a feature branch
Commit with a clear message
Push and open a PR
๐ License
MIT License โ see LICENSE for details.