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 "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.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/allanhale/nora-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server