A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
An MCP (Model Context Protocol) server that exposes ForexFactory economic calendar data as structured tools and resource
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.
today, this_week, custom, etc.)This project is actively developed. The core functionality is stable (retrieving ForexFactory economic calendar events via MCP tools and resources), but we are still:
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.)
# Clone repo
git clone https://github.com/kjpou1/forexfactory-mcp.git
cd forexfactory-mcp
# Install dependencies
uv sync # or: pip install -e .
# Install Playwright browser binaries
uv run playwright install chromium
# or, if using pip/venv:
playwright install chromium
# Copy example environment and adjust if needed
cp .env.example .env
Start the server with default settings (stdio transport):
uv run ffcal-server
Run with HTTP transport:
uv run ffcal-server --transport http --host 0.0.0.0 --port 8080
uv run ffcal-server --transport sse --host 127.0.0.1 --port 8001
MCP_TRANSPORT=http
MCP_HOST=0.0.0.0
MCP_PORT=8080
Default namespace:
ffcal
Override via .env:
NAMESPACE=ffcal
| Name | Path | Description |
|---|---|---|
events_today | ffcal://events/today | Today's events |
events_week | ffcal://events/week | All events this week |
events_range | ffcal://events/range/{start}/{end} | Custom date range |
| Name | Type | Description |
|---|---|---|
ffcal_get_calendar_events | 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
| Name | Description |
|---|---|
ffcal_daily_prep | Trader prep note for today |
ffcal_weekly_outlook | Weekly macro event summary |
ffcal_volatility_grid | Weekly event-risk heatmap |
ffcal_trade_map_scenarios | Scenario map for specific events |
All prompts support a style parameter to control formatting.
Default:
style: str = "bullet points"
See the Output Style Reference for available formats.
mcp call ffcal:get_calendar_events time_period=this_week
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)
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)
Includes:
| Variable | Default | Description |
|---|---|---|
NAMESPACE | ffcal | Namespace prefix |
MCP_TRANSPORT | stdio | Transport type (stdio, http, sse) |
MCP_HOST | 127.0.0.1 | Host for HTTP/SSE |
MCP_PORT | 8000 | Port for HTTP/SSE |
SCRAPER_TIMEOUT_MS | 5000 | Playwright timeout |
LOCAL_TIMEZONE | System local | Timezone override |
.envMCP_TRANSPORT=http
MCP_HOST=0.0.0.0
MCP_PORT=8080
NAMESPACE=ffcal
Supports both stdio (default) and HTTP/SSE.
docker compose build
docker compose up forexfactory_mcp
Runs MCP server and exposes it on port 8000.
| Target | Description |
|---|---|
make build | Build Docker image |
make run-http | Run server in HTTP mode |
make run-stdio | Run in stdio mode |
make dev-http | Inspect via MCP Inspector |
make stop | Stop containers |
uv or dependency install failsRun:
docker compose build --no-cache forexfactory_mcp
Switch to:
make run-http
Change port:
docker compose run --rm -e MCP_PORT=8080 forexfactory_mcp
Install Chromium:
docker compose run forexfactory_mcp playwright install chromium
pytest -v
MIT License – see LICENSE for details.
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
A trilingual (繁中 / English / 简中) learning roadmap for agentic AI: from LLM basics to multi-agent systems, with 240+ cura
MCP server integration for DaVinci Resolve Studio