Compare commits
5 Commits
823b8b4297
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5322f04c82 | ||
|
|
04ca5aec59 | ||
|
|
20cfa456c0 | ||
|
|
72bc14ed2c | ||
|
|
5ce18bb435 |
8
.env.vault-mapping
Normal file
8
.env.vault-mapping
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# OpenBao Secret Mapping
|
||||||
|
# Format: kv:kv:path/to/secret:value=ENV_VAR_NAME
|
||||||
|
#
|
||||||
|
# Generated for MCP server OpenBao integration
|
||||||
|
# Date: 2026-01-24
|
||||||
|
|
||||||
|
# No secrets required
|
||||||
|
# This MCP server does not require any secrets or sensitive configuration.
|
||||||
@@ -5,7 +5,7 @@ Exposes eToroGridbot trading bot operations via Model Context Protocol. Provides
|
|||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- VPN connection to services network: `vpn-connect`
|
- VPN connection to services network: `vpn-connect`
|
||||||
- Gridbot conductor running on services VM (http://services:8000)
|
- Gridbot conductor running on services VM (http://services:8001)
|
||||||
- Python 3.10+ with uv for development
|
- Python 3.10+ with uv for development
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
@@ -19,7 +19,7 @@ Add to `~/.claude/settings.json` under `mcpServers`:
|
|||||||
"args": ["-m", "src.server"],
|
"args": ["-m", "src.server"],
|
||||||
"cwd": "/path/to/gridbot-mcp",
|
"cwd": "/path/to/gridbot-mcp",
|
||||||
"env": {
|
"env": {
|
||||||
"GRIDBOT_API_URL": "http://services:8000"
|
"GRIDBOT_API_URL": "http://services:8001"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -1,7 +1,7 @@
|
|||||||
"""
|
"""
|
||||||
Gridbot MCP Server - Wraps eToroGridbot REST API as MCP tools.
|
Gridbot MCP Server - Wraps eToroGridbot REST API as MCP tools.
|
||||||
|
|
||||||
Requires VPN connection and GRIDBOT_API_URL env var (default: http://services.agiliton.internal:8000)
|
Requires VPN connection and GRIDBOT_API_URL env var (default: http://services:8000)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
@@ -13,7 +13,7 @@ from mcp.server import Server
|
|||||||
from mcp.server.stdio import stdio_server
|
from mcp.server.stdio import stdio_server
|
||||||
from mcp.types import Tool, TextContent
|
from mcp.types import Tool, TextContent
|
||||||
|
|
||||||
BASE_URL = os.getenv("GRIDBOT_API_URL", "http://services.agiliton.internal:8000")
|
BASE_URL = os.getenv("GRIDBOT_API_URL", "http://services:8000")
|
||||||
TIMEOUT = 30.0
|
TIMEOUT = 30.0
|
||||||
|
|
||||||
server = Server("gridbot-mcp")
|
server = Server("gridbot-mcp")
|
||||||
@@ -563,6 +563,7 @@ async def list_tools() -> list[Tool]:
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"limit": {"type": "number", "default": 10, "description": "Max results (1-100)"},
|
"limit": {"type": "number", "default": 10, "description": "Max results (1-100)"},
|
||||||
|
"min_pi_count": {"type": "number", "default": 2, "description": "Minimum PIs required (default: 2)"},
|
||||||
},
|
},
|
||||||
"required": [],
|
"required": [],
|
||||||
},
|
},
|
||||||
@@ -823,7 +824,8 @@ async def call_tool(name: str, arguments: dict[str, Any]) -> list[TextContent]:
|
|||||||
result = await api_get(f"/api/pi-intelligence/consensus/{symbol}")
|
result = await api_get(f"/api/pi-intelligence/consensus/{symbol}")
|
||||||
case "pi_consensus_top":
|
case "pi_consensus_top":
|
||||||
limit = arguments.get("limit", 10)
|
limit = arguments.get("limit", 10)
|
||||||
result = await api_get(f"/api/pi-intelligence/consensus/top?limit={limit}")
|
min_pi_count = arguments.get("min_pi_count", 2)
|
||||||
|
result = await api_get(f"/api/pi-intelligence/consensus/top?limit={limit}&min_pi_count={min_pi_count}")
|
||||||
case "pi_scan_trigger":
|
case "pi_scan_trigger":
|
||||||
usernames = arguments.get("usernames")
|
usernames = arguments.get("usernames")
|
||||||
endpoint = "/api/pi-intelligence/scan/trigger"
|
endpoint = "/api/pi-intelligence/scan/trigger"
|
||||||
|
|||||||
Reference in New Issue
Block a user