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 "Install 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
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.