Opportunity Radar
Opportunity Radar — a tiny MCP server in Python
The friendly operational arm of an AI assistant.
Opportunity Radar is a deliberately small example of an MCP server. It exposes one tool, opportunity_radar, that turns an unstructured business note into explainable signals:
revenue
automation
risk
urgency
data
The scoring logic is deterministic and local. An AI assistant can decide when the tool is relevant, but the server owns the capability and returns an auditable result.
This is a deliberately small demonstration project: it does not send messages, modify external systems, or perform irreversible actions.
The companion technical article is available in
technical_article_en.md.
Run locally
Python 3.10+ is required.
python -m venv .venv
source .venv/bin/activate
python -m pip install -e .
python -m mcp_opportunity_radar.serverFor the MCP Inspector, install the CLI extra and run:
mcp dev mcp_opportunity_radar/server.pyThe server uses the default stdio transport when run directly. It exposes:
Tool:
opportunity_radar(note)Resource:
radar://about
Example
Input:
The sales team is blocked by a manual pricing spreadsheet and needs a deal dashboard today.Output:
{
"opportunity_score": 90,
"priority": "high",
"signals": ["revenue", "automation", "urgency", "data"],
"evidence": {
"revenue": ["sales", "deal"],
"automation": ["manual", "spreadsheet", "blocked"],
"urgency": ["blocked", "today"],
"data": ["dashboard"]
},
"next_action": "Quantify the commercial impact and define the smallest valuable experiment."
}Why this is an MCP example
The model remains the reasoning layer. The MCP server is the operational arm: a bounded, discoverable and testable capability that can be reused by any compatible MCP host.
For production use, add authentication, authorization, input limits, structured error handling, audit logging and human confirmation before any tool with side effects.
Project layout
mcp-opportunity-radar/
├── mcp_opportunity_radar/
│ ├── radar.py # deterministic scoring logic
│ └── server.py # MCP tool and resource registration
├── tests/ # unit tests for the scoring logic
├── assets/ # article artwork
├── technical_article_en.md
└── pyproject.tomlLicense
MIT