Opportunity Radar
Uses Amazon Bedrock to rank grant opportunities by fit, providing a score and reason for each opportunity.
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., "@Opportunity RadarWhat federal grants are open for rural health nonprofits?"
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.
Opportunity Radar 📡
Ask out loud what public funding you can actually apply for — and get an answer with real numbers, or none at all.
Every year billions in public grant funding goes unclaimed, not because people
are unqualified but because nobody has time to read grants.gov on a Tuesday
night. Opportunity Radar is a self-hosted MCP server that turns that
database into something you can ask a question to: "any grants open for a
small AI company?", "what closes in the next two weeks?", "am I even
allowed to apply for that one?"
Because Alexa+ speaks MCP, the same server answers in the kitchen.
Built for the Build, Ship, Shape: Amazon Developer Hackathon — Alexa+ track, with the AWS Builder and Open Source mini challenges.
What makes it different: it refuses to guess
A funding answer that is confidently wrong costs someone a weekend. So the honesty rules are structural, not prompt-deep:
Failure mode | What this server does |
Source down | Returns |
Notice publishes no applicant list | Reports |
Opportunity has no deadline | Counted and reported separately, never silently dropped |
Model ranks fit | Model may set score and reason only; deadlines and dollar figures are attached from grants.gov afterwards |
The test suite asserts each of those (tests/test_radar.py::HonestyUnderFailure).
Related MCP server: grants-gov
Tools
Tool | Question it answers |
| "What's open for rural health right now?" |
| "How much is it, and who runs it?" |
| "Can an individual apply, or only universities?" |
| "What do I have to act on this week?" |
| The scheduled Monday sweep across all your interests |
| "Of these, which are actually worth my Saturday?" (Bedrock) |
Run it
git clone https://github.com/kevin9327/opportunity-radar && cd opportunity-radar
python -m radar.server # http://0.0.0.0:8080/mcpNo API key is needed: grants.gov search is public. Responses cache for 6h.
# point any MCP client at it
curl -s localhost:8080/mcp -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"deadline_watch","arguments":{"interest":"artificial intelligence","within_days":30}}}'Fit ranking runs on your own machine
rank_for_me asks a model whether each opening is worth your Saturday. It
prefers a local model over Ollama — no key, no account, and the sentence
describing your situation never leaves the house. That matters when the query
is "grants for a family caring for a disabled child".
ollama pull llama3.1:8b # engine: localFallbacks are automatic and always labelled in the response: Amazon Bedrock if
AWS credentials happen to exist, then plain keyword overlap so the radar still
answers offline. Set RADAR_RANK_ENGINE=local|bedrock|overlap to pin one.
How it fits together
flowchart LR
A["Alexa+ / any MCP client"] -->|Streamable HTTP · spec 2025-11-25| B["radar.server<br/>JSON-RPC + SSE"]
B --> C["6 tools<br/>honesty gates"]
C --> D["grants.gov<br/>search2 + fetchOpportunity"]
C -->|fit score + reason only| E["Amazon Bedrock<br/>Claude Haiku"]
C --> F[(6h disk cache)]radar/server.py implements the transport by hand against the MCP spec — one
endpoint, initialize handing out a session id, tools/list schemas generated
from Python type hints, tools/call returning both spoken text and
structuredContent. No framework in the way, which made the spec easy to read
off the wire while debugging.
Tests
python -m unittest discover -s tests -v # 13 offline
RADAR_LIVE=1 python -m unittest discover -s tests # + 2 against grants.govCI runs the offline suite on every push and the live-source suite weekly, so a silent API change shows up as a red build rather than a wrong answer.
MIT © 2026 kevin9327
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search US grants + federal contracts (Grants.gov + SAM.gov) from any LLM.
Find US federal grants your organization is actually eligible to apply for. Free, no API key.
Search verified-open US grants (federal, state, foundation). Read-only MCP for AI agents.
Eligibility-first UK & EU grant discovery, inside ChatGPT and Claude.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAutonomously discovers non-dilutive funding opportunities from Grants.gov, generates AI-powered pitch drafts using Gemini, and integrates with Google Workspace to create email drafts and calendar reminders for grant deadlines.6MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to open federal grant opportunities from Grants.gov without authentication. Enables querying and exploring grant data through natural language via Pipeworx gateway.6MIT
- AlicenseNot gradedqualityCmaintenanceEnables searching and retrieving California state grant opportunities, including filters by status, category, and agency, without requiring an API key.7MIT
- AlicenseNot gradedqualityCmaintenanceEnables searching and analyzing Australian Commonwealth grant opportunities and awarded grants from grants.gov.au, including recipient lookups and coverage checks.8MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/kevin9327/opportunity-radar'
If you have feedback or need assistance with the MCP directory API, please join our Discord server