NORA Data MCP Server
Allows querying of NORA Dashboard data stored in Redis, providing access to organizational metrics such as OKRs, key results, and business unit portfolios.
Provides read-only access to NORA Dashboard data hosted on Upstash Redis, including tools for retrieving initiatives, KPIs, and financial summaries.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NORA Data MCP Servershow me our current OKRs and linked initiatives"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
NORA Data MCP Server
Read-only MCP server that exposes NORA Dashboard data from Upstash Redis.
Prerequisites
Python 3.10+ (the
mcppackage requires it)uv (recommended) or pip
Setup
Copy
.env.exampleto.envand fill in the Upstash Redis credentials:cp .env.example .envInstall dependencies:
# With uv (recommended — handles Python version automatically): uv sync # Or with pip: pip install -e .
Running Locally (stdio transport)
# With uv:
uv run python server.py
# Or directly:
python server.pyClaude Desktop Configuration
Add to your Claude Desktop MCP config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"nora-data": {
"command": "uv",
"args": ["run", "--directory", "/Users/ahale/nora-mcp-server", "python", "server.py"],
"env": {
"KV_REST_API_URL": "https://your-redis-instance.upstash.io",
"KV_REST_API_READ_ONLY_TOKEN": "your-read-only-token"
}
}
}
}Claude Code Configuration
Add to your Claude Code MCP settings:
{
"mcpServers": {
"nora-data": {
"command": "uv",
"args": ["run", "--directory", "/Users/ahale/nora-mcp-server", "python", "server.py"],
"env": {
"KV_REST_API_URL": "https://your-redis-instance.upstash.io",
"KV_REST_API_READ_ONLY_TOKEN": "your-read-only-token"
}
}
}
}Remote Deployment (Hosted Mode)
The server supports streamable-http transport for remote access. When deployed, team members can connect to it without running anything locally.
Deploy to Railway
Push this repo to GitHub
Create a new project on Railway
Connect the GitHub repo
Add environment variables in Railway dashboard:
KV_REST_API_URL— your Upstash Redis URLKV_REST_API_READ_ONLY_TOKEN— your read-only tokenMCP_TRANSPORT—streamable-http(set automatically via Dockerfile)PORT— Railway sets this automatically
Deploy — Railway will build from the Dockerfile
Docker Build & Run
docker build -t nora-mcp-server .
docker run -p 8000:8000 \
-e KV_REST_API_URL="https://your-redis-instance.upstash.io" \
-e KV_REST_API_READ_ONLY_TOKEN="your-read-only-token" \
nora-mcp-serverConnecting via Cowork / Claude Code (Remote)
Once deployed, team members add the remote MCP server in their project settings:
{
"mcpServers": {
"nora-data": {
"type": "url",
"url": "https://your-deployed-url.up.railway.app/mcp/"
}
}
}The streamable-http transport serves the MCP endpoint at /mcp/ by default.
Security Note
The server is read-only (it only reads from Upstash Redis with a read-only token). Authentication is not currently implemented — access control relies on URL obscurity and hosting platform network settings. Add bearer token auth if the server is exposed to the public internet.
Available Tools
Tool | Description |
| Health check — record counts for all tables |
| Full OKR tree (objectives + key results + linked initiatives) |
| Key results (optional filter: |
| Initiatives (optional filters: |
| OKR-to-initiative link records |
| WBR flags/risks (optional filter: |
| Business unit portfolio overview |
| KPI metrics (optional filter: |
| Financial summary (optional filter: |
| North Star metrics (optional filter: |
| All business units |
Architecture
Transport: stdio (local) or streamable-http (hosted)
Data source: Upstash Redis REST API (read-only token)
Redis key pattern:
prod:table:{name}.jsonCaching: Per-request cache (tables fetched once per tool call, not persisted)
Error handling: All tools return JSON; errors are returned as
{"error": "..."}, never thrown
Related MCP Connectors
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
Connect your ads, shop, analytics, social, CRM and finance platforms once, then let Claude, ChatGPT, Cursor or any MCP client read, join and explain your numbers. Public statistics from the World Bank, IMF, Eurostat, OECD, WHO and SEC filings come as context, searchable and chartable from the same tools. Read-only by design, every number carries its source.
Read-only MCP over your own revenue and net margin across 14 billing rails