eulerian-marketing-platform 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,22 @@
1
+ # Eulerian Marketing Platform MCP Proxy Configuration
2
+ # Copy this file to .env and fill in your actual values
3
+
4
+ # REQUIRED: Your remote Eulerian Marketing Platform MCP server endpoint (HTTP URL)
5
+ # This should be the full URL to your remote MCP server including protocol and path
6
+ # Example: https://your-instance.eulerian.net/api/mcp
7
+ EMP_API_ENDPOINT=https://your-eulerian-instance.com/api/mcp
8
+
9
+ # REQUIRED: Your authentication token for the remote Eulerian server
10
+ # This token should have appropriate permissions for the operations you need
11
+ EMP_API_TOKEN=your_authentication_token_here
12
+
13
+ # OPTIONAL: Log file location
14
+ # Default (cross-platform): Uses system temp directory
15
+ # - Linux/macOS: /tmp/eulerian-mcp-proxy.log
16
+ # - Windows: C:\Users\USERNAME\AppData\Local\Temp\eulerian-mcp-proxy.log
17
+ # Custom example:
18
+ # EMP_LOG_FILE=/var/log/eulerian-mcp-proxy.log
19
+
20
+ # OPTIONAL: Request timeout in seconds (default: 300)
21
+ # Increase this if your remote server takes longer to respond
22
+ # EMP_TIMEOUT=600
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Eulerian Technologies
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,7 @@
1
+ include README.md
2
+ include LICENSE
3
+ include requirements.txt
4
+ include .env.example
5
+ recursive-include src *.py
6
+ global-exclude __pycache__
7
+ global-exclude *.py[co]
@@ -0,0 +1,558 @@
1
+ Metadata-Version: 2.1
2
+ Name: eulerian_marketing_platform
3
+ Version: 0.1.1
4
+ Summary: MCP server for Eulerian Marketing Platform - enables AI assistants to interact with Eulerian's marketing analytics and campaign management APIs
5
+ Author-email: Eulerian Technologies <mathieu@eulerian.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/EulerianTechnologies/eulerian-marketing-platform-mcp
8
+ Project-URL: Issues, https://github.com/EulerianTechnologies/eulerian-marketing-platform-mcp/issues
9
+ Project-URL: Documentation, https://github.com/EulerianTechnologies/eulerian-marketing-platform-mcp#readme
10
+ Project-URL: Repository, https://github.com/EulerianTechnologies/eulerian-marketing-platform-mcp
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Operating System :: Microsoft :: Windows
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Operating System :: MacOS
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
+ Requires-Python: >=3.10
24
+ Description-Content-Type: text/markdown
25
+ Provides-Extra: deployment
26
+ Provides-Extra: dev
27
+ License-File: LICENSE
28
+
29
+ # Eulerian Marketing Platform MCP Server
30
+
31
+ A Model Context Protocol (MCP) **proxy server** that bridges AI assistants (Claude Desktop, Gemini CLI, Mistral AI) to a remote Eulerian Marketing Platform MCP server. This proxy handles authentication, request forwarding, and provides a local MCP interface to your remote Eulerian instance.
32
+
33
+ ## How It Works
34
+
35
+ This server acts as a **transparent proxy** between local MCP clients and your remote Eulerian Marketing Platform server:
36
+
37
+ ```
38
+ ┌─────────────┐ ┌──────────────────┐ ┌────────────────┐
39
+ │ Claude │ ◄─────►│ This MCP Proxy │◄─────► │ Remote Eulerian│
40
+ │ Desktop │ stdio │ (Local) │ HTTP │ MCP Server │
41
+ └─────────────┘ └──────────────────┘ └────────────────┘
42
+ ```
43
+
44
+ The proxy:
45
+ - 🔐 Handles authentication with your remote Eulerian server
46
+ - 📡 Forwards MCP requests via HTTP with Bearer token
47
+ - 🛠️ Exposes remote tools and resources to AI assistants
48
+ - 📝 Provides comprehensive logging for debugging
49
+ - ⚡ Uses async HTTP for better performance
50
+
51
+ ## Features
52
+
53
+ - **🔌 Proxy Architecture**: Bridges local MCP clients to remote Eulerian MCP server via HTTP
54
+ - **🔐 Secure Authentication**: Uses Bearer token authentication for remote server access
55
+ - **🌐 Cross-platform support**: Works on Windows, Linux, and macOS
56
+ - **🤖 Multiple AI clients**: Compatible with Claude Desktop, Gemini CLI, and Mistral AI
57
+ - **📝 Comprehensive Logging**: Logs all requests/responses for debugging
58
+ - **⚡ Async HTTP**: Non-blocking requests using httpx for better performance
59
+ - **🛠️ Tool Discovery**: Automatically discovers and exposes remote tools
60
+ - **⏱️ Configurable Timeouts**: Adjustable request timeouts
61
+ - **🔍 Easy Installation**: Deploy with a single command using `uvx`
62
+
63
+ ## Prerequisites
64
+
65
+ - Python 3.10 or higher
66
+ - Access to a remote Eulerian Marketing Platform MCP server (HTTP endpoint)
67
+ - Valid authentication token for the remote server
68
+ - One of the following AI clients:
69
+ - Claude Desktop (Windows, macOS, Linux)
70
+ - Gemini CLI
71
+ - Mistral AI Le Chat (requires remote deployment)
72
+
73
+ ## Available Tools
74
+
75
+ The proxy exposes the following tools to AI assistants:
76
+
77
+ 1. **`list_remote_tools()`** - Discover all tools available on the remote Eulerian server
78
+ 2. **`call_eulerian_tool(tool_name, arguments)`** - Call any remote tool with arguments
79
+ 3. **`get_eulerian_resources()`** - List available resources (data sources)
80
+ 4. **`read_eulerian_resource(uri)`** - Read a specific resource by URI
81
+ 5. **`get_server_info()`** - Get remote server version and capabilities
82
+
83
+ For detailed information on how these tools work, see [FASTMCP_PROXY_GUIDE.md](FASTMCP_PROXY_GUIDE.md).
84
+
85
+ ## Installation
86
+
87
+ ### Prerequisites Check
88
+
89
+ Before installing, verify you have `uvx` installed. This is the recommended way to run the MCP server.
90
+
91
+ **Check if uvx is installed:**
92
+ ```bash
93
+ uvx --version
94
+ ```
95
+
96
+ **If not installed, see [UVX_DEPLOYMENT_GUIDE.md](UVX_DEPLOYMENT_GUIDE.md) for detailed installation instructions.**
97
+
98
+ **Quick install (Linux/macOS):**
99
+ ```bash
100
+ # Run the included script
101
+ chmod +x install-uvx.sh
102
+ ./install-uvx.sh
103
+
104
+ # Or install manually
105
+ curl -LsSf https://astral.sh/uv/install.sh | sh
106
+ ```
107
+
108
+ **Quick install (Windows PowerShell - Run as Administrator):**
109
+ ```powershell
110
+ # Run the included script
111
+ .\install-uvx.ps1
112
+
113
+ # Or install manually
114
+ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
115
+ ```
116
+
117
+ ---
118
+
119
+ ### Quick Start (Recommended)
120
+
121
+ The easiest way to use this MCP server is with `uvx`, which automatically handles dependencies without requiring a separate installation:
122
+
123
+ ```bash
124
+ # No installation needed! Just configure your AI client (see below)
125
+ ```
126
+
127
+ ### Alternative: Install via pip
128
+
129
+ If you prefer to install the package globally:
130
+
131
+ ```bash
132
+ pip install eulerian-marketing-platform
133
+ ```
134
+
135
+ ### Alternative: Install from source
136
+
137
+ ```bash
138
+ git clone https://github.com/EulerianTechnologies/eulerian-marketing-platform-mcp.git
139
+ cd eulerian-marketing-platform-mcp
140
+ pip install -e .
141
+ ```
142
+
143
+ ## Configuration
144
+
145
+ ### Required Environment Variables
146
+
147
+ - `EMP_API_ENDPOINT`: Your remote Eulerian Marketing Platform MCP server URL (HTTP endpoint)
148
+ - Example: `https://your-eulerian-instance.com/api/mcp`
149
+ - `EMP_API_TOKEN`: Your authentication token for the remote server
150
+
151
+ ### Optional Environment Variables
152
+
153
+ - `EMP_LOG_FILE`: Log file location (default: `/tmp/eulerian-mcp-proxy.log`)
154
+ - `EMP_TIMEOUT`: Request timeout in seconds (default: `300`)
155
+
156
+ ### Example `.env` file
157
+
158
+ Create a `.env.example` file in your project:
159
+
160
+ ```bash
161
+ # Required
162
+ EMP_API_ENDPOINT=https://your-eulerian-instance.com/mcp
163
+ EMP_API_TOKEN=your_authentication_token_here
164
+
165
+ # Optional
166
+ EMP_LOG_FILE=/var/log/eulerian-mcp-proxy.log
167
+ EMP_TIMEOUT=600
168
+ ```
169
+
170
+ ## Setup Instructions by Client
171
+
172
+ ### 1. Claude Desktop
173
+
174
+ Claude Desktop supports local MCP servers via stdio transport.
175
+
176
+ #### Configuration File Locations
177
+
178
+ - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
179
+ - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
180
+ - **Linux**: `~/.config/Claude/claude_desktop_config.json`
181
+
182
+ #### Setup Steps
183
+
184
+ 1. **Open Claude Desktop**
185
+ 2. **Access configuration**:
186
+ - Click `Claude` menu → `Settings` → `Developer` → `Edit Config`
187
+ - Or manually edit the JSON file at the location above
188
+
189
+ 3. **Add the server configuration**:
190
+
191
+ ```json
192
+ {
193
+ "mcpServers": {
194
+ "eulerian-marketing-platform": {
195
+ "command": "uvx",
196
+ "args": ["eulerian-marketing-platform"],
197
+ "env": {
198
+ "EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
199
+ "EMP_API_TOKEN": "your_authentication_token_here"
200
+ }
201
+ }
202
+ }
203
+ }
204
+ ```
205
+
206
+ **Alternative: If using pip installation**:
207
+
208
+ ```json
209
+ {
210
+ "mcpServers": {
211
+ "eulerian-marketing-platform": {
212
+ "command": "python",
213
+ "args": ["-m", "eulerian_marketing_platform.server"],
214
+ "env": {
215
+ "EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
216
+ "EMP_API_TOKEN": "your_authentication_token_here"
217
+ }
218
+ }
219
+ }
220
+ }
221
+ ```
222
+
223
+ 4. **Restart Claude Desktop**
224
+
225
+ 5. **Verify the connection**:
226
+ - Look for a hammer/tools icon (🔨) in the bottom-right corner
227
+ - Click it to see available Eulerian tools
228
+ - Ask Claude: "What Eulerian Marketing Platform tools do you have access to?"
229
+
230
+ #### Platform-Specific Notes
231
+
232
+ **Windows**:
233
+ - Use the Run dialog (`Win + R`) and enter `%APPDATA%\Claude` to quickly navigate to the config directory
234
+ - If using a local installation, ensure Python is in your PATH
235
+
236
+ **Linux**:
237
+ - The config directory may not exist initially - create it with: `mkdir -p ~/.config/Claude`
238
+ - Ensure `uvx` is installed: `pip install uv`
239
+
240
+ **macOS**:
241
+ - Access the config via Finder: `Cmd + Shift + G` → `~/Library/Application Support/Claude/`
242
+
243
+ ---
244
+
245
+ ### 2. Gemini CLI
246
+
247
+ Gemini CLI supports MCP servers through its configuration file.
248
+
249
+ #### Prerequisites
250
+
251
+ Install Gemini CLI if you haven't already:
252
+
253
+ ```bash
254
+ npm install -g @google/gemini-cli
255
+ ```
256
+
257
+ #### Configuration File Location
258
+
259
+ `~/.gemini/settings.json`
260
+
261
+ #### Setup Steps
262
+
263
+ 1. **Create or edit the settings file**:
264
+
265
+ ```bash
266
+ # Create the directory if it doesn't exist
267
+ mkdir -p ~/.gemini
268
+
269
+ # Edit the settings file
270
+ nano ~/.gemini/settings.json
271
+ ```
272
+
273
+ 2. **Add the MCP server configuration**:
274
+
275
+ ```json
276
+ {
277
+ "mcpServers": {
278
+ "eulerian-marketing-platform": {
279
+ "command": "uvx",
280
+ "args": ["eulerian-marketing-platform"],
281
+ "env": {
282
+ "EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
283
+ "EMP_API_TOKEN": "your_authentication_token_here"
284
+ }
285
+ }
286
+ }
287
+ }
288
+ ```
289
+
290
+ 3. **Start Gemini CLI**:
291
+
292
+ ```bash
293
+ gemini
294
+ ```
295
+
296
+ 4. **Verify the connection**:
297
+ - Use the `/mcp` command to see connected servers
298
+ - Ask Gemini: "What tools are available from the Eulerian Marketing Platform?"
299
+
300
+ #### Platform-Specific Notes
301
+
302
+ **Windows**:
303
+ - Settings file location: `%USERPROFILE%\.gemini\settings.json`
304
+ - Create directory: `mkdir %USERPROFILE%\.gemini`
305
+
306
+ **Linux/macOS**:
307
+ - Standard location: `~/.gemini/settings.json`
308
+
309
+ ---
310
+
311
+ ### 3. Mistral AI (Le Chat)
312
+
313
+ Mistral's Le Chat web interface supports MCP servers through **Custom Connectors**, but they must be deployed as **remote servers** with HTTP/SSE transport.
314
+
315
+ #### Important Limitations
316
+
317
+ - ❌ **Local stdio servers are NOT supported** by Mistral Le Chat
318
+ - ✅ **Only remote HTTP/SSE servers** are supported
319
+ - 📡 Your server must be publicly accessible via HTTPS
320
+
321
+ #### Deployment Options
322
+
323
+ You'll need to deploy your MCP server to a cloud platform. Popular options include:
324
+
325
+ - **Render** (https://render.com)
326
+ - **Railway** (https://railway.app)
327
+ - **Fly.io** (https://fly.io)
328
+ - **AWS Lambda** (with API Gateway)
329
+ - **Google Cloud Run**
330
+ - **Azure Container Instances**
331
+
332
+ #### Server Modification for Remote Deployment
333
+
334
+ Modify the `server.py` to support HTTP/SSE transport:
335
+
336
+ ```python
337
+ # In your server.py main() function
338
+ def main() -> None:
339
+ """Entry point for the MCP server."""
340
+ validate_config()
341
+
342
+ # For remote deployment (Mistral AI)
343
+ import sys
344
+ if "--remote" in sys.argv:
345
+ mcp.run(transport="sse", port=8000)
346
+ else:
347
+ # Default stdio for local clients
348
+ mcp.run()
349
+ ```
350
+
351
+ #### Example: Deploy to Render
352
+
353
+ 1. **Create a `render.yaml` file**:
354
+
355
+ ```yaml
356
+ services:
357
+ - type: web
358
+ name: eulerian-mcp-server
359
+ env: python
360
+ buildCommand: pip install -e .
361
+ startCommand: python -m eulerian_marketing_platform.server --remote
362
+ envVars:
363
+ - key: EMP_API_ENDPOINT
364
+ sync: false
365
+ - key: EMP_API_TOKEN
366
+ sync: false
367
+ ```
368
+
369
+ 2. **Push to GitHub and connect to Render**
370
+
371
+ 3. **Set environment variables in Render dashboard**
372
+
373
+ #### Setup in Mistral Le Chat
374
+
375
+ 1. **Open Le Chat** (https://chat.mistral.ai)
376
+
377
+ 2. **Navigate to Connectors**:
378
+ - Click the sidebar toggle
379
+ - Go to `Intelligence` → `Connectors`
380
+ - Click `+ Add Connector`
381
+ - Select `Add custom connector`
382
+
383
+ 3. **Configure the connector**:
384
+ - **Name**: Eulerian Marketing Platform
385
+ - **URL**: `https://your-deployed-server.render.com/mcp`
386
+ - **Description**: Access to Eulerian Marketing Platform analytics and campaigns
387
+ - **Authentication**:
388
+ - Select `API Token Authentication` if your deployment requires it
389
+ - Or `No Authentication` if your server handles auth via environment variables
390
+
391
+ 4. **Connect and test**:
392
+ - Click `Connect`
393
+ - Once connected, enable it in a chat session
394
+ - Ask: "What Eulerian Marketing Platform capabilities do you have?"
395
+
396
+ #### Security Recommendations for Remote Deployment
397
+
398
+ - ✅ Always use HTTPS (not HTTP)
399
+ - ✅ Implement rate limiting
400
+ - ✅ Add request origin validation
401
+ - ✅ Use environment variables for secrets (never hardcode)
402
+ - ✅ Monitor server logs for unusual activity
403
+ - ✅ Consider adding IP allowlisting if possible
404
+
405
+ ---
406
+
407
+ ## Usage Examples
408
+
409
+ Once configured with any client, you can interact with your remote Eulerian Marketing Platform:
410
+
411
+ ```
412
+ User: "What tools are available from Eulerian?"
413
+ → Proxy calls list_remote_tools() and returns all available tools
414
+
415
+ User: "Call the get_campaigns tool"
416
+ → Proxy forwards to remote server and returns campaign data
417
+
418
+ User: "Show me campaign details for CAMP-12345"
419
+ → Claude uses call_eulerian_tool() to fetch specific campaign
420
+
421
+ User: "What resources are available?"
422
+ → Proxy lists all available data sources
423
+
424
+ User: "Read the configuration at eulerian://config/settings"
425
+ → Proxy fetches and returns the configuration
426
+ ```
427
+
428
+ The AI assistant will automatically use the appropriate proxy tools to fulfill your requests.
429
+
430
+ ### Viewing Logs
431
+
432
+ Monitor proxy activity in real-time:
433
+
434
+ ```bash
435
+ # Default log location
436
+ tail -f /tmp/eulerian-mcp-proxy.log
437
+
438
+ # Custom log location
439
+ tail -f /var/log/eulerian-mcp-proxy.log
440
+ ```
441
+
442
+ You'll see detailed logging of:
443
+ - Requests to the remote server
444
+ - HTTP responses and status codes
445
+ - Tool calls and results
446
+ - Errors and warnings
447
+
448
+ ## Troubleshooting
449
+
450
+ ### Common Issues
451
+
452
+ #### "EMP_API_ENDPOINT environment variable is required"
453
+ - **Solution**: Ensure you've set the `EMP_API_ENDPOINT` in your configuration
454
+ - Check that there are no typos in the environment variable name
455
+
456
+ #### "EMP_API_TOKEN environment variable is required"
457
+ - **Solution**: Ensure you've set the `EMP_API_TOKEN` in your configuration
458
+ - Verify your token is valid and hasn't expired
459
+
460
+ #### Server not appearing in Claude Desktop
461
+ - **Solution**:
462
+ - Restart Claude Desktop completely
463
+ - Check the configuration file for JSON syntax errors
464
+ - Verify the file path in your config is correct
465
+ - Look at logs:
466
+ - macOS: `~/Library/Logs/Claude/mcp-server-*.log`
467
+ - Windows: `%APPDATA%\Claude\logs\`
468
+
469
+ #### Tools not showing in Gemini CLI
470
+ - **Solution**:
471
+ - Use `/mcp` command to check server status
472
+ - Verify the settings.json is valid JSON
473
+ - Restart Gemini CLI
474
+
475
+ #### Mistral connector fails to connect
476
+ - **Solution**:
477
+ - Verify your server is publicly accessible via `curl https://your-server.com/mcp`
478
+ - Check server logs for errors
479
+ - Ensure you're using HTTPS (not HTTP)
480
+ - Verify the `/mcp` endpoint path is correct
481
+
482
+ ### Debug Mode
483
+
484
+ For detailed debugging:
485
+
486
+ ```bash
487
+ # Run with MCP Inspector
488
+ npx @modelcontextprotocol/inspector uvx eulerian-marketing-platform
489
+
490
+ # Or with environment variables
491
+ EMP_API_ENDPOINT=your_endpoint EMP_API_TOKEN=your_token uvx eulerian-marketing-platform
492
+ ```
493
+
494
+ ## Development
495
+
496
+ ### Running Tests
497
+
498
+ ```bash
499
+ # Install development dependencies
500
+ pip install -e ".[dev]"
501
+
502
+ # Run tests
503
+ pytest
504
+
505
+ # Run with coverage
506
+ pytest --cov=eulerian_marketing_platform
507
+ ```
508
+
509
+ ### Building from Source
510
+
511
+ ```bash
512
+ # Clone the repository
513
+ git clone https://github.com/EulerianTechnologies/eulerian-marketing-platform-mcp.git
514
+ cd eulerian-marketing-platform-mcp
515
+
516
+ # Install in development mode
517
+ pip install -e .
518
+
519
+ # Build distribution
520
+ pip install build
521
+ python -m build
522
+
523
+ # This creates:
524
+ # dist/eulerian_marketing_platform-0.1.0.tar.gz
525
+ # dist/eulerian_marketing_platform-0.1.0-py3-none-any.whl
526
+ ```
527
+
528
+ ## Contributing
529
+
530
+ Contributions are welcome! Please feel free to submit a Pull Request.
531
+
532
+ 1. Fork the repository
533
+ 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
534
+ 3. Commit your changes (`git commit -m 'Add amazing feature'`)
535
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
536
+ 5. Open a Pull Request
537
+
538
+ ## License
539
+
540
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
541
+
542
+ ## Support
543
+
544
+ - **Issues**: https://github.com/EulerianTechnologies/eulerian-marketing-platform-mcp/issues
545
+ - **Documentation**: https://github.com/EulerianTechnologies/eulerian-marketing-platform-mcp#readme
546
+ - **Eulerian Technologies**: https://www.eulerian.com
547
+
548
+ ## Changelog
549
+
550
+ ### 0.1.0 (Initial Release)
551
+ - Initial MCP server implementation
552
+ - Support for Claude Desktop, Gemini CLI, and Mistral AI
553
+ - Cross-platform support (Windows, Linux, macOS)
554
+ - Environment-based configuration
555
+
556
+ ---
557
+
558
+ **Note**: Replace all placeholder URLs and tokens with your actual Eulerian Marketing Platform credentials before use.