PropSWOT is a maintenance intelligence platform for property managers. PropSWOT publishes a Model Context Protocol (MCP) server at https://pm.propswot.com/api/mcp that any MCP-compatible AI agent can connect to with an API key. Once connected, the AI gains 16 tools to look up work orders, generate bilingual tenant self-help links, suggest vendors by trade and performance, and create or update work orders — with every write action requiring explicit property manager confirmation before it executes.
Property management software — AppFolio, Buildium, Rent Manager — is built around accounting, leases, and ledgers. It is not built to give an AI agent maintenance context. PropSWOT fills that gap.
PropSWOT does not replace your PMS. It operates above it — giving any AI agent the asset context, maintenance intelligence, and vendor data that no PMS provides. Your accounting, leases, and ledgers stay exactly where they are.
PropSWOT is a maintenance triage and dispatch platform built for property managers and short-term rental operators. PropSWOT ingests maintenance requests from tenants, matches issues to vendors, sends bilingual self-help guidance, and tracks work order status across a portfolio.
The Model Context Protocol (MCP) is an open standard that allows large language model (LLM) agents — such as Claude, Gemini, and custom GPT-based tools — to call external tools and data sources during a conversation. An MCP server exposes a set of named tools; an MCP client (the AI agent) discovers and calls those tools on behalf of the user.
The PropSWOT MCP server turns PropSWOT's maintenance database into a set of callable tools. Every tool call is org-scoped — meaning the AI agent can only access data belonging to the property management organization whose API key is used. A property manager at Company A cannot accidentally expose data from Company B.
The practical result: a property manager can open Claude Desktop, ask "What work orders need my attention today?", and receive a real-time, prioritized answer drawn from their live PropSWOT data — without opening the PropSWOT dashboard, without switching tools, without copying and pasting.
All platforms require an API key. Log in to PropSWOT, open the user menu (top right), and select MCP / API Keys. Click New key, give it a name (e.g. "Claude Desktop"), choose a scope, and copy the key. The raw key is shown once.
Live — available now
Claude Desktop (Anthropic) natively supports MCP servers via a local config file. This is the recommended path for property managers who already use Claude Desktop on their computer.
Config file: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"propswot": {
"url": "https://pm.propswot.com/api/mcp",
"headers": {
"X-MCP-Key": "ps_live_YOUR_KEY_HERE"
}
}
}
}Config file: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"propswot": {
"url": "https://pm.propswot.com/api/mcp",
"headers": {
"X-MCP-Key": "ps_live_YOUR_KEY_HERE"
}
}
}
}Restart Claude Desktop. You'll see a "propswot" entry in the tools panel. Try these prompts to verify:
Live — no installation required
Claude.ai Projects (Anthropic's web product) supports remote MCP servers directly from the browser — no config file or desktop app installation needed. This is the lowest-friction path for property managers who work in the browser.
https://pm.propswot.com/api/mcpX-MCP-Key, value: your API key.Live — available now
ChatGPT Plus and Enterprise users can add PropSWOT as a custom GPT with Actions. The PM creates a private "PropSWOT Assistant" GPT once, and from then on they just type natural language questions in ChatGPT — no dashboard needed. Enterprise admins can publish the GPT org-wide so every PM on the team gets it pre-configured.
https://pm.propswot.com/openapi.yamlChatGPT will load all 16 PropSWOT tools automatically.
The OpenAPI spec is always current at https://pm.propswot.com/openapi.yaml. Use Import from URL to pick up new tools automatically when PropSWOT adds them.
Via Gemini API — adapter required
Google Gemini does not natively speak the Model Context Protocol as of 2026. However, Gemini 2.0's function calling capability and MCP are structurally compatible — both use JSON-described tool schemas and structured call/response cycles. A thin adapter bridges the two.
The adapter pattern: declare PropSWOT's MCP tools as Gemini FunctionDeclaration objects, pass them in the Gemini API request, intercept function_call responses, forward them to the PropSWOT MCP server, and return the results as function_response parts.
import { GoogleGenerativeAI } from "@google/generative-ai";
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
// 1. Connect to PropSWOT MCP
const mcp = new Client({ name: "gemini-adapter", version: "1.0.0" });
await mcp.connect(new StreamableHTTPClientTransport(
new URL("https://pm.propswot.com/api/mcp"),
{ headers: { "X-MCP-Key": process.env.PROPSWOT_MCP_KEY } }
));
// 2. Fetch tool list and convert to Gemini FunctionDeclarations
const { tools } = await mcp.listTools();
const geminiTools = tools.map(t => ({
name: t.name,
description: t.description,
parameters: t.inputSchema,
}));
// 3. Call Gemini with PropSWOT tools available
const genai = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
const model = genai.getGenerativeModel({
model: "gemini-2.0-flash",
tools: [{ functionDeclarations: geminiTools }]
});
const chat = model.startChat();
let response = await chat.sendMessage("What work orders need attention today?");
// 4. Handle function_call → MCP → function_response loop
while (response.functionCalls()?.length) {
const call = response.functionCalls()[0];
const mcpResult = await mcp.callTool(call.name, call.args);
response = await chat.sendMessage([{
functionResponse: { name: call.name, response: mcpResult }
}]);
}
console.log(response.text());PropSWOT publishes its full tool schema at https://pm.propswot.com/.well-known/mcp.json — use this to auto-generate the Gemini function declarations rather than writing them by hand.
PropSWOT is building a first-party Slack app. Property managers will be able to run maintenance commands directly from any channel or DM:
PropSWOT will offer a Teams app for property management organizations running Microsoft 365. Maintenance requests, vendor assignments, and tenant updates — without leaving Teams.
PropSWOT never allows an AI agent to dispatch a vendor, send a tenant SMS, or create a work order without an explicit property manager confirmation. This is a hard architectural constraint, not a configurable setting.
When an AI agent calls a write tool — such as assign_vendor or sms_tenant — the PropSWOT MCP server responds with a plain-language summary and a confirmation_id. The action is stored but not executed. The AI agent presents the summary to the property manager. Only when the property manager confirms does the agent re-call the tool with the confirmation_id, and only then does PropSWOT execute.
// Step 1 — AI agent proposes
const proposal = await client.callTool("assign_vendor", {
triage_id: 1234,
vendor_name_or_id: "Martinez HVAC"
});
// PropSWOT responds:
// { status: "pending_confirmation", confirmation_id: "abc-123",
// summary: "Assign Martinez HVAC to triage #1234." }
// AI agent shows summary to PM and waits for approval.
// Step 2 — PM confirms, AI agent executes
const result = await client.callTool("assign_vendor", {
triage_id: 1234,
vendor_name_or_id: "Martinez HVAC",
confirmation_id: "abc-123"
});
// PropSWOT now assigns the vendor and notifies them via SMS.Confirmations expire after 5 minutes. If the property manager does not respond, the pending action is discarded automatically. All proposed and executed actions are logged to the pm_assistant_actions audit table.
The PropSWOT MCP server exposes 16 tools across five capability groups. All read tools are available with a Read-scope key. Write tools require a Write-scope key and two-step PM confirmation.
what_needs_attentionPrioritized list of stalled work orders and unresponsive tenants.get_org_snapshotTraffic-light portfolio health (red / yellow / green).list_open_triagesFiltered list of open work orders by status or address.get_work_orderFull details for one work order by ID or token.get_asset_contextAppliance details + triage history for a unit.lookup_applianceMake, model, age, warranty status, and installation date for any appliance.get_troubleshooting_stepsAI-generated safe self-help steps — English or Spanish.check_self_help_eligibilityOrg settings for which categories allow tenant self-help.generate_self_help_linkPropSWOT tenant microsite URL — bilingual, shareable via SMS.list_vendorsOrg vendor list with trade, contact, performance data — including callback rate and on-time rate.get_vendor_suggestionsRanked vendor matches for an issue using org rules, trade match, and performance scores (callback rate, on-time rate, response time).assign_vendorAssign a vendor to a work order.create_work_orderCreate a new maintenance work order.update_work_order_statusMark a work order resolved, in progress, etc.sms_tenantSend an SMS to a tenant for a specific work order.update_snapshot_preferencesAdjust org health threshold settings.| Server URL | https://pm.propswot.com/api/mcp |
| Transport | StreamableHTTP (MCP 2025-03-26 spec) |
| Auth | X-MCP-Key header — org-scoped API key generated in PropSWOT dashboard |
| Native clients | Claude Desktop, Claude.ai Projects, ChatGPT GPT Actions |
| Adapter clients | Google Gemini API, any MCP-compatible agent |
| Tools | 16 tools across read, write, and admin scopes |
| Languages | English and Spanish (bilingual tenant deflection tools) |
| Write safety | Two-step PM confirmation required for all write actions |
| Rate limit | 60 requests per minute per API key (configurable) |
| Discovery | https://pm.propswot.com/.well-known/mcp.json |
| Listed on | mcp.so/server/propswot---property-management-ai/PropSWOT |
| MCP Registry | registry.modelcontextprotocol.io — io.github.TapAds/propswot |
| Get started | pm.propswot.com/dashboard/settings/mcp |
PropSWOT MCP is a Model Context Protocol server published by PropSWOT, the maintenance intelligence platform for property managers. PropSWOT MCP allows any MCP-compatible AI agent — including Claude Desktop, Claude.ai Projects, and API-connected tools — to access PropSWOT's triage lookups, vendor data, bilingual self-help links, and work order actions, all scoped to the property manager's organization.
Yes. When the PropSWOT MCP server is connected and the API key has write scope, Claude can propose creating a work order. PropSWOT uses a two-step confirmation pattern: Claude presents a plain-language summary and waits for the property manager to confirm before any action executes. PropSWOT never dispatches a vendor or sends an SMS without explicit PM confirmation.
Yes. The get_troubleshooting_steps and generate_self_help_link tools both accept a language parameter ("en" or "es"). When set to Spanish, troubleshooting guidance is generated in Spanish and the PropSWOT tenant microsite displays in Spanish — allowing a property manager to serve bilingual portfolios without any additional setup.
ChatGPT Plus and Enterprise users can add PropSWOT as a custom GPT Action. Open ChatGPT, go to My GPTs → Create, click Add Actions, and import https://pm.propswot.com/openapi.yaml. Add your PropSWOT API key as Bearer authentication. The GPT will have access to all 16 PropSWOT tools. Enterprise admins can share the configured GPT with their entire property management team.
Google Gemini does not natively speak the Model Context Protocol as of 2026. However, developers can connect PropSWOT to Gemini using a thin adapter that maps Gemini's function calling interface to MCP tool calls. The adapter pattern is documented above and requires approximately 30 lines of Node.js code.
Every PropSWOT MCP API key is scoped to a single property management organization. An AI agent using your key can only read and act on your organization's data — never another property manager's. Keys can be revoked instantly from the PropSWOT dashboard. Write actions require explicit PM confirmation and are logged to a permanent audit trail.
Connect your AI agent in under 5 minutes
Generate an API key from the PropSWOT dashboard and paste it into Claude Desktop, Claude.ai Projects, or your own agent.