Koskamo

Bedcount MCP

An MCP server providing access to IPEDS enrollment data, college-controlled housing capacity, bed gap calculations, and a by-the-bed student housing loan sizer for 693 US campuses. It allows AI assistants to query specific campus metrics or search campuses by various criteria without requiring authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Bedcount MCP logo, by Janover Capital LLCVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Janover Capital LLC
MCP endpoint (Streamable HTTP)
https://studenthousing.loans/mcp
Vendor documentation

What its tools do

3 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

3 of 3 have a description · 3 of 3 declare behavior hints · 3 of 3 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to studenthousing.loans ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Retrieve enrollment and housing bed data for a specific campus
  • Search campuses by state, city, or bed gap metrics
  • Size a student housing loan using the by-the-bed loan sizer

Source and maintenance

Vendor evidenceRegistry 1.2026.1101.1

Protocol and capabilities

Server
studenthousing-loans 1.0.0
MCP protocol negotiated in check
2025-06-18
Tools
3 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Bedcount (studenthousing.loans) answers questions about student housing at 693 US campuses that IPEDS classes as four-year or above with 3,000+ full-time students: fall 2024 enrollment, college-controlled housing capacity for 2024-25, beds per 100 full-time students, the bed gap (full-time students minus college beds), typical housing and food charges, and whether a campus meets Fannie Mae's campus-size test for Dedicated Student Housing. It also sizes a student housing loan by the bed. Data: NCES IPEDS complete data files (HD2025 directory, DRVEF2024 fall 2024 enrollment, provisional December 2025; COST1_2024 2024-25 housing, December 2025), https://nces.ed.gov/ipeds/complete-data-files/. Fall 2025 enrollment is not yet released. College-controlled capacity excludes private purpose-built student housing, so the bed gap is a first screen, not a demand estimate. Nothing returned is a market rent survey, an appraisal, a loan quote or a commitment to lend; the loan sizer uses the user's own rate. Every result carries its source link; cite it. The site is published by Janover Capital LLC and is not affiliated with any college, NCES, Fannie Mae, Freddie Mac or HUD. Data downloads and methods: https://studenthousing.loans/data/

Tools

3 advertised

get_campus — Student housing data for one campus
Advertised by the server during the last successful anonymous check.
Advertised read-only

One US four-year campus (3,000+ full-time students) from federal IPEDS data: fall 2024 enrollment (total, full-time, undergraduate, graduate, online share, change from 2023), college-controlled housing beds for 2024-25, beds per 100 full-time students, the bed gap, typical housing and food charges, aid-office housing budgets, and whether it meets Fannie Mae's 10,000-student campus-size test. Find it by name (with optional state) or IPEDS UNITID.

get_campus input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 120,
      "minLength": 2,
      "description": "Campus name or distinctive words from it, e.g. \"University of Florida\" or \"texas austin\"."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Two-letter state code to narrow a name match, e.g. TX."
    },
    "unitid": {
      "type": "string",
      "pattern": "^\\d{6}$",
      "description": "Six-digit IPEDS UNITID, e.g. 228778. Overrides name."
    }
  },
  "additionalProperties": false
}
get_campus annotations
{
  "title": "Student housing data for one campus",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_campuses — Find and rank campuses by students and beds
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists US four-year campuses (3,000+ full-time students) filtered by state, city, name words, sector, whether the college offers housing, Fannie Mae campus-size test, or minimum full-time enrollment, ranked by bed gap, enrollment, college beds, beds per 100 students or housing charge. Each row gives fall 2024 enrollment, 2024-25 college-controlled beds, bed gap, housing charge and the campus page link.

search_campuses input schema
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "maxLength": 60,
      "minLength": 2,
      "description": "City name, e.g. \"Austin\"."
    },
    "name": {
      "type": "string",
      "maxLength": 120,
      "minLength": 2,
      "description": "Words from the campus name, e.g. \"state university\"."
    },
    "sort": {
      "enum": [
        "bed_gap",
        "fulltime_enrollment",
        "total_enrollment",
        "beds_per_100",
        "college_beds",
        "housing_charge"
      ],
      "type": "string",
      "default": "bed_gap",
      "description": "Ranking field."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1,
      "description": "Rows to return (max 25)."
    },
    "order": {
      "enum": [
        "desc",
        "asc"
      ],
      "type": "string",
      "default": "desc",
      "description": "desc = largest first."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Two-letter state code, e.g. TX."
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "maximum": 1000,
      "minimum": 0,
      "description": "Rows to skip, for paging."
    },
    "sector": {
      "enum": [
        "Public",
        "Private nonprofit",
        "Private for-profit"
      ],
      "type": "string",
      "description": "Control of the institution."
    },
    "min_fulltime": {
      "type": "integer",
      "maximum": 200000,
      "minimum": 0,
      "description": "Minimum full-time students, fall 2024."
    },
    "offers_housing": {
      "type": "boolean",
      "description": "true = only colleges that provide housing; false = only those that provide none."
    },
    "fannie_campus_size_test": {
      "type": "boolean",
      "description": "true = only campuses with 10,000+ students, majority full-time (Fannie Mae Dedicated Student Housing campus-size test)."
    }
  },
  "additionalProperties": false
}
search_campuses annotations
{
  "title": "Find and rank campuses by students and beds",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
size_loan — Size a student housing loan by the bed
Advertised by the server during the last successful anonymous check.
Advertised read-only

The studenthousing.loans by-the-bed loan sizer: from beds, rent per bed, months collected, vacancy, expenses, reserves, value and your own interest rate, returns net operating income and the loan allowed by max LTV, min DSCR and an optional debt yield, the maximum loan (the smallest), which test binds, annual debt service and loan per bed. Presets are Freddie Mac's published student housing LTV/DSCR tiers.

size_loan input schema
{
  "type": "object",
  "required": [
    "beds",
    "rent_per_bed_month",
    "opex_per_bed_year",
    "value",
    "interest_rate_pct"
  ],
  "properties": {
    "beds": {
      "type": "integer",
      "maximum": 100000,
      "minimum": 1,
      "description": "Number of beds."
    },
    "value": {
      "type": "number",
      "maximum": 10000000000,
      "minimum": 1,
      "description": "Property value or purchase price, dollars."
    },
    "preset": {
      "enum": [
        "freddie_5_7yr",
        "freddie_over_7yr",
        "freddie_full_io_5_7yr"
      ],
      "type": "string",
      "default": "freddie_5_7yr",
      "description": "Freddie Mac student housing tier: freddie_5_7yr = 75% LTV / 1.30x; freddie_over_7yr = 80% / 1.30x; freddie_full_io_5_7yr = 65% / 1.30x, interest only."
    },
    "min_dscr": {
      "type": "number",
      "maximum": 3,
      "minimum": 1,
      "description": "Minimum debt service coverage, e.g. 1.25. Overrides the preset."
    },
    "max_ltv_pct": {
      "type": "number",
      "maximum": 100,
      "minimum": 0,
      "description": "Max loan-to-value, percent. Overrides the preset."
    },
    "vacancy_pct": {
      "type": "number",
      "default": 5,
      "maximum": 100,
      "minimum": 0,
      "description": "Vacancy, concessions and bad debt, percent of rent. Default 5, Fannie Mae's by-the-bed floor with a T-12 (10 without one)."
    },
    "months_collected": {
      "type": "number",
      "default": 12,
      "maximum": 12,
      "minimum": 1,
      "description": "Months of rent collected a year: 12 on 12-month leases, less if summer is empty."
    },
    "interest_rate_pct": {
      "type": "number",
      "maximum": 20,
      "minimum": 0.01,
      "description": "Your own quoted interest rate, percent, e.g. 6.25."
    },
    "opex_per_bed_year": {
      "type": "number",
      "maximum": 100000,
      "minimum": 0,
      "description": "Operating expenses per bed per year (taxes, insurance, payroll, utilities, turnover), dollars."
    },
    "amortization_years": {
      "type": "integer",
      "maximum": 40,
      "minimum": 0,
      "description": "Amortization in years, 0 = interest only. Default 30 (0 with the full-IO preset)."
    },
    "min_debt_yield_pct": {
      "type": "number",
      "maximum": 30,
      "minimum": 0,
      "description": "Minimum debt yield, percent. Omit or 0 to skip the test."
    },
    "rent_per_bed_month": {
      "type": "number",
      "maximum": 20000,
      "minimum": 0,
      "description": "Rent per bed per month, dollars."
    },
    "reserves_per_bed_year": {
      "type": "number",
      "default": 150,
      "maximum": 10000,
      "minimum": 0,
      "description": "Replacement reserves per bed per year, dollars. Default 150, Freddie Mac's stated minimum per bed."
    },
    "other_income_per_bed_month": {
      "type": "number",
      "default": 0,
      "maximum": 5000,
      "minimum": 0,
      "description": "Other income per bed per month (parking, fees, utility bill-backs), dollars."
    }
  },
  "additionalProperties": false
}
size_loan annotations
{
  "title": "Size a student housing loan by the bed",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (5 of 5 answered).

  1. 2026-11-02: 4 of 4 checks answered
  2. 2026-11-03: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
574 ms
95th percentile latency
574 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 574 ms · metadata changed · 3 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http bedcount-mcp https://studenthousing.loans/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add bedcount-mcp --url https://studenthousing.loans/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable bedcount-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "bedcount-mcp": {
      "url": "https://studenthousing.loans/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "bedcount-mcp": {
      "type": "streamableHttp",
      "url": "https://studenthousing.loans/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start bedcount-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "bedcount-mcp": {
      "type": "http",
      "url": "https://studenthousing.loans/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http bedcount-mcp https://studenthousing.loans/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "bedcount-mcp": {
      "url": "https://studenthousing.loans/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "bedcount-mcp": {
      "serverUrl": "https://studenthousing.loans/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Bedcount MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Bedcount MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing