import { z } from "zod";
import { experimental_PaidMcpAgent as PaidMcpAgent } from "@stripe/agent-toolkit/cloudflare";
export function compareJurisdictionalRequirementsTool(agent: PaidMcpAgent<Env, any, any>) {
const server = agent.server;
// @ts-ignore
server.tool(
"compare_jurisdictional_requirements",
"Compare code requirements across multiple jurisdictions. Essential for projects spanning boundaries. Useful for site selection decisions.",
{
jurisdictions: z.array(z.string()).describe("Array of jurisdictions to compare (e.g., ['Atlanta, GA', 'Sandy Springs, GA', 'Roswell, GA'])"),
requirementType: z.enum(["building", "zoning", "electrical", "plumbing", "fire", "mechanical", "parking", "height", "setback", "occupancy", "all"]).describe("Type of requirements to compare"),
projectType: z.string().describe("Type of project for comparison (e.g., 'commercial retail', 'residential multi-family', 'industrial warehouse')"),
specificRequirement: z.string().optional().describe("Specific requirement to compare (e.g., 'parking ratios', 'height limits', 'setback requirements')"),
includeFees: z.boolean().optional().describe("Include fee comparisons across jurisdictions"),
includeTimeline: z.boolean().optional().describe("Include processing timeline comparisons"),
},
async ({ jurisdictions, requirementType, projectType, specificRequirement, includeFees, includeTimeline }: {
jurisdictions: string[];
requirementType: string;
projectType: string;
specificRequirement?: string;
includeFees?: boolean;
includeTimeline?: boolean;
}) => {
// This would integrate with multiple municipal code databases for comparison
// For now, return a structured response indicating the comparison request
const comparisonParams = {
jurisdictions,
requirementType,
projectType,
specificRequirement: specificRequirement || "All applicable requirements",
includeFees: includeFees || true,
includeTimeline: includeTimeline || true
};
return {
content: [
{
type: "text",
text: `Jurisdictional Requirements Comparison\n\nJurisdictions: ${comparisonParams.jurisdictions.join(", ")}\nRequirement Type: ${comparisonParams.requirementType}\nProject Type: ${comparisonParams.projectType}\nSpecific Requirement: ${comparisonParams.specificRequirement}\n\nThis tool would provide a comprehensive comparison including:\n\n- Code requirement differences\n- Local amendment variations\n- Fee structure comparisons\n- Processing timeline differences\n- Professional requirement variations\n- Inspection requirement differences\n- Appeal process variations\n- Enforcement policy differences\n- Site selection recommendations\n- Cost-benefit analysis\n\nThis comparison is essential for projects spanning multiple jurisdictions or for site selection decisions.`
}
]
};
}
);
}