๐ Eulerian Marketing Platform MCP Server
A Model Context Protocol (MCP) proxy server that connects AI assistants (Claude Desktop, Gemini CLI, etc.) to a remote Eulerian Marketing Platform MCP server. This proxy manages authentication, forwards requests, and offers a local MCP interface to your remote Eulerian instance.
๐ Quick Start
This server acts as a transparent proxy between local MCP clients and your remote Eulerian Marketing Platform server:
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ
โ Claude โ โโโโโโโบโ This MCP Proxy โโโโโโโโบ โ Remote Eulerianโ
โ Desktop โ stdio โ (Local) โ HTTP โ MCP Server โ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ
The proxy:
- ๐ Handles authentication with your remote Eulerian server
- ๐ก Forwards MCP requests via HTTP with Bearer token
- ๐ ๏ธ Exposes remote tools and resources to AI assistants
- ๐ Provides comprehensive logging for debugging
- โก Uses async HTTP for better performance
โจ Features
- ๐ Proxy Architecture: Connects local MCP clients to the remote Eulerian MCP server via HTTP.
- ๐ Secure Authentication: Employs Bearer token authentication for accessing the remote server.
- ๐ Cross - platform support: Works on Windows, Linux, and macOS.
- ๐ค Multiple AI clients: Compatible with Claude Desktop, Gemini CLI, Codex CLI, Claude Code, Cursor, and VS Code with GitHub Copilot.
- ๐ Comprehensive Logging: Logs all requests and responses for debugging purposes.
- โก Async HTTP: Utilizes non - blocking requests with httpx for enhanced performance.
- ๐ ๏ธ Tool Discovery: Automatically discovers and exposes remote tools.
- โฑ๏ธ Configurable Timeouts: Allows adjustable request timeouts.
๐ฆ Installation
Quick Start (Recommended)
The simplest way to use this MCP server is with pip.
Install via pip
If you prefer to install the package globally:
pip install eulerian-marketing-platform
Alternative: Install from source
git clone https://github.com/EulerianTechnologies/eulerian-marketing-platform-mcp.git
cd eulerian-marketing-platform-mcp
pip install -e .
๐ป Usage Examples
Basic Usage
Once configured with any client, you can interact with your remote Eulerian Marketing Platform:
User: "What tools are available from Eulerian?"
โ Proxy calls list_remote_tools() and returns all available tools
User: "Call the update_goal tool"
โ Proxy forwards to remote server and update goal settings
User: "Show me campaign details for CAMP-12345"
โ Claude uses call_eulerian_tool() to fetch specific campaign
User: "What resources are available?"
โ Proxy lists all available data sources
The AI assistant will automatically use the appropriate proxy tools to fulfill your requests.
Advanced Usage
Viewing Logs
Monitor proxy activity in real - time:
tail -f /tmp/eulerian-mcp-proxy.log
tail -f /var/log/eulerian-mcp-proxy.log
You'll see detailed logging of:
- Requests to the remote server
- HTTP responses and status codes
- Tool calls and results
- Errors and warnings
๐ Documentation
Prerequisites
- Python 3.10 or higher
- Access to a remote Eulerian Marketing Platform MCP server (HTTP endpoint)
- Valid authentication token for the remote server
- One of the following AI clients:
- Claude Desktop (Windows, macOS, Linux)
- Gemini CLI
- Codex CLI (macOS, Linux)
- Claude Code (macOS, Linux)
- Cursor (Windows, macOS, Linux)
- VS Code with GitHub Copilot (Windows, macOS, Linux)
Available Tools
All API Endpoints supported by the Eulerian API can be queried through the current MCP.
Configuration
Required Environment Variables
EMP_API_ENDPOINT: Your remote Eulerian Marketing Platform MCP server URL (HTTP endpoint)
- Example:
https://dem.api.eulerian.com/mcp
EMP_API_TOKEN: Your authentication token for the remote server, which is linked to your Eulerian account.
Optional Environment Variables
EMP_LOG_FILE: Log file location (default: /tmp/eulerian-mcp-proxy.log)
EMP_TIMEOUT: Request timeout in seconds (default: 300)
Example .env file
Create a .env.example file in your project:
EMP_API_ENDPOINT=https://your-eulerian-instance.com/mcp
EMP_API_TOKEN=your_authentication_token_here
EMP_LOG_FILE=/var/log/eulerian-mcp-proxy.log
EMP_TIMEOUT=600
Setup Instructions by Client
1. Claude Desktop
Claude Desktop supports local MCP servers via stdio transport.
Configuration File Locations
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
Setup Steps
- Open Claude Desktop
- Access configuration:
- Click
Claude menu โ Settings โ Developer โ Edit Config
- Or manually edit the JSON file at the location above
- Add the server configuration:
{
"mcpServers": {
"eulerian-marketing-platform": {
"command": "python",
"args": ["-m", "eulerian_marketing_platform.server"],
"env": {
"EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
"EMP_API_TOKEN": "your_authentication_token_here"
}
}
}
}
- Restart Claude Desktop
- Verify the connection:
- Look for a hammer/tools icon (๐จ) in the bottom - right corner
- Click it to see available Eulerian tools
- Ask Claude: "What Eulerian Marketing Platform tools do you have access to?"
Platform - Specific Notes
- Windows: Use the Run dialog (
Win + R) and enter %APPDATA%\Claude to quickly navigate to the config directory. Ensure Python is in your PATH if using a local installation.
- Linux: The config directory may not exist initially. Create it with:
mkdir -p ~/.config/Claude
- macOS: Access the config via Finder:
Cmd + Shift + G โ ~/Library/Application Support/Claude/
2. Gemini CLI
Gemini CLI supports MCP servers through its configuration file.
Prerequisites
Install Gemini CLI if you haven't already:
npm install -g @google/gemini-cli
Configuration File Location
~/.gemini/settings.json
Setup Steps
- Create or edit the settings file:
mkdir -p ~/.gemini
nano ~/.gemini/settings.json
- Add the MCP server configuration:
{
"mcpServers": {
"eulerian-marketing-platform": {
"command": "python",
"args": ["-m", "eulerian_marketing_platform.server"],
"env": {
"EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
"EMP_API_TOKEN": "your_authentication_token_here"
}
}
}
}
- Start Gemini CLI:
gemini
- Verify the connection:
- Use the
/mcp command to see connected servers
- Ask Gemini: "What tools are available from the Eulerian Marketing Platform?"
Platform - Specific Notes
- Windows: Settings file location:
%USERPROFILE%\.gemini\settings.json. Create directory: mkdir %USERPROFILE%\.gemini
- Linux/macOS: Standard location:
~/.gemini/settings.json
3. Codex CLI
Codex CLI supports MCP servers configured in ~/.codex/config.toml. The configuration is shared between the CLI and the Codex IDE extension (VS Code).
Prerequisites
- Node.js 18+ and npm
- Codex CLI installed:
npm install -g @openai/codex
- Python 3.10+ with this package installed (
pip install eulerian-marketing-platform)
- A ChatGPT Plus, Pro, Team, Edu, or Enterprise subscription (or an OpenAI API key)
Option A: Using the codex mcp add command (easiest)
Run the following command to register the Eulerian MCP server:
codex mcp add eulerian-marketing-platform \
--env EMP_API_ENDPOINT=https://your-eulerian-instance.com/mcp \
--env EMP_API_TOKEN=your_authentication_token_here \
-- python -m eulerian_marketing_platform.server
That's it โ Codex will update ~/.codex/config.toml for you.
Option B: Edit config.toml manually
Open (or create) ~/.codex/config.toml and add the following:
[mcp_servers.eulerian-marketing-platform]
command = "python"
args = ["-m", "eulerian_marketing_platform.server"]
tool_timeout_sec = 300
[mcp_servers.eulerian-marketing-platform.env]
EMP_API_ENDPOINT = "https://your-eulerian-instance.com/mcp"
EMP_API_TOKEN = "your_authentication_token_here"
Note: The section name must use mcp_servers (with an underscore). Using mcp - servers or any other variant will silently fail.
Option C: Project - scoped configuration
To limit the MCP server to a specific project, create a .codex/config.toml file at the root of that project with the same content as above. The project must be marked as trusted by Codex.
Verify the connection
- Launch Codex in your terminal:
codex
- Type
/mcp in the interactive TUI to see all connected MCP servers.
- Confirm that
eulerian-marketing-platform appears in the list with its available tools.
- Try asking:
What Eulerian Marketing Platform tools do you have access to?
Managing the server
codex mcp
codex mcp remove eulerian-marketing-platform
Troubleshooting (Codex CLI)
- Server not appearing in
/mcp: Verify that the [mcp_servers.eulerian-marketing-platform] section is present in ~/.codex/config.toml and that the TOML syntax is valid.
- Timeout errors: Increase
tool_timeout_sec in config.toml (default is 60 seconds). Eulerian queries can take longer, so 300 is recommended.
- Authentication errors: Double - check that
EMP_API_ENDPOINT and EMP_API_TOKEN are correct.
- Python not found: Ensure the
python command resolves to Python 3.10+. You may need to use python3 instead:
command = "python3"
- Package not found: Make sure
eulerian-marketing-platform is installed in the Python environment that Codex will invoke. Run python -m eulerian_marketing_platform.server manually to confirm it works.
- Check logs: Monitor the proxy logs for detailed error information:
tail -f /tmp/eulerian-mcp-proxy.log
4. Claude Code
Claude Code is Anthropic's terminal - based coding agent. It supports MCP servers configured via the claude mcp CLI command or by editing ~/.claude.json.
Prerequisites
- Node.js 18+ and npm
- Claude Code installed:
npm install -g @anthropic-ai/claude-code
- Python 3.10+ with this package installed (
pip install eulerian-marketing-platform)
- An Anthropic API key or Claude subscription
Option A: Using the claude mcp add command (easiest)
claude mcp add eulerian-marketing-platform \
-e EMP_API_ENDPOINT=https://your-eulerian-instance.com/mcp \
-e EMP_API_TOKEN=your_authentication_token_here \
-- python -m eulerian_marketing_platform.server
By default this adds the server with local scope (current project only). To make it available in all projects, add the -s user flag:
claude mcp add -s user eulerian-marketing-platform \
-e EMP_API_ENDPOINT=https://your-eulerian-instance.com/mcp \
-e EMP_API_TOKEN=your_authentication_token_here \
-- python -m eulerian_marketing_platform.server
Option B: Edit ~/.claude.json manually
Open ~/.claude.json and add the server under the mcpServers key:
{
"mcpServers": {
"eulerian-marketing-platform": {
"type": "stdio",
"command": "python",
"args": ["-m", "eulerian_marketing_platform.server"],
"env": {
"EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
"EMP_API_TOKEN": "your_authentication_token_here"
}
}
}
}
Verify the connection
- Launch Claude Code:
claude
- Type
/mcp to see the status of all connected MCP servers.
- Confirm that
eulerian-marketing-platform appears and shows as connected.
- Try asking:
What Eulerian Marketing Platform tools do you have access to?
Managing the server
claude mcp list
claude mcp get eulerian-marketing-platform
claude mcp remove eulerian-marketing-platform
Troubleshooting (Claude Code)
- Server not appearing in
/mcp: Run claude mcp list to confirm it is registered. Check ~/.claude.json for JSON syntax errors.
- Python not found: Ensure the
python command resolves to Python 3.10+. You may need to use python3 instead.
- Package not found: Make sure
eulerian-marketing-platform is installed in the Python environment that Claude Code will invoke.
- Debug mode: Launch Claude Code with verbose MCP logging:
claude --mcp-debug
- Check logs: Monitor the proxy logs for detailed error information:
tail -f /tmp/eulerian-mcp-proxy.log
5. Cursor
Cursor is an AI - powered code editor with built - in MCP support.
Prerequisites
- Cursor installed (download from cursor.com)
- Python 3.10+ with this package installed (
pip install eulerian-marketing-platform)
Configuration File Location
- Global:
~/.cursor/mcp.json
- Project - scoped:
.cursor/mcp.json in your project root
Setup Steps
- Open (or create) the configuration file:
mkdir -p ~/.cursor
nano ~/.cursor/mcp.json
- Add the MCP server configuration:
{
"mcpServers": {
"eulerian-marketing-platform": {
"command": "python",
"args": ["-m", "eulerian_marketing_platform.server"],
"env": {
"EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
"EMP_API_TOKEN": "your_authentication_token_here"
}
}
}
}
- Restart Cursor to load the new configuration.
- Verify the connection:
- Open Cursor Settings โ Tools & Integrations โ MCP Servers
- Confirm that
eulerian-marketing-platform appears and shows a green status
- Switch to Agent mode in the Copilot pane
- Ask: "What Eulerian Marketing Platform tools do you have access to?"
Platform - Specific Notes
- Windows: Global config file:
%USERPROFILE%\.cursor\mcp.json. If python is not in your PATH, use the full path to the Python executable in the command field.
- macOS/Linux: Standard location:
~/.cursor/mcp.json
Troubleshooting (Cursor)
- Server not appearing: Verify that
~/.cursor/mcp.json contains valid JSON. Restart Cursor after any config change.
- Tools not available: Make sure you are in Agent mode (not Ask mode) in the Cursor chat panel.
- Python not found: Ensure the
python command resolves to Python 3.10+. You may need to use python3 or a full path.
- Check logs: Monitor the proxy logs:
tail -f /tmp/eulerian-mcp-proxy.log
6. VS Code / GitHub Copilot
Visual Studio Code supports MCP servers through GitHub Copilot's Agent mode. MCP requires VS Code 1.101 or later.
Prerequisites
- VS Code 1.101+ with the GitHub Copilot extension
- Python 3.10+ with this package installed (
pip install eulerian-marketing-platform)
- A GitHub Copilot subscription
Configuration File Locations
- Workspace:
.vscode/mcp.json in your project root (recommended)
- User/Global: accessible via the command
MCP: Open User Configuration
Note: VS Code uses a "servers" key (not "mcpServers") inside mcp.json.
Setup Steps
- Create the workspace configuration file:
mkdir -p .vscode
nano .vscode/mcp.json
- Add the MCP server configuration:
{
"servers": {
"eulerian-marketing-platform": {
"type": "stdio",
"command": "python",
"args": ["-m", "eulerian_marketing_platform.server"],
"env": {
"EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
"EMP_API_TOKEN": "your_authentication_token_here"
}
}
}
}
Alternatively, to make the server available globally across all workspaces, add the configuration to your User Settings (JSON) (Ctrl+Shift+P โ Preferences: Open User Settings (JSON)):
{
"mcp": {
"servers": {
"eulerian-marketing-platform": {
"type": "stdio",
"command": "python",
"args": ["-m", "eulerian_marketing_platform.server"],
"env": {
"EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
"EMP_API_TOKEN": "your_authentication_token_here"
}
}
}
}
}
- Start the MCP server:
- Open the
.vscode/mcp.json file in the editor
- Click the Start button that appears above the server definition (code lens)
- Or use the Command Palette:
MCP: List Servers โ select the server โ Start
- Verify the connection:
- Switch to Agent mode in the GitHub Copilot Chat panel (toggle located near the chat input)
- Click the Tools button (๐ง) in the Copilot pane to see available Eulerian tools
- Ask: "What Eulerian Marketing Platform tools do you have access to?"
Using input variables for secrets
To avoid hardcoding your token, you can use VS Code input variables:
{
"inputs": [
{
"type": "promptString",
"id": "empToken",
"description": "Eulerian Marketing Platform API Token",
"password": true
}
],
"servers": {
"eulerian-marketing-platform": {
"type": "stdio",
"command": "python",
"args": ["-m", "eulerian_marketing_platform.server"],
"env": {
"EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
"EMP_API_TOKEN": "${input:empToken}"
}
}
}
}
VS Code will prompt you for the token when the server starts.
Troubleshooting (VS Code)
- MCP not available: Ensure you are running VS Code 1.101 or later and have the GitHub Copilot extension installed and enabled.
- Tools not appearing: MCP tools only work in Agent mode. Toggle to Agent mode in the Copilot Chat panel.
- Start button not showing: The code lens (Start button) only appears if the
.vscode folder is at the root of your workspace.
- Python not found: Ensure the
python command resolves to Python 3.10+. You may need to use python3 or a full path.
- Check logs: Monitor the proxy logs:
tail -f /tmp/eulerian-mcp-proxy.log
๐ง Technical Details
The proxy server uses async HTTP requests with httpx for better performance. It handles authentication with the remote Eulerian server using Bearer token authentication. The server also provides comprehensive logging to help with debugging.
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
- Issues: https://github.com/EulerianTechnologies/eulerian-marketing-platform-mcp/issues
- Documentation: https://github.com/EulerianTechnologies/eulerian-marketing-platform-mcp#readme
- Eulerian Technologies: https://www.eulerian.com
MCP server for MCP Registry
mcp - name: io.github.matjmat/eulerian-marketing-platform-mcp
Changelog
0.2.8
- Fixes for proxy disconnection
- Remove unnecessary logging
0.2.3
- Fixes disconnection issue with notifications
0.2.0
- Move to full Proxy mode
- Remove instructions for uvx deployment
- Remove instructions for Mistral integration (too complex)
0.1.0 (Initial Release)
- Initial MCP server implementation
- Support for Claude Desktop, Gemini CLI
- Cross - platform support (Windows, Linux, macOS)
- Environment - based configuration
โ ๏ธ Important Note
Replace all placeholder URLs and tokens with your actual Eulerian Marketing Platform credentials before use.