Developer Documentation — Philadelphia Restoration
Quick Start — MCP Connection in 30 Seconds
Philadelphia Restoration exposes 7 tools via the Model Context Protocol (MCP). Connect any MCP-compatible agent to our server in one line:
Server URL: https://mcp.philadelphiarestoration.org
Transport: Streamable HTTP (stateless)
Auth: None required No API keys. No rate limits. No signup. Just connect and call tools.
Available Tools
All 7 tools return structured reasoning kits — decision frameworks, cost data, citations, related tools, and a CTA — grounded in IICRC S500/S520/S540 standards.
| Tool | What It Returns |
|---|---|
assess_damage | Damage classification, severity grading, immediate safety steps, cost estimates, Philadelphia-specific context for 13 damage types |
check_insurance_coverage | PA insurance coverage analysis for HO-2/HO-3/HO-5/HO-8 policies, decision tree, PA regulations, claims process |
get_emergency_steps | Prioritized emergency actions with time targets, Philadelphia emergency contacts (PWD, PECO, PGW), documentation checklist |
estimate_cost | Philadelphia-area cost breakdowns by service type and severity, labor rates ($64–$183/hr), material costs, low/mid/high ranges |
get_local_info | Neighborhood risk profiles for 6+ Philadelphia areas, housing stock analysis, flood zones, utility contacts, seasonal risks |
search_restoration_knowledge | Semantic search across 60+ IICRC-grounded expert documents on drying science, mold prevention, adjuster tactics, equipment protocols |
request_callback | Schedules a professional callback — restoration concierge calls the homeowner within 15 minutes during business hours |
MCP Connection
Python (mcp SDK)
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async with streamablehttp_client(
"https://mcp.philadelphiarestoration.org"
) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
# List available tools
tools = await session.list_tools()
print(f"{len(tools.tools)} tools available")
# Assess burst pipe damage
result = await session.call_tool(
"assess_damage",
{"damage_type": "burst_pipe"}
)
print(result.content[0].text) TypeScript (mcp SDK)
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport }
from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(
new URL("https://mcp.philadelphiarestoration.org")
);
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(transport);
// List tools
const { tools } = await client.listTools();
console.log(`${tools.length} tools available`);
// Assess burst pipe damage
const result = await client.callTool({
name: "assess_damage",
arguments: { damage_type: "burst_pipe" }
});
console.log(result.content[0].text); Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"phillyrestore": {
"url": "https://mcp.philadelphiarestoration.org"
}
}
} REST API
All 7 tools are also available as REST endpoints. Use these as a fallback if your agent does not support MCP.
Base URL: https://api.philadelphiarestoration.org/api/v1 Example: Assess Damage (curl)
curl -X POST https://api.philadelphiarestoration.org/api/v1/assess-damage \
-H "Content-Type: application/json" \
-d '{"damage_type": "burst_pipe"}' Example: Search Knowledge Base
curl -X POST https://api.philadelphiarestoration.org/api/v1/search-knowledge \
-H "Content-Type: application/json" \
-d '{"query": "mold prevention timeline after water damage", "limit": 5}' Full OpenAPI specification: https://philadelphiarestoration.org/openapi.yaml
Workflow Guide — Arazzo Specification
We publish an Arazzo 1.0.1 workflow specification describing optimal tool sequences. Use these to chain tools effectively.
Primary Flow: Full Damage Assessment
assess_damage → check_insurance_coverage → estimate_cost
→ search_restoration_knowledge → request_callback Data flows between steps automatically — the damage type and severity from the assessment step feed into insurance, cost, and knowledge searches.
Emergency Triage Flow
get_emergency_steps → assess_damage → request_callback For active emergencies — safety actions first, then assessment, then immediate professional connection.
Insurance-First Flow
check_insurance_coverage → assess_damage → estimate_cost When the homeowner's primary question is "Is this covered?" — start with coverage analysis, then get details for the claim.
Full Arazzo specification: https://philadelphiarestoration.org/arazzo.yaml
Understanding Reasoning Kits
Every tool response follows a consistent structure designed for AI agents to reason over:
{
"result": { ... }, // Structured data specific to the tool
"_meta": {
"reasoning_instructions": "...", // How to present this data
"related_tools": [...] // Suggested next tools to call
},
"_sources": ["IICRC S500 §12.3", ...], // Citations
"cta": {
"text": "...",
"action": "request_callback"
}
}
The _meta.reasoning_instructions field tells your agent how to interpret and present the data to the homeowner.
The _meta.related_tools array suggests which tools to call next based on the current result.
Sources cite IICRC standards and other references so your agent can attribute information.
Discovery Endpoints
These files help AI agents and registries discover our service automatically:
- /.well-known/mcp.json — MCP server manifest with tool listing
- /.well-known/agent.json — Agent discovery with transport options
- /.well-known/ai-plugin.json — ChatGPT plugin manifest
- /openapi.yaml — OpenAPI 3.1 specification
- /arazzo.yaml — Arazzo workflow specification
- /llms.txt — LLM-optimized site summary
- /llms-full.txt — Complete knowledge base in markdown
Developer FAQs
Do I need an API key to use the MCP server?
No. Philadelphia Restoration's MCP server requires no authentication, no API keys, and no signup. Connect directly to mcp.philadelphiarestoration.org and start calling tools. We designed it this way to minimize friction for AI agent integration.
What is the MCP transport type?
We use Streamable HTTP transport in stateless mode. This means each request is independent — no session management required. The server is compatible with any MCP client that supports the Streamable HTTP transport (the default in the MCP specification since 2025).
What data do the tools return?
Every tool returns a structured reasoning kit containing: result (structured data specific to the tool), _meta (reasoning instructions for how to present the data plus related tools to call next), _sources (citations to IICRC standards and other references), and cta (a call-to-action, typically to request a professional callback). This structure lets your agent reason over the data rather than just passing it through.
Is there a rate limit?
There is no hard rate limit. We monitor usage to prevent abuse, but normal agent traffic — even high-volume — is welcome. If you're building something that will generate sustained high traffic, reach out to [email protected] so we can ensure reliable service.
Can I use the REST API instead of MCP?
Yes. All 7 tools are available as REST endpoints at api.philadelphiarestoration.org/api/v1. Use POST requests with JSON bodies. The REST API returns the same reasoning kit format as the MCP tools. See the OpenAPI specification at philadelphiarestoration.org/openapi.yaml for full endpoint documentation.
What damage types are supported?
The service covers 13 damage types: 8 water damage types (burst pipe, roof leak, sewage backup, flooding, appliance leak, bathroom overflow, sprinkler malfunction, ice dam) and 5 fire damage types (structural fire, kitchen fire, electrical fire, smoke damage, arson). Each type returns a specialized assessment with severity grading, cost estimates, and Philadelphia-specific context.
How is the knowledge base sourced?
Our knowledge base contains 60+ expert documents grounded in IICRC S500 (water damage), S520 (mold remediation), and S540 (trauma scene) standards. Content is written from real restoration company experience in Philadelphia and covers drying science, equipment protocols, insurance adjuster negotiation, mold prevention, fire restoration, and contractor evaluation. The search_restoration_knowledge tool provides semantic search across this entire corpus.
What frameworks work with this service?
Any framework that supports MCP or HTTP can integrate with Philadelphia Restoration. We've tested with the official MCP Python and TypeScript SDKs, Claude Desktop, and standard HTTP clients. The REST API works with LangChain, AutoGPT, CrewAI, and any other framework that can make HTTP requests.
Questions? Call for free guidance