Citiwise
UDCPR 2020 (Maharashtra) feasibility for a plot, with the clause behind every number.
Should I use this
Quality & Safety
Findings (4)
- HIGH
- LOWin clause
- LOWin feasibility
- LOWin fetch
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"citiwise": {
"url": "https://citiwise.in/mcp"
}
}
}Remote endpoints
https://citiwise.in/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟢feasibility(town, area, road, area_unit, road_unit, ...)
Use this when someone asks what they can build on a plot or piece of land anywhere in Maharashtra outside Greater Mumbai: FSI or FAR, built-up area, setbacks (margins), height, how many floors, parking or approvals under UDCPR 2020, the building rules for every town in the state. People often ask in Marathi or Hindi, or mix them with English: जागा, प्लॉट, गुंठा, चटई क्षेत्र निर्देशांक (FSI), बांधकाम क्षेत्र (built-up), सामासिक अंतर (margins), किती मजले (how many floors), पार्किंग; give the area and road as they said them with area_unit and road_unit. Do not use for Greater Mumbai, for land prices or for building permission itself. Returns the UDCPR feasibility of one plot for one use: area statement, FSI, height limits, the margin on every side, the building that fits, parking, water, sanitary fixtures, stairs and lifts, fire tanks, refuge area, open space and amenity space, and the NOCs the plot and building trigger; the floor counts around the fitted one (options) and the heights that change the rules (thresholds); the Proforma I area statement; premiums as shares of the ASR land rate, scrutiny fee and payment options; TDR loading; what applies (rainwater, solar, grey water, inclusive housing, open space, amenity, refuge, fire NOC); corner rounding; plot-origin options; power line clearance and TOD FSI when those inputs are given. Each value carries its UDCPR clause.
Input Schema
{
"type": "object",
"properties": {
"town": {
"type": "string",
"description": "Maharashtra town, city or planning authority, e.g. Pune, Kolhapur, Nashik, PMRDA"
},
"area": {
"type": "number",
"description": "plot area as the user gave it, in m2 unless area_unit says sqft, guntha, acre or hectare: the least of 7/12, measurement sheet and site"
},
"road": {
"type": "number",
"description": "width of the road in front, in m unless road_unit is ft, when there is one road and no sides"
},
"area_unit": {
"type": "string",
"enum": [
"m2",
"sqft",
"guntha",
"acre",
"hectare"
],
"description": "unit of area, road_widening and reservation as the user gave them; default m2. Citiwise converts and says so in units"
},
"road_unit": {
"type": "string",
"enum": [
"m",
"ft"
],
"description": "unit of road and of each road side's width as the user gave them; default m"
},
"sides": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"road",
"plot",
"open",
"nallah",
"river",
"rail"
]
},
"width": {
"type": "number",
"description": "DP road width in m, for roads"
},
"length": {
"type": "number"
},
"name": {
"type": "string",
"description": "label, e.g. south"
},
"side": {
"type": "integer",
"minimum": 1,
"description": "for a curved or many-pointed side drawn as several segments: the side number each segment belongs to, the same on every segment of that side"
},
"corner": {
"type": "boolean",
"description": "true for the rounding or cut where two roads meet (3.3.12): margins run from it, but it is not a road of its own"
}
},
"required": [
"type"
]
},
"maxItems": 64,
"description": "every side, anticlockwise, starting at a road"
},
"zone": {
"type": "string",
"enum": [
"nc",
"c"
],
"description": "nc non-congested, c congested (gaothan)"
},
"land_use": {
"type": "string",
"enum": [
"res",
"com",
"ind",
"psp",
"agr",
"tt",
"gb"
]
},
"road_widening": {
"type": "number"
},
"reservation": {
"type": "number"
},
"handed_over": {
"type": "boolean"
},
"stilt": {
"type": "boolean"
},
"ground_height": {
"type": "number"
},
"floor_height": {
"type": "number"
},
"basements": {
"type": "integer",
"minimum": 0,
"maximum": 5,
"description": "levels of basement, for parking and services (9.11)"
},
"basement_flush": {
"type": "boolean",
"description": "basement top flush with the ground: it may then run into the side and rear margins (9.11.1 proviso i)"
},
"units": {
"type": "array",
"maxItems": 12,
"items": {
"type": "object",
"required": [
"type",
"carpet"
],
"properties": {
"type": {
"type": "string",
"description": "label of up to 20 characters: 1 BHK, 2 BHK, Studio, Shop, Office"
},
"count": {
"type": "integer",
"description": "units of this type, 0 to 10000; leave out to work it out"
},
"carpet": {
"type": "number",
"description": "carpet area of one unit, m2, 10 to 2000"
},
"share": {
"type": "number",
"description": "with count left out: this type's share of the carpet area, 0 to 1 or a percentage"
}
}
},
"description": "the unit mix, one entry per type, e.g. [{\"type\":\"2 BHK\",\"count\":12,\"carpet\":60},{\"type\":\"Shop\",\"count\":4,\"carpet\":25}]; parking takes each type in its own Table 8-B row; a count left out is worked out from the building"
},
"flats": {
"type": "integer",
"description": "number of flats; with carpet, a one-type unit mix"
},
"carpet": {
"type": "number",
"description": "carpet area of a flat, m2"
},
"polygon": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
},
"maxItems": 64,
"description": "plot corners [x, y] in m, anticlockwise, one per side, side 1 first; needed for plots that are not rectangles"
},
"sprinklers": {
"type": "boolean",
"description": "mixed building fully sprinklered (1.3(93)(xiv) note)"
},
"power_line_kv": {
"type": "number",
"description": "voltage of an overhead line near the plot, kV, for its clearance"
},
"tod": {
"type": "boolean",
"description": "plot inside a TOD zone (14.2.1)"
},
"road_widening_side": {
"type": "integer",
"description": "side number (1-based) that the road widening strip comes off; default the first road side"
},
"plot_origin": {
"type": "string",
"enum": [
"layout",
"unauthorised",
"gunthewari"
],
"description": "layout: sanctioned layout or sub-division; unauthorised: sub-divided after 11.01.1967 without permission; gunthewari: regularised under the Gunthewari Act"
},
"asr_rate": {
"type": "number",
"description": "land rate of the plot in the Annual Statement of Rates, Rs a m2; gives premiums in rupees and the DRC to debit"
},
"sale_rate": {
"type": "number",
"description": "sale rate, Rs a sq ft of carpet area; with build_cost and tdr_rate gives an appraisal: sales value, construction, premiums, TDR and the surplus before land"
},
"build_cost": {
"type": "number",
"description": "construction cost, Rs a sq ft of built-up area"
},
"tdr_rate": {
"type": "number",
"description": "price of TDR, Rs a sq ft"
},
"margin": {
"type": "number",
"description": "margin the developer needs, % of sales value; with the rates, gives the most to pay for the land and the largest share of the flats for the landowner in a joint development"
},
"other_costs": {
"type": "number",
"description": "other costs (fees, finance, marketing), % of construction cost"
},
"parking_cost": {
"type": "number",
"description": "construction cost of the stilt floor, Rs a sq ft; the stilt is free of FSI but built; default build_cost"
},
"land_price": {
"type": "number",
"description": "asking price of the land when it is being bought, Rs for the whole plot; with the rates, gives the profit at that price and how far it sits from the most to pay for the land"
},
"prepared_for": {
"type": "string",
"maxLength": 80,
"description": "who the study is for, as it should appear on its cover, e.g. the landowner or client"
},
"prepared_by": {
"type": "string",
"maxLength": 80,
"description": "who is giving the study, as it should appear on its cover, e.g. a broker or developer"
},
"carpet_share": {
"type": "number",
"description": "carpet area as a share of the built-up, 0.3 to 0.95 or 30 to 95 (default 0.8); sets the unit counts left out and so the sales value"
},
"tdr_generating_rate": {
"type": "number",
"description": "ASR land rate of the TDR's generating plot, Rs a m2 (11.2.6)"
},
"use_carpet": {
"type": "number",
"description": "carpet area of a non-residential use, or of the shops below flats, m2, for its parking and water; default the built-up that fits"
},
"rooms": {
"type": "integer",
"description": "guest rooms, for hotel parking and sanitation"
},
"beds": {
"type": "integer",
"description": "beds: for hospitals, parking, water, sanitation and grey water; for hotels, water"
},
"seats": {
"type": "integer",
"description": "seats, for assembly parking"
},
"bathrooms": {
"type": "boolean",
"description": "factories: whether bath-rooms are provided, for water (Table 12-A)"
},
"use": {
"type": "string",
"enum": [
"flats",
"mix",
"bung",
"row",
"shop",
"office",
"it",
"hotel",
"fuel",
"school",
"college",
"hospital",
"public",
"assembly",
"mangal",
"parking",
"warehouse",
"factory"
]
},
"upper_floors": {
"type": "integer",
"description": "floors above ground or stilt (G+3 is 3); omit to fit"
}
},
"required": [
"town",
"area",
"use"
]
}🟢compare_uses(town, area, road, area_unit, road_unit, ...)
Use this when someone wants to know which uses are allowed on a plot in Maharashtra, or how built-up differs between uses on the same land. Returns every use on the same land in a fixed order: allowed or the reason not, conditions, clause, and built-up with and without TDR.
Input Schema
{
"type": "object",
"properties": {
"town": {
"type": "string",
"description": "Maharashtra town, city or planning authority, e.g. Pune, Kolhapur, Nashik, PMRDA"
},
"area": {
"type": "number",
"description": "plot area as the user gave it, in m2 unless area_unit says sqft, guntha, acre or hectare: the least of 7/12, measurement sheet and site"
},
"road": {
"type": "number",
"description": "width of the road in front, in m unless road_unit is ft, when there is one road and no sides"
},
"area_unit": {
"type": "string",
"enum": [
"m2",
"sqft",
"guntha",
"acre",
"hectare"
],
"description": "unit of area, road_widening and reservation as the user gave them; default m2. Citiwise converts and says so in units"
},
"road_unit": {
"type": "string",
"enum": [
"m",
"ft"
],
"description": "unit of road and of each road side's width as the user gave them; default m"
},
"sides": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"road",
"plot",
"open",
"nallah",
"river",
"rail"
]
},
"width": {
"type": "number",
"description": "DP road width in m, for roads"
},
"length": {
"type": "number"
},
"name": {
"type": "string",
"description": "label, e.g. south"
},
"side": {
"type": "integer",
"minimum": 1,
"description": "for a curved or many-pointed side drawn as several segments: the side number each segment belongs to, the same on every segment of that side"
},
"corner": {
"type": "boolean",
"description": "true for the rounding or cut where two roads meet (3.3.12): margins run from it, but it is not a road of its own"
}
},
"required": [
"type"
]
},
"maxItems": 64,
"description": "every side, anticlockwise, starting at a road"
},
"zone": {
"type": "string",
"enum": [
"nc",
"c"
],
"description": "nc non-congested, c congested (gaothan)"
},
"land_use": {
"type": "string",
"enum": [
"res",
"com",
"ind",
"psp",
"agr",
"tt",
"gb"
]
},
"road_widening": {
"type": "number"
},
"reservation": {
"type": "number"
},
"handed_over": {
"type": "boolean"
},
"stilt": {
"type": "boolean"
},
"ground_height": {
"type": "number"
},
"floor_height": {
"type": "number"
},
"basements": {
"type": "integer",
"minimum": 0,
"maximum": 5,
"description": "levels of basement, for parking and services (9.11)"
},
"basement_flush": {
"type": "boolean",
"description": "basement top flush with the ground: it may then run into the side and rear margins (9.11.1 proviso i)"
},
"units": {
"type": "array",
"maxItems": 12,
"items": {
"type": "object",
"required": [
"type",
"carpet"
],
"properties": {
"type": {
"type": "string",
"description": "label of up to 20 characters: 1 BHK, 2 BHK, Studio, Shop, Office"
},
"count": {
"type": "integer",
"description": "units of this type, 0 to 10000; leave out to work it out"
},
"carpet": {
"type": "number",
"description": "carpet area of one unit, m2, 10 to 2000"
},
"share": {
"type": "number",
"description": "with count left out: this type's share of the carpet area, 0 to 1 or a percentage"
}
}
},
"description": "the unit mix, one entry per type, e.g. [{\"type\":\"2 BHK\",\"count\":12,\"carpet\":60},{\"type\":\"Shop\",\"count\":4,\"carpet\":25}]; parking takes each type in its own Table 8-B row; a count left out is worked out from the building"
},
"flats": {
"type": "integer",
"description": "number of flats; with carpet, a one-type unit mix"
},
"carpet": {
"type": "number",
"description": "carpet area of a flat, m2"
},
"polygon": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
},
"maxItems": 64,
"description": "plot corners [x, y] in m, anticlockwise, one per side, side 1 first; needed for plots that are not rectangles"
},
"sprinklers": {
"type": "boolean",
"description": "mixed building fully sprinklered (1.3(93)(xiv) note)"
},
"power_line_kv": {
"type": "number",
"description": "voltage of an overhead line near the plot, kV, for its clearance"
},
"tod": {
"type": "boolean",
"description": "plot inside a TOD zone (14.2.1)"
},
"road_widening_side": {
"type": "integer",
"description": "side number (1-based) that the road widening strip comes off; default the first road side"
},
"plot_origin": {
"type": "string",
"enum": [
"layout",
"unauthorised",
"gunthewari"
],
"description": "layout: sanctioned layout or sub-division; unauthorised: sub-divided after 11.01.1967 without permission; gunthewari: regularised under the Gunthewari Act"
},
"asr_rate": {
"type": "number",
"description": "land rate of the plot in the Annual Statement of Rates, Rs a m2; gives premiums in rupees and the DRC to debit"
},
"sale_rate": {
"type": "number",
"description": "sale rate, Rs a sq ft of carpet area; with build_cost and tdr_rate gives an appraisal: sales value, construction, premiums, TDR and the surplus before land"
},
"build_cost": {
"type": "number",
"description": "construction cost, Rs a sq ft of built-up area"
},
"tdr_rate": {
"type": "number",
"description": "price of TDR, Rs a sq ft"
},
"margin": {
"type": "number",
"description": "margin the developer needs, % of sales value; with the rates, gives the most to pay for the land and the largest share of the flats for the landowner in a joint development"
},
"other_costs": {
"type": "number",
"description": "other costs (fees, finance, marketing), % of construction cost"
},
"parking_cost": {
"type": "number",
"description": "construction cost of the stilt floor, Rs a sq ft; the stilt is free of FSI but built; default build_cost"
},
"land_price": {
"type": "number",
"description": "asking price of the land when it is being bought, Rs for the whole plot; with the rates, gives the profit at that price and how far it sits from the most to pay for the land"
},
"prepared_for": {
"type": "string",
"maxLength": 80,
"description": "who the study is for, as it should appear on its cover, e.g. the landowner or client"
},
"prepared_by": {
"type": "string",
"maxLength": 80,
"description": "who is giving the study, as it should appear on its cover, e.g. a broker or developer"
},
"carpet_share": {
"type": "number",
"description": "carpet area as a share of the built-up, 0.3 to 0.95 or 30 to 95 (default 0.8); sets the unit counts left out and so the sales value"
},
"tdr_generating_rate": {
"type": "number",
"description": "ASR land rate of the TDR's generating plot, Rs a m2 (11.2.6)"
},
"use_carpet": {
"type": "number",
"description": "carpet area of a non-residential use, or of the shops below flats, m2, for its parking and water; default the built-up that fits"
},
"rooms": {
"type": "integer",
"description": "guest rooms, for hotel parking and sanitation"
},
"beds": {
"type": "integer",
"description": "beds: for hospitals, parking, water, sanitation and grey water; for hotels, water"
},
"seats": {
"type": "integer",
"description": "seats, for assembly parking"
},
"bathrooms": {
"type": "boolean",
"description": "factories: whether bath-rooms are provided, for water (Table 12-A)"
}
},
"required": [
"town",
"area"
]
}🟢check_design(town, area, road, area_unit, road_unit, ...)
Use this when someone has a proposed building on a plot in Maharashtra and wants to know whether it meets UDCPR. Checks a proposal's built-up, height and margins (one per side, in side order) against UDCPR, with allowed, proposed and pass or fail per item. Margins need the height or the upper floors with them.
Input Schema
{
"type": "object",
"properties": {
"town": {
"type": "string",
"description": "Maharashtra town, city or planning authority, e.g. Pune, Kolhapur, Nashik, PMRDA"
},
"area": {
"type": "number",
"description": "plot area as the user gave it, in m2 unless area_unit says sqft, guntha, acre or hectare: the least of 7/12, measurement sheet and site"
},
"road": {
"type": "number",
"description": "width of the road in front, in m unless road_unit is ft, when there is one road and no sides"
},
"area_unit": {
"type": "string",
"enum": [
"m2",
"sqft",
"guntha",
"acre",
"hectare"
],
"description": "unit of area, road_widening and reservation as the user gave them; default m2. Citiwise converts and says so in units"
},
"road_unit": {
"type": "string",
"enum": [
"m",
"ft"
],
"description": "unit of road and of each road side's width as the user gave them; default m"
},
"sides": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"road",
"plot",
"open",
"nallah",
"river",
"rail"
]
},
"width": {
"type": "number",
"description": "DP road width in m, for roads"
},
"length": {
"type": "number"
},
"name": {
"type": "string",
"description": "label, e.g. south"
},
"side": {
"type": "integer",
"minimum": 1,
"description": "for a curved or many-pointed side drawn as several segments: the side number each segment belongs to, the same on every segment of that side"
},
"corner": {
"type": "boolean",
"description": "true for the rounding or cut where two roads meet (3.3.12): margins run from it, but it is not a road of its own"
}
},
"required": [
"type"
]
},
"maxItems": 64,
"description": "every side, anticlockwise, starting at a road"
},
"zone": {
"type": "string",
"enum": [
"nc",
"c"
],
"description": "nc non-congested, c congested (gaothan)"
},
"land_use": {
"type": "string",
"enum": [
"res",
"com",
"ind",
"psp",
"agr",
"tt",
"gb"
]
},
"road_widening": {
"type": "number"
},
"reservation": {
"type": "number"
},
"handed_over": {
"type": "boolean"
},
"stilt": {
"type": "boolean"
},
"ground_height": {
"type": "number"
},
"floor_height": {
"type": "number"
},
"basements": {
"type": "integer",
"minimum": 0,
"maximum": 5,
"description": "levels of basement, for parking and services (9.11)"
},
"basement_flush": {
"type": "boolean",
"description": "basement top flush with the ground: it may then run into the side and rear margins (9.11.1 proviso i)"
},
"units": {
"type": "array",
"maxItems": 12,
"items": {
"type": "object",
"required": [
"type",
"carpet"
],
"properties": {
"type": {
"type": "string",
"description": "label of up to 20 characters: 1 BHK, 2 BHK, Studio, Shop, Office"
},
"count": {
"type": "integer",
"description": "units of this type, 0 to 10000; leave out to work it out"
},
"carpet": {
"type": "number",
"description": "carpet area of one unit, m2, 10 to 2000"
},
"share": {
"type": "number",
"description": "with count left out: this type's share of the carpet area, 0 to 1 or a percentage"
}
}
},
"description": "the unit mix, one entry per type, e.g. [{\"type\":\"2 BHK\",\"count\":12,\"carpet\":60},{\"type\":\"Shop\",\"count\":4,\"carpet\":25}]; parking takes each type in its own Table 8-B row; a count left out is worked out from the building"
},
"flats": {
"type": "integer",
"description": "number of flats; with carpet, a one-type unit mix"
},
"carpet": {
"type": "number",
"description": "carpet area of a flat, m2"
},
"polygon": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
},
"maxItems": 64,
"description": "plot corners [x, y] in m, anticlockwise, one per side, side 1 first; needed for plots that are not rectangles"
},
"sprinklers": {
"type": "boolean",
"description": "mixed building fully sprinklered (1.3(93)(xiv) note)"
},
"power_line_kv": {
"type": "number",
"description": "voltage of an overhead line near the plot, kV, for its clearance"
},
"tod": {
"type": "boolean",
"description": "plot inside a TOD zone (14.2.1)"
},
"road_widening_side": {
"type": "integer",
"description": "side number (1-based) that the road widening strip comes off; default the first road side"
},
"plot_origin": {
"type": "string",
"enum": [
"layout",
"unauthorised",
"gunthewari"
],
"description": "layout: sanctioned layout or sub-division; unauthorised: sub-divided after 11.01.1967 without permission; gunthewari: regularised under the Gunthewari Act"
},
"asr_rate": {
"type": "number",
"description": "land rate of the plot in the Annual Statement of Rates, Rs a m2; gives premiums in rupees and the DRC to debit"
},
"sale_rate": {
"type": "number",
"description": "sale rate, Rs a sq ft of carpet area; with build_cost and tdr_rate gives an appraisal: sales value, construction, premiums, TDR and the surplus before land"
},
"build_cost": {
"type": "number",
"description": "construction cost, Rs a sq ft of built-up area"
},
"tdr_rate": {
"type": "number",
"description": "price of TDR, Rs a sq ft"
},
"margin": {
"type": "number",
"description": "margin the developer needs, % of sales value; with the rates, gives the most to pay for the land and the largest share of the flats for the landowner in a joint development"
},
"other_costs": {
"type": "number",
"description": "other costs (fees, finance, marketing), % of construction cost"
},
"parking_cost": {
"type": "number",
"description": "construction cost of the stilt floor, Rs a sq ft; the stilt is free of FSI but built; default build_cost"
},
"land_price": {
"type": "number",
"description": "asking price of the land when it is being bought, Rs for the whole plot; with the rates, gives the profit at that price and how far it sits from the most to pay for the land"
},
"prepared_for": {
"type": "string",
"maxLength": 80,
"description": "who the study is for, as it should appear on its cover, e.g. the landowner or client"
},
"prepared_by": {
"type": "string",
"maxLength": 80,
"description": "who is giving the study, as it should appear on its cover, e.g. a broker or developer"
},
"carpet_share": {
"type": "number",
"description": "carpet area as a share of the built-up, 0.3 to 0.95 or 30 to 95 (default 0.8); sets the unit counts left out and so the sales value"
},
"tdr_generating_rate": {
"type": "number",
"description": "ASR land rate of the TDR's generating plot, Rs a m2 (11.2.6)"
},
"use_carpet": {
"type": "number",
"description": "carpet area of a non-residential use, or of the shops below flats, m2, for its parking and water; default the built-up that fits"
},
"rooms": {
"type": "integer",
"description": "guest rooms, for hotel parking and sanitation"
},
"beds": {
"type": "integer",
"description": "beds: for hospitals, parking, water, sanitation and grey water; for hotels, water"
},
"seats": {
"type": "integer",
"description": "seats, for assembly parking"
},
"bathrooms": {
"type": "boolean",
"description": "factories: whether bath-rooms are provided, for water (Table 12-A)"
},
"use": {
"type": "string",
"enum": [
"flats",
"mix",
"bung",
"row",
"shop",
"office",
"it",
"hotel",
"fuel",
"school",
"college",
"hospital",
"public",
"assembly",
"mangal",
"parking",
"warehouse",
"factory"
]
},
"proposed": {
"type": "object",
"properties": {
"built_up": {
"type": "number"
},
"height": {
"type": "number"
},
"upper_floors": {
"type": "integer"
},
"margins": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 64
}
}
}
},
"required": [
"town",
"area",
"use",
"proposed"
]
}🟢clause(ref)
Use this when someone asks what a specific UDCPR regulation or table says. Returns the UDCPR text of a regulation or table by its number, such as '6.2.6', '11.2.4' or 'Table 6-G'.
Input Schema
{
"type": "object",
"properties": {
"ref": {
"type": "string"
}
},
"required": [
"ref"
]
}🟢search_udcpr(words)
Use this when someone asks where UDCPR deals with a topic, such as refuge areas or rainwater harvesting. Returns lines of UDCPR that contain all the given words, with their chapter; a regulation's own heading first.
Input Schema
{
"type": "object",
"properties": {
"words": {
"type": "string"
}
},
"required": [
"words"
]
}🟢towns(query)
Use this when the town or planning authority of a plot is unclear or spelt differently. Returns Maharashtra towns and authorities with their kind and class; every one when no query is given.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
}
}
}🟢draw_plot(sides, unit, angles, diagonals, right_angles, ...)
Use this when a plot's shape is given as measurements rather than as one area: side lengths with the angles at the corners, or with diagonals, as on a hand-drawn sketch, a measurement sheet or a survey; or the corners themselves. Works out the exact corners, checks every measurement that is given twice (closing side, angle sum, spare diagonals, stated area) and reports any misfit, and returns the polygon and sides to pass to feasibility, a link that opens the plot drawn in Citiwise, and, when town and use are given, the feasibility with its report. Do not use for a plot described only by its area and road width; call feasibility directly.
Input Schema
{
"type": "object",
"properties": {
"sides": {
"type": "array",
"items": {
"type": "object",
"properties": {
"length": {
"type": "number",
"description": "length of the side, in the unit given"
},
"beyond": {
"type": "string",
"enum": [
"road",
"plot",
"open",
"nallah",
"river",
"rail"
],
"description": "what lies beyond the side; plot for a neighbour"
},
"width": {
"type": "number",
"description": "for a road: its width, in the unit given"
},
"name": {
"type": "string",
"description": "label, e.g. east"
}
},
"required": [
"length"
]
},
"maxItems": 64,
"description": "every side in order round the plot, either direction; at least one is a road"
},
"unit": {
"type": "string",
"enum": [
"m",
"ft"
],
"description": "unit of every length and road width; default m"
},
"angles": {
"type": "array",
"items": {
"type": "number"
},
"description": "interior angle in degrees at each corner; corner i is where side i begins"
},
"diagonals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "integer"
},
"to": {
"type": "integer"
},
"length": {
"type": "number"
}
},
"required": [
"from",
"to",
"length"
]
},
"description": "corner-to-corner distances; a plot of n sides needs n - 3, e.g. from corner 1 to each corner it does not touch"
},
"right_angles": {
"type": "boolean",
"description": "true when every corner of a four-sided plot is square"
},
"polygon": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
},
"description": "the corners [x, y] instead of lengths and angles, one per side"
},
"stated_area": {
"type": "number",
"description": "the area on the 7/12 or measurement sheet, in m2 (or sq ft with unit ft), to check against"
},
"town": {
"type": "string",
"description": "with use: also run the feasibility"
},
"use": {
"type": "string",
"enum": [
"flats",
"mix",
"bung",
"row",
"shop",
"office",
"it",
"hotel",
"fuel",
"school",
"college",
"hospital",
"public",
"assembly",
"mangal",
"parking",
"warehouse",
"factory"
]
},
"zone": {
"type": "string",
"enum": [
"nc",
"c"
]
}
},
"required": [
"sides"
]
}🟢search(query)
Use this to find UDCPR regulations and tables, or a town's page, on any topic: refuge area, marginal distance on a 12 m road, Table 6-G, parking for flats, Kolhapur. Returns results, each with an id to pass to fetch, a title and a url to cite.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "words, a regulation number such as 6.2.6, a table such as Table 8-B, or a town"
}
},
"required": [
"query"
]
}🟢fetch(id)
Use this to read one result of search in full: a UDCPR regulation or table in its own words as notified, or what a town is under UDCPR with the figures for a common plot there. Returns id, title, text, url to cite, and metadata.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "an id from search, such as udcpr/6-2-6, udcpr/table-6-g or towns/kolhapur"
}
},
"required": [
"id"
]
}Community
Evidence