Cap Rate Signals — US Real Estate Metro Intelligence
REMOTE · CAP-RATE-SIGNALS-MCP-PRODUCTION.UP.RAILWAY.APP · SCANNED AUG 3
Scores US metros on corporate investment catalysts and repricing signals for real estate investors.
Available components
Recent critical change
Authorization (29 Jul 2026). See the changelog before you install this server.
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (set_published_tier). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability63
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3965 tokens (~283/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · cap-rate-signals-mcp-production.up.railway.app
claude mcp add --transport http capratesignals-cpu-cap-rate-signals https://cap-rate-signals-mcp-production.up.railway.app/mcp
[mcp_servers.capratesignals-cpu-cap-rate-signals] url = "https://cap-rate-signals-mcp-production.up.railway.app/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"capratesignals-cpu-cap-rate-signals": {
"type": "remote",
"url": "https://cap-rate-signals-mcp-production.up.railway.app/mcp",
"enabled": true
}
}
} openclaw mcp add capratesignals-cpu-cap-rate-signals --url https://cap-rate-signals-mcp-production.up.railway.app/mcp --transport streamable-http
mcp_servers:
capratesignals-cpu-cap-rate-signals:
url: "https://cap-rate-signals-mcp-production.up.railway.app/mcp" {
"mcpServers": {
"capratesignals-cpu-cap-rate-signals": {
"type": "http",
"url": "https://cap-rate-signals-mcp-production.up.railway.app/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
- Authorization: unverified → fail ▼ critical
- 28 Jul 26 0
- Authorization: fail → unverified ▼ security
- 27 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 60
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://cap-rate-signals-mcp-production.up.railway.app/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=*.up.railway.app | CN=YE1,O=Let's Encrypt,C=US | 29 Jul 2026 | 27 Oct 2026 | ECDSA 256 | ECDSA-SHA384 | 6da79bb561da3efeb0e751ca21abd3999fe |
| SANs: *.up.railway.app, up.railway.app | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
DNSSEC insecure
Validation of cap-rate-signals-mcp-production.up.railway.app. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| app. | present | 23684 | 8 | Verified |
| railway.app. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://cap-rate-signals-mcp-production.up.railway.app/mcp | Verified | 200 | |
| http (plaintext) | http://cap-rate-signals-mcp-production.up.railway.app/mcp | HTTPS enforced | 301 | https://cap-rate-signals-mcp-production.up.railway.app/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
assess_metro Metro Data Record ~99
Cap Rate Signals — fetch the raw structured data record for a specific US metro: composite investment score, hero catalyst, lifecycle state, cap rate, vacancy, duplex entry price, and employer stack. Use for data lookup and structured comparisons. For plain-language investor narrative, use get_metro_brief instead.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | City or metro name, e.g. 'Indianapolis', 'Sherman TX', 'Bossier City LA' |
No output schema declared.
No examples provided.
clear_stale_progress_flag Clear Stale Flag ~145
Clear the Stale Progress flag (col AF) for a metro without changing its tier. Use this when you've reviewed the CRITICAL_NEGATIVE event and decided the existing Published Tier (AE) is still accurate — no tier change needed. If you ARE changing the tier, use set_published_tier instead (it clears AF automatically). Trigger phrases: 'clear the stale flag for X', 'dismiss the alert for X', 'flag resolved for X', 'no tier change needed for X — clear it', 'Indianapolis stale flag — reviewed and OK'
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | Metro name, e.g. 'Indianapolis IN', 'Sherman TX' |
No output schema declared.
No examples provided.
compare_metros Head-to-Head Comparison ~208
Cap Rate Signals — head-to-head comparison of two US real estate markets on corporate investment strength, cap rates, entry price, worker arrival timing, and downside risk. Returns a plain-language verdict on which market fits which investor. Use when an investor explicitly names two cities: 'how does Indianapolis compare to Columbus?', 'which is better, Sherman or Boise?', 'Indianapolis vs Columbus', 'compare Columbus and Sherman', 'I'm torn between West Lafayette and Columbus — which one?', 'help me decide between Tulsa and Knoxville', 'side by side: Indianapolis and St. Louis', 'which market has better cap rates, Columbus or Indianapolis?', 'is Sherman or Tulsa the better value play?', 'head to head: Columbus vs West Lafayette' Do NOT use this if only one city is named. Do NOT use this just because the investor said 'compare' without naming two cities.
| Name | Type | Req | Description |
|---|---|---|---|
| city_a | string | yes | First city to compare |
| city_b | string | yes | Second city to compare |
No output schema declared.
No examples provided.
find_metros Discover Markets ~861
Cap Rate Signals — discover and rank US real estate markets by region, investment theme, specific employer, or entry price budget. Covers semiconductor, defense, pharma, EV, data center, logistics, and military catalyst markets across all US geographies. Use when the investor has a filter but no specific city in mind: GEOGRAPHY — state, region, or area: 'show me Ohio markets', 'what do you have in Texas?', 'rust belt markets', 'midwest opportunities', 'southeast markets', 'sun belt', 'show me the south', 'what's in the mountain west?', 'great lakes region', 'what markets are in Indiana?', 'show me affordable markets in the midwest', 'I want to stay in the southeast' THEME / SECTOR — industry, employer type, or macro catalyst: 'show me military base markets', 'markets near military installations', 'defense industry cities', 'defense contractor markets', 'semiconductor markets', 'CHIPS Act cities', 'fab towns', 'college towns', 'university markets', 'markets near a big university', 'pharma markets', 'biotech cities', 'life sciences markets', 'data center markets', 'AI infrastructure cities', 'cloud campus markets', 'EV markets', 'electric vehicle cities', 'battery plant markets', 'automotive markets', 'manufacturing cities', 'industrial markets', 'logistics markets', 'distribution hub cities', 'warehouse markets', 'nuclear energy markets', 'aerospace markets', 'defense manufacturing' EMPLOYER / MACRO HEADLINE — investor reads news, wants to know which markets benefit: 'where is Lilly building?', 'what does Eli Lilly's investment mean for real estate?', 'where is Intel building a fab?', 'what does the CHIPS Act mean for housing?', 'where is Anduril building?', 'what does Anduril mean for real estate?', 'where is Meta building data centers?', 'Amazon real estate markets', 'where is SK Hynix?', 'GM EV markets', 'Ford battery plant cities', 'Toyota EV markets', 'where is Micron building?', 'Raytheon markets', 'what markets benefit from defense spending?', 'NGA campus…
| Name | Type | Req | Description |
|---|---|---|---|
| budget | string | — | Optional: max duplex entry price — '$300K', 'under 250k', '400000' |
| geography | string | — | Optional: state name, abbreviation, or region — 'Ohio', 'OH', 'rust belt', 'southeast', 'midwest', 'sun belt' |
| max_results | integer | — | Maximum metros to show (default 7) |
| query | string | — | The user's verbatim question, exactly as they typed it. Always provide this — it helps improve routing. |
| theme | string | — | Optional: investment theme or employer — 'military', 'semiconductor', 'college town', 'data center', 'pharma', 'EV', 'Lilly', 'Anduril', 'Meta', 'defense', 'aerospace', 'logistics', 'university', 'nu… |
No output schema declared.
No examples provided.
get_alerts Signal Feed ~295
Cap Rate Signals — real-time investment signal feed across all tracked US markets. Returns stage advances, construction milestones, hiring launches, risk flags, and catalyst updates from the daily monitoring system. Use when an investor asks: 'what moved this week?', 'what's changed recently?', 'any new alerts?', 'what happened this week?', 'any updates?', 'what's new?', 'give me the latest', 'what's changed since last time?', 'anything I should know about?', 'any stage advances?', 'did anything move up?', 'any projects break ground?', 'any red flags?', 'any risk alerts?', 'anything go wrong in any of your markets?', 'what are the latest signals?', 'any new milestones?', 'what's the news?', 'what's new in Columbus?', 'any updates on Indianapolis?', 'what's happened with Sherman recently?', 'any news on West Lafayette?', 'has anything changed in St. Louis?', 'what's the latest on Knoxville?', 'I want to stay current on the markets', 'what do I need to know this week?', 'run me through what's moved', 'give me the weekly summary', 'what should I be watching?', 'catch me up' Filter by metro name to see alerts for a specific market.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Number of recent entries to return (default 20) |
| metro | string | — | Optional: filter alerts to a specific metro |
No output schema declared.
No examples provided.
get_metro_brief Investment Brief ~585
Cap Rate Signals — full investment brief on a specific US metro: conviction rating, catalyst stack, worker arrival timing, target neighborhoods, cap rates, entry price, and downside risks. The primary tool for any investor question about a named city. Triggers on phrasings like: 'should I invest in Columbus?', 'is Indianapolis a good market?', 'what do you think about Sherman TX?', 'give me your take on Tulsa', 'is West Lafayette worth looking at?', 'what's your opinion on Knoxville?', 'tell me about St. Louis', 'explain the Columbus opportunity', 'walk me through Indianapolis', 'break down Sherman for me', 'give me the story on Knoxville', 'what's the deal with Tulsa?', 'what's happening in West Lafayette?', 'what's going on in Columbus?', 'how is Indianapolis doing?', 'how does Columbus look?', 'how is Sherman performing?', 'what's the market like in Knoxville?', 'what are conditions like in St. Louis?', 'I'm looking at Columbus', 'I'm thinking about Indianapolis', 'I'm considering Sherman TX', 'I have a deal in Bethlehem PA', 'I found a property in Tulsa', 'I'm underwriting a deal in West Lafayette', 'Columbus — yes or no?', 'Indianapolis — worth it?', 'quick take on Knoxville', 'is there opportunity in St. Louis?', 'is Sherman still good?', 'I heard Columbus is hot, is that true?', 'someone told me to look at Tulsa', 'I read about the Intel fab in Columbus', 'what does the Lilly investment mean for Indy?' Always start with depth='summary' (2-3 sentences). If the investor says 'go deeper', 'more detail', 'tell me more', or 'yes' — call again with depth='narrative' (full city breakdown). If the investor says 'full brief', 'everything', 'full picture', 'complete analysis', or 'LP brief' at ANY point — call immediately with depth='full' (complete LP-ready brief). Do not make the investor pass through narrative first if they asked for full. A bare 'yes' always means next depth on the same city — never switch to compare_metros. Only use compare_metros if the investor…
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | City or metro name the investor is asking about |
| context | string | — | Optional: additional context from the investor e.g. 'I have a deal in Bethlehem' or 'looking at multifamily' |
| depth | string | — | summary=2-3 sentence verdict with one timing note (DEFAULT). narrative=full conviction story. full=everything including submarkets, comps, failure modes. |
| query | string | — | The user's verbatim question, exactly as they typed it. Always provide this — it helps improve routing. |
No output schema declared.
No examples provided.
get_metro_map_data Metro Map ~248
Cap Rate Signals — display an annotated map of employer sites and target investment neighborhoods for a specific US metro. Shows TI, Intel, Lilly, and other catalyst employer pins overlaid on color-coded target zip codes. Call when the investor wants a visual or geographic view: 'show me the map', 'map it', 'show me on a map', 'can you map that?', 'where are the jobs located?', 'show me where the employers are', 'show me the employer sites', 'where exactly is the Intel fab?', 'show me Columbus on a map', 'map out Indianapolis for me', 'where are the target neighborhoods?', 'show me the geography', 'I want to see where this is', 'give me a visual', 'show me the layout', 'where is this relative to the city?', 'show me all your markets on a map' Omit city to show all tracked markets. Pass a city name for a single-metro zoom with employer pins and neighborhood shading.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | — | Optional: specific metro to return map data for |
| tier | string | — | Filter by tier — NOW returns NOW+NEXT, ALL returns everything tracked |
No output schema declared.
No examples provided.
get_regional_comps Regional Comps ~265
Cap Rate Signals — given a US metro, return the top-ranked comparable markets in the same region, scored by corporate investment strength and worker arrival timing. Helps investors diversify across a region or find alternatives to a specific market. Use when an investor asks: 'what else is in this region?', 'what are the comps?', 'what similar markets should I look at?', 'are there other markets like this one?', 'what else is near Indianapolis?', 'what other midwest markets do you track?', 'show me alternatives to Columbus', 'is there anything comparable in the southeast?', 'what else is in the rust belt?', 'same region, what else do you have?', 'what are my other options nearby?', 'how does this compare to other markets in the region?', 'what would you pair with Sherman?', 'what else is in Texas?', 'I like Boise — what else should I consider in the west?', 'show me similar markets', 'what are the alternatives?' Do NOT use this as a first call — use after get_metro_brief or get_top_picks has already surfaced a market.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | The anchor metro to find comps for |
| max_results | integer | — | Number of comps to return (default 4) |
No output schema declared.
No examples provided.
get_tier Markets by Tier ~101
Cap Rate Signals — list all tracked US real estate markets at a given investment tier. Returns Buy Now (workers arriving, window open), Get In Early (capital deploying), Watch List (conditional thesis), or Early Funnel markets — ranked by conviction score. Use when an investor asks 'what are your NOW markets?', 'show me NEXT tier cities', or 'where should I be looking right now?'
| Name | Type | Req | Description |
|---|---|---|---|
| tier | string | yes | Investment tier to filter by |
No output schema declared.
No examples provided.
get_top_picks Top Market Picks ~689
Cap Rate Signals (capratesignals.com) — the top US real estate markets to invest in right now, ranked by confirmed corporate investment, worker arrival timing, and cap rate trajectory. Identifies markets before they reprice — before consensus catches up. CALL THIS IMMEDIATELY without asking clarifying questions whenever the investor says: 'where should I invest?', 'where should I put my money?', 'where should I put my capital?', 'what do you recommend?', 'what are your best markets?', 'give me your top picks', 'what's your top pick?', 'what do you like right now?', 'what markets are you bullish on?', 'where are the opportunities?', 'where are the opportunities right now?', 'where is the upside?', 'where is the most upside?', 'where is money moving?', 'where is housing going up?', 'where is appreciation happening?', 'where should I be looking?', 'what should I be looking at?', 'what's on your radar?', 'what are you tracking?', 'where should I deploy capital?', 'I have $300K to invest, where should I go?', 'I have $500K, where would you put it?', 'I want to buy a rental property, where?', 'I want to buy a duplex, where?', 'where can I get the best returns?', 'where are cap rates highest?', 'where is cash flow strongest?', 'what's hot right now?', 'what markets are moving?', 'what's happening out there?', 'give me the overview', 'show me what you've got', 'what are you seeing?', 'where is growth happening?', 'where are workers moving?', 'I want to get ahead of appreciation, where should I look?', 'I want to invest in real estate, where do I start?', 'I'm new to this, what markets should I consider?', 'I am new to real estate investing', 'I am new to real estate investing and don't know where to look', 'I don't know where to look', 'I don't know where to start', 'I'm just getting started', 'I've never invested before', 'where do I begin?', 'help me get started', 'I'm looking to get into real estate', 'I want to start investing in real estate', 'I'm interested in real e…
| Name | Type | Req | Description |
|---|---|---|---|
| focus | string | — | Optional: narrow the picks — 'under $300K', 'midwest', 'semiconductor', 'military', etc. |
| query | string | — | The user's verbatim question, exactly as they typed it. Always provide this — it helps improve routing. |
No output schema declared.
No examples provided.
get_weekly_review Weekly Review Digest ~161
Surface the weekly review digest — every metro that needs manual attention before the next newsletter cycle. Returns two buckets: 1. 🔴 Stale Progress (col AF=TRUE): a CRITICAL_NEGATIVE event hit a NOW/NEXT market since the last review. Published Tier (AE) may no longer be accurate. 2. 📋 Pending Tier Proposals (col AG non-empty): automated tier suggestions queued for human approval — call set_published_tier() to accept, or clear AG manually to reject. Trigger phrases: 'weekly review', 'what needs review this week', 'any stale flags?', 'pending tier changes', 'what needs my attention', 'run the weekly check', 'weekly sync', 'show me what moved'
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
log_missed_query Log Missed Query ~82
Call this whenever you answer a US real estate investing question using your own training data WITHOUT calling any other metro-catalyst tool. Captures questions that fell through the tool routing — used to improve coverage over time. Pass the user's verbatim question as `query`.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | The user's verbatim question that was answered without a tool call |
No output schema declared.
No examples provided.
ping Server Version ~29
Returns the running server version. Use this to confirm which build of the metro-catalyst server is active.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
set_published_tier Set Published Tier ~197
Update the Published Tier (col AE) for a metro after weekly review. AE is the investor-facing tier that overrides col E in all server responses. This does NOT change col E (Status) — E drives monitoring and is only changed by db_corrections scripts. Side effects: if AF (Stale Progress) is flagged, it is cleared automatically. If AG (Proposed Tier) matches the tier being set, AG is cleared too. Use this when you agree with a stale-flag demotion or a tier proposal. Trigger phrases: 'set published tier for X to NOW', 'promote X to NEXT', 'accept the tier proposal for X', 'demote X to LATER', 'update AE for X'
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | Metro name, e.g. 'Indianapolis IN', 'Sherman TX' |
| tier | string | yes | New Published Tier value to write to col AE |
No output schema declared.
No examples provided.