eulerian-marketing-platform 0.2.0__tar.gz → 0.2.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.
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/PKG-INFO +18 -183
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/README.md +17 -182
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/pyproject.toml +1 -1
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/setup.cfg +1 -1
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/src/eulerian_marketing_platform/__init__.py +1 -1
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/src/eulerian_marketing_platform.egg-info/PKG-INFO +18 -183
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/.env.example +0 -0
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/LICENSE +0 -0
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/MANIFEST.in +0 -0
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/requirements.txt +0 -0
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/src/eulerian_marketing_platform/server.py +0 -0
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/src/eulerian_marketing_platform.egg-info/SOURCES.txt +0 -0
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/src/eulerian_marketing_platform.egg-info/dependency_links.txt +0 -0
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/src/eulerian_marketing_platform.egg-info/entry_points.txt +0 -0
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/src/eulerian_marketing_platform.egg-info/requires.txt +0 -0
- {eulerian_marketing_platform-0.2.0 → eulerian_marketing_platform-0.2.1}/src/eulerian_marketing_platform.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: eulerian_marketing_platform
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: MCP server for Eulerian Marketing Platform - enables AI assistants to interact with Eulerian's marketing analytics and campaign management APIs
|
|
5
5
|
Author-email: Eulerian Technologies <mathieu@eulerian.com>
|
|
6
6
|
License: MIT
|
|
@@ -28,7 +28,7 @@ License-File: LICENSE
|
|
|
28
28
|
|
|
29
29
|
# Eulerian Marketing Platform MCP Server
|
|
30
30
|
|
|
31
|
-
A Model Context Protocol (MCP) **proxy server** that bridges AI assistants (Claude Desktop, Gemini CLI,
|
|
31
|
+
A Model Context Protocol (MCP) **proxy server** that bridges AI assistants (Claude Desktop, Gemini CLI, etc ...) 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
32
|
|
|
33
33
|
## How It Works
|
|
34
34
|
|
|
@@ -53,12 +53,11 @@ The proxy:
|
|
|
53
53
|
- **🔌 Proxy Architecture**: Bridges local MCP clients to remote Eulerian MCP server via HTTP
|
|
54
54
|
- **🔐 Secure Authentication**: Uses Bearer token authentication for remote server access
|
|
55
55
|
- **🌐 Cross-platform support**: Works on Windows, Linux, and macOS
|
|
56
|
-
- **🤖 Multiple AI clients**: Compatible with Claude Desktop
|
|
56
|
+
- **🤖 Multiple AI clients**: Compatible with Claude Desktop and Gemini CLI
|
|
57
57
|
- **📝 Comprehensive Logging**: Logs all requests/responses for debugging
|
|
58
58
|
- **⚡ Async HTTP**: Non-blocking requests using httpx for better performance
|
|
59
59
|
- **🛠️ Tool Discovery**: Automatically discovers and exposes remote tools
|
|
60
60
|
- **⏱️ Configurable Timeouts**: Adjustable request timeouts
|
|
61
|
-
- **🔍 Easy Installation**: Deploy with a single command using `uvx`
|
|
62
61
|
|
|
63
62
|
## Prerequisites
|
|
64
63
|
|
|
@@ -68,63 +67,18 @@ The proxy:
|
|
|
68
67
|
- One of the following AI clients:
|
|
69
68
|
- Claude Desktop (Windows, macOS, Linux)
|
|
70
69
|
- Gemini CLI
|
|
71
|
-
- Mistral AI Le Chat (requires remote deployment)
|
|
72
70
|
|
|
73
71
|
## Available Tools
|
|
74
72
|
|
|
75
|
-
|
|
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).
|
|
73
|
+
All API Endpoints supported by the [Eulerian API](https://doc.api.eulerian.com) can be queried through the current MCP.
|
|
84
74
|
|
|
85
75
|
## Installation
|
|
86
76
|
|
|
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
77
|
### Quick Start (Recommended)
|
|
120
78
|
|
|
121
|
-
The easiest way to use this MCP server is with `
|
|
122
|
-
|
|
123
|
-
```bash
|
|
124
|
-
# No installation needed! Just configure your AI client (see below)
|
|
125
|
-
```
|
|
79
|
+
The easiest way to use this MCP server is with `pip`.
|
|
126
80
|
|
|
127
|
-
###
|
|
81
|
+
### Install via pip
|
|
128
82
|
|
|
129
83
|
If you prefer to install the package globally:
|
|
130
84
|
|
|
@@ -145,8 +99,8 @@ pip install -e .
|
|
|
145
99
|
### Required Environment Variables
|
|
146
100
|
|
|
147
101
|
- `EMP_API_ENDPOINT`: Your remote Eulerian Marketing Platform MCP server URL (HTTP endpoint)
|
|
148
|
-
- Example: `https://
|
|
149
|
-
- `EMP_API_TOKEN`: Your authentication token for the remote server
|
|
102
|
+
- Example: `https://dem.api.eulerian.com/mcp`
|
|
103
|
+
- `EMP_API_TOKEN`: Your authentication token for the remote server, it is the one linked to your Eulerian account.
|
|
150
104
|
|
|
151
105
|
### Optional Environment Variables
|
|
152
106
|
|
|
@@ -188,23 +142,6 @@ Claude Desktop supports local MCP servers via stdio transport.
|
|
|
188
142
|
|
|
189
143
|
3. **Add the server configuration**:
|
|
190
144
|
|
|
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
145
|
```json
|
|
209
146
|
{
|
|
210
147
|
"mcpServers": {
|
|
@@ -235,7 +172,6 @@ Claude Desktop supports local MCP servers via stdio transport.
|
|
|
235
172
|
|
|
236
173
|
**Linux**:
|
|
237
174
|
- The config directory may not exist initially - create it with: `mkdir -p ~/.config/Claude`
|
|
238
|
-
- Ensure `uvx` is installed: `pip install uv`
|
|
239
175
|
|
|
240
176
|
**macOS**:
|
|
241
177
|
- Access the config via Finder: `Cmd + Shift + G` → `~/Library/Application Support/Claude/`
|
|
@@ -276,8 +212,8 @@ nano ~/.gemini/settings.json
|
|
|
276
212
|
{
|
|
277
213
|
"mcpServers": {
|
|
278
214
|
"eulerian-marketing-platform": {
|
|
279
|
-
"command": "
|
|
280
|
-
"args": ["
|
|
215
|
+
"command": "python",
|
|
216
|
+
"args": ["-m", "eulerian_marketing_platform.server"],
|
|
281
217
|
"env": {
|
|
282
218
|
"EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
|
|
283
219
|
"EMP_API_TOKEN": "your_authentication_token_here"
|
|
@@ -308,102 +244,6 @@ gemini
|
|
|
308
244
|
|
|
309
245
|
---
|
|
310
246
|
|
|
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
247
|
## Usage Examples
|
|
408
248
|
|
|
409
249
|
Once configured with any client, you can interact with your remote Eulerian Marketing Platform:
|
|
@@ -412,17 +252,14 @@ Once configured with any client, you can interact with your remote Eulerian Mark
|
|
|
412
252
|
User: "What tools are available from Eulerian?"
|
|
413
253
|
→ Proxy calls list_remote_tools() and returns all available tools
|
|
414
254
|
|
|
415
|
-
User: "Call the
|
|
416
|
-
→ Proxy forwards to remote server and
|
|
255
|
+
User: "Call the update_goal tool"
|
|
256
|
+
→ Proxy forwards to remote server and update goal settings
|
|
417
257
|
|
|
418
258
|
User: "Show me campaign details for CAMP-12345"
|
|
419
259
|
→ Claude uses call_eulerian_tool() to fetch specific campaign
|
|
420
260
|
|
|
421
261
|
User: "What resources are available?"
|
|
422
262
|
→ Proxy lists all available data sources
|
|
423
|
-
|
|
424
|
-
User: "Read the configuration at eulerian://config/settings"
|
|
425
|
-
→ Proxy fetches and returns the configuration
|
|
426
263
|
```
|
|
427
264
|
|
|
428
265
|
The AI assistant will automatically use the appropriate proxy tools to fulfill your requests.
|
|
@@ -472,13 +309,6 @@ You'll see detailed logging of:
|
|
|
472
309
|
- Verify the settings.json is valid JSON
|
|
473
310
|
- Restart Gemini CLI
|
|
474
311
|
|
|
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
312
|
### Debug Mode
|
|
483
313
|
|
|
484
314
|
For detailed debugging:
|
|
@@ -547,9 +377,14 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
547
377
|
|
|
548
378
|
## Changelog
|
|
549
379
|
|
|
380
|
+
### 0.2.0
|
|
381
|
+
- Move to full Proxy mode
|
|
382
|
+
- Remove instructions for uvx deployment
|
|
383
|
+
- Remove instructions for Mistral integration (too complex)
|
|
384
|
+
|
|
550
385
|
### 0.1.0 (Initial Release)
|
|
551
386
|
- Initial MCP server implementation
|
|
552
|
-
- Support for Claude Desktop, Gemini CLI
|
|
387
|
+
- Support for Claude Desktop, Gemini CLI
|
|
553
388
|
- Cross-platform support (Windows, Linux, macOS)
|
|
554
389
|
- Environment-based configuration
|
|
555
390
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Eulerian Marketing Platform MCP Server
|
|
2
2
|
|
|
3
|
-
A Model Context Protocol (MCP) **proxy server** that bridges AI assistants (Claude Desktop, Gemini CLI,
|
|
3
|
+
A Model Context Protocol (MCP) **proxy server** that bridges AI assistants (Claude Desktop, Gemini CLI, etc ...) 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.
|
|
4
4
|
|
|
5
5
|
## How It Works
|
|
6
6
|
|
|
@@ -25,12 +25,11 @@ The proxy:
|
|
|
25
25
|
- **🔌 Proxy Architecture**: Bridges local MCP clients to remote Eulerian MCP server via HTTP
|
|
26
26
|
- **🔐 Secure Authentication**: Uses Bearer token authentication for remote server access
|
|
27
27
|
- **🌐 Cross-platform support**: Works on Windows, Linux, and macOS
|
|
28
|
-
- **🤖 Multiple AI clients**: Compatible with Claude Desktop
|
|
28
|
+
- **🤖 Multiple AI clients**: Compatible with Claude Desktop and Gemini CLI
|
|
29
29
|
- **📝 Comprehensive Logging**: Logs all requests/responses for debugging
|
|
30
30
|
- **⚡ Async HTTP**: Non-blocking requests using httpx for better performance
|
|
31
31
|
- **🛠️ Tool Discovery**: Automatically discovers and exposes remote tools
|
|
32
32
|
- **⏱️ Configurable Timeouts**: Adjustable request timeouts
|
|
33
|
-
- **🔍 Easy Installation**: Deploy with a single command using `uvx`
|
|
34
33
|
|
|
35
34
|
## Prerequisites
|
|
36
35
|
|
|
@@ -40,63 +39,18 @@ The proxy:
|
|
|
40
39
|
- One of the following AI clients:
|
|
41
40
|
- Claude Desktop (Windows, macOS, Linux)
|
|
42
41
|
- Gemini CLI
|
|
43
|
-
- Mistral AI Le Chat (requires remote deployment)
|
|
44
42
|
|
|
45
43
|
## Available Tools
|
|
46
44
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
1. **`list_remote_tools()`** - Discover all tools available on the remote Eulerian server
|
|
50
|
-
2. **`call_eulerian_tool(tool_name, arguments)`** - Call any remote tool with arguments
|
|
51
|
-
3. **`get_eulerian_resources()`** - List available resources (data sources)
|
|
52
|
-
4. **`read_eulerian_resource(uri)`** - Read a specific resource by URI
|
|
53
|
-
5. **`get_server_info()`** - Get remote server version and capabilities
|
|
54
|
-
|
|
55
|
-
For detailed information on how these tools work, see [FASTMCP_PROXY_GUIDE.md](FASTMCP_PROXY_GUIDE.md).
|
|
45
|
+
All API Endpoints supported by the [Eulerian API](https://doc.api.eulerian.com) can be queried through the current MCP.
|
|
56
46
|
|
|
57
47
|
## Installation
|
|
58
48
|
|
|
59
|
-
### Prerequisites Check
|
|
60
|
-
|
|
61
|
-
Before installing, verify you have `uvx` installed. This is the recommended way to run the MCP server.
|
|
62
|
-
|
|
63
|
-
**Check if uvx is installed:**
|
|
64
|
-
```bash
|
|
65
|
-
uvx --version
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
**If not installed, see [UVX_DEPLOYMENT_GUIDE.md](UVX_DEPLOYMENT_GUIDE.md) for detailed installation instructions.**
|
|
69
|
-
|
|
70
|
-
**Quick install (Linux/macOS):**
|
|
71
|
-
```bash
|
|
72
|
-
# Run the included script
|
|
73
|
-
chmod +x install-uvx.sh
|
|
74
|
-
./install-uvx.sh
|
|
75
|
-
|
|
76
|
-
# Or install manually
|
|
77
|
-
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
**Quick install (Windows PowerShell - Run as Administrator):**
|
|
81
|
-
```powershell
|
|
82
|
-
# Run the included script
|
|
83
|
-
.\install-uvx.ps1
|
|
84
|
-
|
|
85
|
-
# Or install manually
|
|
86
|
-
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
49
|
### Quick Start (Recommended)
|
|
92
50
|
|
|
93
|
-
The easiest way to use this MCP server is with `
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
# No installation needed! Just configure your AI client (see below)
|
|
97
|
-
```
|
|
51
|
+
The easiest way to use this MCP server is with `pip`.
|
|
98
52
|
|
|
99
|
-
###
|
|
53
|
+
### Install via pip
|
|
100
54
|
|
|
101
55
|
If you prefer to install the package globally:
|
|
102
56
|
|
|
@@ -117,8 +71,8 @@ pip install -e .
|
|
|
117
71
|
### Required Environment Variables
|
|
118
72
|
|
|
119
73
|
- `EMP_API_ENDPOINT`: Your remote Eulerian Marketing Platform MCP server URL (HTTP endpoint)
|
|
120
|
-
- Example: `https://
|
|
121
|
-
- `EMP_API_TOKEN`: Your authentication token for the remote server
|
|
74
|
+
- Example: `https://dem.api.eulerian.com/mcp`
|
|
75
|
+
- `EMP_API_TOKEN`: Your authentication token for the remote server, it is the one linked to your Eulerian account.
|
|
122
76
|
|
|
123
77
|
### Optional Environment Variables
|
|
124
78
|
|
|
@@ -160,23 +114,6 @@ Claude Desktop supports local MCP servers via stdio transport.
|
|
|
160
114
|
|
|
161
115
|
3. **Add the server configuration**:
|
|
162
116
|
|
|
163
|
-
```json
|
|
164
|
-
{
|
|
165
|
-
"mcpServers": {
|
|
166
|
-
"eulerian-marketing-platform": {
|
|
167
|
-
"command": "uvx",
|
|
168
|
-
"args": ["eulerian-marketing-platform"],
|
|
169
|
-
"env": {
|
|
170
|
-
"EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
|
|
171
|
-
"EMP_API_TOKEN": "your_authentication_token_here"
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
**Alternative: If using pip installation**:
|
|
179
|
-
|
|
180
117
|
```json
|
|
181
118
|
{
|
|
182
119
|
"mcpServers": {
|
|
@@ -207,7 +144,6 @@ Claude Desktop supports local MCP servers via stdio transport.
|
|
|
207
144
|
|
|
208
145
|
**Linux**:
|
|
209
146
|
- The config directory may not exist initially - create it with: `mkdir -p ~/.config/Claude`
|
|
210
|
-
- Ensure `uvx` is installed: `pip install uv`
|
|
211
147
|
|
|
212
148
|
**macOS**:
|
|
213
149
|
- Access the config via Finder: `Cmd + Shift + G` → `~/Library/Application Support/Claude/`
|
|
@@ -248,8 +184,8 @@ nano ~/.gemini/settings.json
|
|
|
248
184
|
{
|
|
249
185
|
"mcpServers": {
|
|
250
186
|
"eulerian-marketing-platform": {
|
|
251
|
-
"command": "
|
|
252
|
-
"args": ["
|
|
187
|
+
"command": "python",
|
|
188
|
+
"args": ["-m", "eulerian_marketing_platform.server"],
|
|
253
189
|
"env": {
|
|
254
190
|
"EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
|
|
255
191
|
"EMP_API_TOKEN": "your_authentication_token_here"
|
|
@@ -280,102 +216,6 @@ gemini
|
|
|
280
216
|
|
|
281
217
|
---
|
|
282
218
|
|
|
283
|
-
### 3. Mistral AI (Le Chat)
|
|
284
|
-
|
|
285
|
-
Mistral's Le Chat web interface supports MCP servers through **Custom Connectors**, but they must be deployed as **remote servers** with HTTP/SSE transport.
|
|
286
|
-
|
|
287
|
-
#### Important Limitations
|
|
288
|
-
|
|
289
|
-
- ❌ **Local stdio servers are NOT supported** by Mistral Le Chat
|
|
290
|
-
- ✅ **Only remote HTTP/SSE servers** are supported
|
|
291
|
-
- 📡 Your server must be publicly accessible via HTTPS
|
|
292
|
-
|
|
293
|
-
#### Deployment Options
|
|
294
|
-
|
|
295
|
-
You'll need to deploy your MCP server to a cloud platform. Popular options include:
|
|
296
|
-
|
|
297
|
-
- **Render** (https://render.com)
|
|
298
|
-
- **Railway** (https://railway.app)
|
|
299
|
-
- **Fly.io** (https://fly.io)
|
|
300
|
-
- **AWS Lambda** (with API Gateway)
|
|
301
|
-
- **Google Cloud Run**
|
|
302
|
-
- **Azure Container Instances**
|
|
303
|
-
|
|
304
|
-
#### Server Modification for Remote Deployment
|
|
305
|
-
|
|
306
|
-
Modify the `server.py` to support HTTP/SSE transport:
|
|
307
|
-
|
|
308
|
-
```python
|
|
309
|
-
# In your server.py main() function
|
|
310
|
-
def main() -> None:
|
|
311
|
-
"""Entry point for the MCP server."""
|
|
312
|
-
validate_config()
|
|
313
|
-
|
|
314
|
-
# For remote deployment (Mistral AI)
|
|
315
|
-
import sys
|
|
316
|
-
if "--remote" in sys.argv:
|
|
317
|
-
mcp.run(transport="sse", port=8000)
|
|
318
|
-
else:
|
|
319
|
-
# Default stdio for local clients
|
|
320
|
-
mcp.run()
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
#### Example: Deploy to Render
|
|
324
|
-
|
|
325
|
-
1. **Create a `render.yaml` file**:
|
|
326
|
-
|
|
327
|
-
```yaml
|
|
328
|
-
services:
|
|
329
|
-
- type: web
|
|
330
|
-
name: eulerian-mcp-server
|
|
331
|
-
env: python
|
|
332
|
-
buildCommand: pip install -e .
|
|
333
|
-
startCommand: python -m eulerian_marketing_platform.server --remote
|
|
334
|
-
envVars:
|
|
335
|
-
- key: EMP_API_ENDPOINT
|
|
336
|
-
sync: false
|
|
337
|
-
- key: EMP_API_TOKEN
|
|
338
|
-
sync: false
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
2. **Push to GitHub and connect to Render**
|
|
342
|
-
|
|
343
|
-
3. **Set environment variables in Render dashboard**
|
|
344
|
-
|
|
345
|
-
#### Setup in Mistral Le Chat
|
|
346
|
-
|
|
347
|
-
1. **Open Le Chat** (https://chat.mistral.ai)
|
|
348
|
-
|
|
349
|
-
2. **Navigate to Connectors**:
|
|
350
|
-
- Click the sidebar toggle
|
|
351
|
-
- Go to `Intelligence` → `Connectors`
|
|
352
|
-
- Click `+ Add Connector`
|
|
353
|
-
- Select `Add custom connector`
|
|
354
|
-
|
|
355
|
-
3. **Configure the connector**:
|
|
356
|
-
- **Name**: Eulerian Marketing Platform
|
|
357
|
-
- **URL**: `https://your-deployed-server.render.com/mcp`
|
|
358
|
-
- **Description**: Access to Eulerian Marketing Platform analytics and campaigns
|
|
359
|
-
- **Authentication**:
|
|
360
|
-
- Select `API Token Authentication` if your deployment requires it
|
|
361
|
-
- Or `No Authentication` if your server handles auth via environment variables
|
|
362
|
-
|
|
363
|
-
4. **Connect and test**:
|
|
364
|
-
- Click `Connect`
|
|
365
|
-
- Once connected, enable it in a chat session
|
|
366
|
-
- Ask: "What Eulerian Marketing Platform capabilities do you have?"
|
|
367
|
-
|
|
368
|
-
#### Security Recommendations for Remote Deployment
|
|
369
|
-
|
|
370
|
-
- ✅ Always use HTTPS (not HTTP)
|
|
371
|
-
- ✅ Implement rate limiting
|
|
372
|
-
- ✅ Add request origin validation
|
|
373
|
-
- ✅ Use environment variables for secrets (never hardcode)
|
|
374
|
-
- ✅ Monitor server logs for unusual activity
|
|
375
|
-
- ✅ Consider adding IP allowlisting if possible
|
|
376
|
-
|
|
377
|
-
---
|
|
378
|
-
|
|
379
219
|
## Usage Examples
|
|
380
220
|
|
|
381
221
|
Once configured with any client, you can interact with your remote Eulerian Marketing Platform:
|
|
@@ -384,17 +224,14 @@ Once configured with any client, you can interact with your remote Eulerian Mark
|
|
|
384
224
|
User: "What tools are available from Eulerian?"
|
|
385
225
|
→ Proxy calls list_remote_tools() and returns all available tools
|
|
386
226
|
|
|
387
|
-
User: "Call the
|
|
388
|
-
→ Proxy forwards to remote server and
|
|
227
|
+
User: "Call the update_goal tool"
|
|
228
|
+
→ Proxy forwards to remote server and update goal settings
|
|
389
229
|
|
|
390
230
|
User: "Show me campaign details for CAMP-12345"
|
|
391
231
|
→ Claude uses call_eulerian_tool() to fetch specific campaign
|
|
392
232
|
|
|
393
233
|
User: "What resources are available?"
|
|
394
234
|
→ Proxy lists all available data sources
|
|
395
|
-
|
|
396
|
-
User: "Read the configuration at eulerian://config/settings"
|
|
397
|
-
→ Proxy fetches and returns the configuration
|
|
398
235
|
```
|
|
399
236
|
|
|
400
237
|
The AI assistant will automatically use the appropriate proxy tools to fulfill your requests.
|
|
@@ -444,13 +281,6 @@ You'll see detailed logging of:
|
|
|
444
281
|
- Verify the settings.json is valid JSON
|
|
445
282
|
- Restart Gemini CLI
|
|
446
283
|
|
|
447
|
-
#### Mistral connector fails to connect
|
|
448
|
-
- **Solution**:
|
|
449
|
-
- Verify your server is publicly accessible via `curl https://your-server.com/mcp`
|
|
450
|
-
- Check server logs for errors
|
|
451
|
-
- Ensure you're using HTTPS (not HTTP)
|
|
452
|
-
- Verify the `/mcp` endpoint path is correct
|
|
453
|
-
|
|
454
284
|
### Debug Mode
|
|
455
285
|
|
|
456
286
|
For detailed debugging:
|
|
@@ -519,9 +349,14 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
519
349
|
|
|
520
350
|
## Changelog
|
|
521
351
|
|
|
352
|
+
### 0.2.0
|
|
353
|
+
- Move to full Proxy mode
|
|
354
|
+
- Remove instructions for uvx deployment
|
|
355
|
+
- Remove instructions for Mistral integration (too complex)
|
|
356
|
+
|
|
522
357
|
### 0.1.0 (Initial Release)
|
|
523
358
|
- Initial MCP server implementation
|
|
524
|
-
- Support for Claude Desktop, Gemini CLI
|
|
359
|
+
- Support for Claude Desktop, Gemini CLI
|
|
525
360
|
- Cross-platform support (Windows, Linux, macOS)
|
|
526
361
|
- Environment-based configuration
|
|
527
362
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "eulerian_marketing_platform"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.1"
|
|
8
8
|
description = "MCP server for Eulerian Marketing Platform - enables AI assistants to interact with Eulerian's marketing analytics and campaign management APIs"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: eulerian-marketing-platform
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: MCP server for Eulerian Marketing Platform - enables AI assistants to interact with Eulerian's marketing analytics and campaign management APIs
|
|
5
5
|
Author-email: Eulerian Technologies <mathieu@eulerian.com>
|
|
6
6
|
License: MIT
|
|
@@ -28,7 +28,7 @@ License-File: LICENSE
|
|
|
28
28
|
|
|
29
29
|
# Eulerian Marketing Platform MCP Server
|
|
30
30
|
|
|
31
|
-
A Model Context Protocol (MCP) **proxy server** that bridges AI assistants (Claude Desktop, Gemini CLI,
|
|
31
|
+
A Model Context Protocol (MCP) **proxy server** that bridges AI assistants (Claude Desktop, Gemini CLI, etc ...) 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
32
|
|
|
33
33
|
## How It Works
|
|
34
34
|
|
|
@@ -53,12 +53,11 @@ The proxy:
|
|
|
53
53
|
- **🔌 Proxy Architecture**: Bridges local MCP clients to remote Eulerian MCP server via HTTP
|
|
54
54
|
- **🔐 Secure Authentication**: Uses Bearer token authentication for remote server access
|
|
55
55
|
- **🌐 Cross-platform support**: Works on Windows, Linux, and macOS
|
|
56
|
-
- **🤖 Multiple AI clients**: Compatible with Claude Desktop
|
|
56
|
+
- **🤖 Multiple AI clients**: Compatible with Claude Desktop and Gemini CLI
|
|
57
57
|
- **📝 Comprehensive Logging**: Logs all requests/responses for debugging
|
|
58
58
|
- **⚡ Async HTTP**: Non-blocking requests using httpx for better performance
|
|
59
59
|
- **🛠️ Tool Discovery**: Automatically discovers and exposes remote tools
|
|
60
60
|
- **⏱️ Configurable Timeouts**: Adjustable request timeouts
|
|
61
|
-
- **🔍 Easy Installation**: Deploy with a single command using `uvx`
|
|
62
61
|
|
|
63
62
|
## Prerequisites
|
|
64
63
|
|
|
@@ -68,63 +67,18 @@ The proxy:
|
|
|
68
67
|
- One of the following AI clients:
|
|
69
68
|
- Claude Desktop (Windows, macOS, Linux)
|
|
70
69
|
- Gemini CLI
|
|
71
|
-
- Mistral AI Le Chat (requires remote deployment)
|
|
72
70
|
|
|
73
71
|
## Available Tools
|
|
74
72
|
|
|
75
|
-
|
|
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).
|
|
73
|
+
All API Endpoints supported by the [Eulerian API](https://doc.api.eulerian.com) can be queried through the current MCP.
|
|
84
74
|
|
|
85
75
|
## Installation
|
|
86
76
|
|
|
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
77
|
### Quick Start (Recommended)
|
|
120
78
|
|
|
121
|
-
The easiest way to use this MCP server is with `
|
|
122
|
-
|
|
123
|
-
```bash
|
|
124
|
-
# No installation needed! Just configure your AI client (see below)
|
|
125
|
-
```
|
|
79
|
+
The easiest way to use this MCP server is with `pip`.
|
|
126
80
|
|
|
127
|
-
###
|
|
81
|
+
### Install via pip
|
|
128
82
|
|
|
129
83
|
If you prefer to install the package globally:
|
|
130
84
|
|
|
@@ -145,8 +99,8 @@ pip install -e .
|
|
|
145
99
|
### Required Environment Variables
|
|
146
100
|
|
|
147
101
|
- `EMP_API_ENDPOINT`: Your remote Eulerian Marketing Platform MCP server URL (HTTP endpoint)
|
|
148
|
-
- Example: `https://
|
|
149
|
-
- `EMP_API_TOKEN`: Your authentication token for the remote server
|
|
102
|
+
- Example: `https://dem.api.eulerian.com/mcp`
|
|
103
|
+
- `EMP_API_TOKEN`: Your authentication token for the remote server, it is the one linked to your Eulerian account.
|
|
150
104
|
|
|
151
105
|
### Optional Environment Variables
|
|
152
106
|
|
|
@@ -188,23 +142,6 @@ Claude Desktop supports local MCP servers via stdio transport.
|
|
|
188
142
|
|
|
189
143
|
3. **Add the server configuration**:
|
|
190
144
|
|
|
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
145
|
```json
|
|
209
146
|
{
|
|
210
147
|
"mcpServers": {
|
|
@@ -235,7 +172,6 @@ Claude Desktop supports local MCP servers via stdio transport.
|
|
|
235
172
|
|
|
236
173
|
**Linux**:
|
|
237
174
|
- The config directory may not exist initially - create it with: `mkdir -p ~/.config/Claude`
|
|
238
|
-
- Ensure `uvx` is installed: `pip install uv`
|
|
239
175
|
|
|
240
176
|
**macOS**:
|
|
241
177
|
- Access the config via Finder: `Cmd + Shift + G` → `~/Library/Application Support/Claude/`
|
|
@@ -276,8 +212,8 @@ nano ~/.gemini/settings.json
|
|
|
276
212
|
{
|
|
277
213
|
"mcpServers": {
|
|
278
214
|
"eulerian-marketing-platform": {
|
|
279
|
-
"command": "
|
|
280
|
-
"args": ["
|
|
215
|
+
"command": "python",
|
|
216
|
+
"args": ["-m", "eulerian_marketing_platform.server"],
|
|
281
217
|
"env": {
|
|
282
218
|
"EMP_API_ENDPOINT": "https://your-eulerian-instance.com/mcp",
|
|
283
219
|
"EMP_API_TOKEN": "your_authentication_token_here"
|
|
@@ -308,102 +244,6 @@ gemini
|
|
|
308
244
|
|
|
309
245
|
---
|
|
310
246
|
|
|
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
247
|
## Usage Examples
|
|
408
248
|
|
|
409
249
|
Once configured with any client, you can interact with your remote Eulerian Marketing Platform:
|
|
@@ -412,17 +252,14 @@ Once configured with any client, you can interact with your remote Eulerian Mark
|
|
|
412
252
|
User: "What tools are available from Eulerian?"
|
|
413
253
|
→ Proxy calls list_remote_tools() and returns all available tools
|
|
414
254
|
|
|
415
|
-
User: "Call the
|
|
416
|
-
→ Proxy forwards to remote server and
|
|
255
|
+
User: "Call the update_goal tool"
|
|
256
|
+
→ Proxy forwards to remote server and update goal settings
|
|
417
257
|
|
|
418
258
|
User: "Show me campaign details for CAMP-12345"
|
|
419
259
|
→ Claude uses call_eulerian_tool() to fetch specific campaign
|
|
420
260
|
|
|
421
261
|
User: "What resources are available?"
|
|
422
262
|
→ Proxy lists all available data sources
|
|
423
|
-
|
|
424
|
-
User: "Read the configuration at eulerian://config/settings"
|
|
425
|
-
→ Proxy fetches and returns the configuration
|
|
426
263
|
```
|
|
427
264
|
|
|
428
265
|
The AI assistant will automatically use the appropriate proxy tools to fulfill your requests.
|
|
@@ -472,13 +309,6 @@ You'll see detailed logging of:
|
|
|
472
309
|
- Verify the settings.json is valid JSON
|
|
473
310
|
- Restart Gemini CLI
|
|
474
311
|
|
|
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
312
|
### Debug Mode
|
|
483
313
|
|
|
484
314
|
For detailed debugging:
|
|
@@ -547,9 +377,14 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
547
377
|
|
|
548
378
|
## Changelog
|
|
549
379
|
|
|
380
|
+
### 0.2.0
|
|
381
|
+
- Move to full Proxy mode
|
|
382
|
+
- Remove instructions for uvx deployment
|
|
383
|
+
- Remove instructions for Mistral integration (too complex)
|
|
384
|
+
|
|
550
385
|
### 0.1.0 (Initial Release)
|
|
551
386
|
- Initial MCP server implementation
|
|
552
|
-
- Support for Claude Desktop, Gemini CLI
|
|
387
|
+
- Support for Claude Desktop, Gemini CLI
|
|
553
388
|
- Cross-platform support (Windows, Linux, macOS)
|
|
554
389
|
- Environment-based configuration
|
|
555
390
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|