Model Context Protocol · Remote server
RallyProp MCP Server
Give Claude live access to federal innovation funding. Search SBIR/STTR topics, BAAs, OTAs, CSOs, grants, and prize challenges from DSIP, SAM.gov, Grants.gov, DIU, AFWERX, Army xTech, and more. Read AI-generated RallyReports, track solicitation changes, and manage your saved opportunities, lists, and Intel Lanes.
Overview
| Property | Value |
|---|---|
| Server URL | https://mcp.rallyprop.ai |
| Transport | Streamable HTTP |
| Authentication | OAuth 2.1 with PKCE, or API key |
| Tools | 22 (11 read-only, 11 write) |
| Data | 10,000+ federal funding opportunities, refreshed hourly |
| Registry name | ai.rallyprop/gov-funding |
Every tool declares a title and MCP annotations (readOnlyHint, destructiveHint, idempotentHint). All tools act only on RallyProp data, so openWorldHintis false. Write tools change only the signed-in user's own records.
Connect to Claude
Claude.ai and Claude Desktop
- Open Settings → Connectors.
- Find RallyProp in the directory, or click Add custom connector and enter
https://mcp.rallyprop.ai. Leave the OAuth client fields empty. - Click Connect and sign in with your RallyProp account. No account yet? Create one free.
- In a chat, enable RallyProp from the tools menu and ask a question.
Claude Team and Enterprise
An owner adds the connector with the base URL https://mcp.rallyprop.ai. Each member then connects and signs in with their own RallyProp account. Never add an org connector with a personal key in the URL — every member would act as the key owner.
Claude Code
claude mcp add --transport http rallyprop https://mcp.rallyprop.aiRun /mcp inside Claude Code to finish sign-in.
Other MCP clients
Any client that supports remote Streamable HTTP servers and MCP OAuth can use https://mcp.rallyprop.ai. For clients without OAuth, send an API key as a bearer token (see below).
Authentication
OAuth (recommended). The server follows the MCP authorization spec: OAuth 2.1 authorization code flow with PKCE (S256), dynamic client registration, and the mcp scope. Discovery documents:
https://mcp.rallyprop.ai/.well-known/oauth-protected-resource
https://mcp.rallyprop.ai/.well-known/oauth-authorization-serverSigning in creates a dedicated key for that connection. You can see and revoke it in the RallyProp app under AI Assistant (MCP) Keys. Revoking it disconnects Claude immediately.
API key. For scripts or clients without OAuth, generate a key in the app (paid, rp_live_) or on the MCP page (free, rp_free_), and send it on every request:
Authorization: Bearer rp_live_...Treat keys like passwords. Do not commit them, paste them into shared chats, or put them in a shared connector URL.
Plans & limits
| Plan | Requests | Burst | Tools |
|---|---|---|---|
| Free account or free key | 30 / week | — | Search, browse, details, change history, RallyReports |
| Trial | 20 / day | 20 / min | All 22 tools |
| Starter | 100 / day | 20 / min | All 22 tools |
| Pro / Team | 10,000 / day | 100 / min | All 22 tools |
Limits are per key and reset at UTC midnight. When a limit is reached the server returns HTTP 429 with a retry time. See pricing for plan details.
Tools
Read-only tools (readOnlyHint: true)
| Tool | Title | What it does |
|---|---|---|
| search_opportunities | Search Opportunities | Full-text search across all sources. Filter by source system and status. |
| list_opportunities | List Opportunities | Browse by agency, source, program type, funding range, technology area, NAICS, set-aside, or deadline. Paginated. |
| get_opportunity | Get Opportunity Details | Full detail for one opportunity by UUID or source ID (e.g. a DSIP topic number). |
| get_opportunity_events | Get Opportunity Change History | Deadline extensions, amendments, Q&A postings, and status changes for one opportunity. |
| get_opportunity_events_batch | Get Change History for Multiple Opportunities | Change history for up to 50 opportunities in one call. |
| get_rally_report | Get RallyReport | AI-generated BD brief: technical objective, evaluation criteria, key dates, risks, and go/no-go. |
| get_inbox | Get Inbox | Your 30-day new-opportunity inbox, excluding saved and dismissed items. Paid. |
| get_lists | Get Lists | Your custom lists. Paid. |
| get_intel_lanes | List Intel Lanes | Intel Lanes you own. Paid. |
| get_intel_lane | Get Intel Lane | One owned Intel Lane with its filters. Paid. |
| get_intel_lane_matches | Get Intel Lane Matches | Scored matches in an owned Intel Lane. Paid. |
Write tools (readOnlyHint: false) — paid accounts
| Tool | Title | Destructive | What it does |
|---|---|---|---|
| trigger_rally_report | Generate RallyReport | No | Queue a RallyReport when one does not exist yet. Ready in 2–5 minutes. |
| save_opportunity | Save Opportunity | No | Save an opportunity to your account. |
| unsave_opportunity | Unsave Opportunity | Yes | Remove a saved opportunity. |
| add_to_list | Add Opportunity to List | No | Add an opportunity to one of your lists. |
| remove_from_list | Remove Opportunity from List | Yes | Remove an opportunity from a list. |
| create_intel_lane | Create Intel Lane | No | Create an Intel Lane with filters and alert settings, then seed matches. |
| update_intel_lane | Update Intel Lane | Yes | Edit an owned Intel Lane's name, filters, visibility, workspace, or alerts. |
| delete_intel_lane | Delete Intel Lane | Yes | Permanently delete an Intel Lane you own. |
| reseed_intel_lane | Refresh Intel Lane Matches | No | Recompute an owned Intel Lane's matches from its filters. |
| record_intel_lane_feedback | Rate Intel Lane Match | No | Upvote or downvote a match to tune scoring. |
| dismiss_intel_lane_match | Dismiss Intel Lane Match | Yes | Hide an opportunity from an owned Intel Lane. |
Write tools only affect the signed-in user's saved items, lists, Intel Lanes, and report queue. No tool submits proposals, contacts agencies, or sends email on your behalf.
Example prompts
“Find open Air Force SBIR topics on hypersonic propulsion closing in the next 45 days.”
search_opportunities or list_opportunities with agency, program type, and closing_within_days filters. Claude returns a ranked list with topic numbers, deadlines, and source links.
“Give me a go/no-go brief on DSIP topic AF25.1-BT01 for a 12-person RF startup.”
get_opportunity, then get_rally_report. If no report exists, trigger_rally_report queues one. Claude summarizes objectives, evaluation criteria, risks, and fit.
“What changed this week on the topics in my Q3 pursuit list?”
get_lists to find the list, then get_opportunity_events_batch for its items. Claude reports deadline moves, amendments, and new Q&A.
“Create an Intel Lane for counter-UAS and directed energy OTAs over $1M and show me the top matches.”
create_intel_lane with keyword, program type, and funding filters, then get_intel_lane_matches.
Data & privacy
- Opportunity data comes from public federal sources. See data sources.
- RallyProp stores API key hashes, never plaintext keys, plus per-key usage counts and last-used time for rate limiting.
- Account tools read and write only your own saved items, lists, inbox, and Intel Lanes.
- RallyProp does not sell personal information for money.
Full details are in the Privacy Policy and on the Security page. To disconnect, remove the connector in Claude and revoke its key in the app.
Troubleshooting
| Symptom | Fix |
|---|---|
| Connector shows “Disconnected” | Remove the connector, add it again with the base URL, and complete sign-in. |
| “Invalid or missing API key” | The key was revoked or mistyped. Reconnect through OAuth or generate a new key. |
| “Your subscription is inactive” | The account linked to the paid key has no active subscription. Renew in the app or use a free key. |
| “This action requires a paid API key” | Save, list, inbox, and Intel Lane tools need a paid account. Sign in with that account. |
| Rate limit reached (429) | Limits reset at UTC midnight. The error message includes the retry time. |
| Teammates' saves land in the owner's account | The org connector was added with a personal key URL. Replace it with the base URL. |
Support
Email support@rallyprop.ai or visit the support page. Include the client you use, the time of the error, and the error message. Never send your API key.