
waggle-sensor/sage-mcp
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
A Model Context Protocol server for the Sage Grande Testbed — cyberinfrastructure for AI@Edge. It exposes ~30 MCP tools, resources, and prompts for querying sensor data, submitting edge-computing...
Обзор
A Model Context Protocol server for the Sage Grande Testbed — cyberinfrastructure for AI@Edge. It exposes ~30 MCP tools, resources, and prompts for querying sensor data, submitting edge-computing jobs, discovering plugins, and browsing Sage documentation from any MCP-compatible client (Claude Desktop, Cursor, custom agents, etc.). Built on FastMCP 2.10+ and the MCP SDK 1.12+; supports stdio, sse, and streamable-http transports. There are three ways to run this — pick the one that fits. All three expose the exact same tools. The only difference between hosted and local is how much data you can reach: without Sage credentials, every tool still runs but falls back to . See Authentication & credentials for how to add your token. The server is already running at https://mcp.sagecontinuum.org/mcp. Point any MCP client at it — no install needed. (~/.cursor/mcp.json) or (~/Library/Application Support/Claude/claude_desktop_config.json on macOS): Get YOUR_ACCESS_TOKEN from https://portal.
README
Показан фрагмент оригинального README. Открыть оригинал.
Sage MCP Server
A Model Context Protocol server for the Sage Grande Testbed — cyberinfrastructure for AI@Edge. It exposes ~30 MCP tools, resources, and prompts for querying sensor data, submitting edge-computing jobs, discovering plugins, and browsing Sage documentation from any MCP-compatible client (Claude Desktop, Cursor, custom agents, etc.).
Built on FastMCP 2.10+ and the
MCP SDK 1.12+; supports
stdio, sse, and streamable-http transports.
Choose your setup
There are three ways to run this — pick the one that fits.
| # | Path | Who it’s for | You need |
|---|---|---|---|
| 1 | Hosted (mcp.sagecontinuum.org) | Everyone. Zero install. | An MCP client + a Sage token. |
| 2 | Local — stdio | IDE users who want to run the server themselves. | Python 3.11+ and this repo. |
| 3 | Local — HTTP | Devs, custom agents, curl testing. | Python 3.11+ or Docker. |
All three expose the exact same tools. The only difference between hosted and local is how much data you can reach: without Sage credentials, every tool still runs but falls back to public data only. See Authentication & credentials for how to add your token.
1. Hosted (mcp.sagecontinuum.org)
The server is already running at https://mcp.sagecontinuum.org/mcp. Point
any MCP client at it — no install needed.
Cursor (~/.cursor/mcp.json) or Claude Desktop
(~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"sage": {
"url": "https://mcp.sagecontinuum.org/mcp",
"headers": {
"Authorization": "Bearer YOUR_USERNAME:YOUR_ACCESS_TOKEN"
}
}
}
}
Get YOUR_ACCESS_TOKEN from
. The Bearer value must be
in username:token form for anything beyond public data.
Restart your client, then ask natural questions:
“Show me temperature readings from node W023 in the last hour.” “Find nodes in Chicago with recent camera images.” “What’s the highest temperature recorded today across all nodes?”
2. Local — stdio (for IDE clients)
Run the server as a subprocess of your IDE. Nothing binds to a network port. This is the most private mode — data and credentials never leave your machine.
Install:
git clone https://github.com/waggle-sensor/sage-mcp.git
cd sage-mcp
pip install -r requirements.txt
cp .env.example .env # edit and add SAGE_USER / SAGE_PASS if you have them
Wire it into Cursor/Claude Desktop:
{
"mcpServers": {
"sage-local": {
"command": "/absolute/path/to/sage-mcp/scripts/run-local-stdio.sh",
"env": {
Установка
This server does not publish a one-line install command.
Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →Конфигурация
{
"mcpServers": {
"sage": {
"url": "https://mcp.sagecontinuum.org/mcp",
"headers": {
"Authorization": "Bearer YOUR_USERNAME:YOUR_ACCESS_TOKEN"
}
}
}
}