compareJurisdictionalRequirements.ts•2.89 kB
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.`
					}
				]
			};
		}
	);
}