Bucky

com.buckybuild由 buckybuild.com 发布官方发布者v1.0.1更新于 Oct 28, 2026

Zoning, parcel, and development feasibility for a street address in Canada and the US.

已验证Streamable HTTP可网页运行位置与生活效率与工作流数据与分析

概览

AI 生成的概览

Bucky 是一个托管式 MCP 服务器,可为加拿大和美国的街道地址返回带引用的分区、地块与开发可行性数据。

可以做什么
  • 查询单个地址的地块、分区、允许用途与建筑控制指标(退线、高度、覆盖率、密度),每项数值附带来源状态
  • 读取快照引用对应的法规条文原文,或按分区与条文编号获取条文
  • 在已覆盖城市中按论点、条件或已保存档案筛选地块,并可在未登录时预览某地址的覆盖情况
  • 保存、取消保存地块与项目,用私有文件夹整理,并创建项目、附加地块或知识引用
  • 排队运行可行性分析、加载项目上下文,以及生成或导出带引用的项目报告 PDF
  • 将项目发布到 Bucky 公开地图,并向产品团队提交经人工确认的反馈
适用场景
适合早期房地产与开发前期工作:查看某地块允许建什么、在已覆盖城市中筛选候选地块,并保留带引用证据的已存地块与项目。适合需要区分“法规未限制”与“未能提取”的用户。
运行要求
远程 Streamable HTTP 端点,无需本地安装包。多数工具使用 Bucky 的 OAuth 浏览器授权流程,账户级工具需要 Professional 方案或预付开发者额度;有两个工具无需账户即可使用。Claude 网页版与桌面版连接器需付费方案。
安装前请注意
保存地块、文件夹变更、项目更新、地图上架与报告导出都会写入数据;部分工具提供 preview=true 预览,部分操作无法撤销。报告导出在 confirm=true 时会消耗 records.exports 且不可逆。发布到公开地图会公开地块中心点、项目名称、分区类别、类型与生命周期状态。覆盖范围因辖区而异,结果仅为初步决策参考,不构成许可或专业意见。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Bucky,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.buckybuild%2Fbucky/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "bucky": {
      "type": "http",
      "url": "https://buckybuild.com/api/mcp"
    }
  }
}

README

Bucky

Cited site feasibility and pre-development project workflows for Canada and the United States, as a plugin and a hosted MCP server.

Give it a street address and it returns the lot, the zone, the permitted uses, and the material envelope — setbacks, height, coverage, density — with each value carrying its own provenance. A setback the bylaw does not limit and a setback Bucky could not extract are different answers, and they stay different.

https://buckybuild.com/api/mcp

Docs: https://docs.buckybuild.com/docs/mcp

Install

Claude Code

sh
/plugin marketplace add markbucky/bucky-plugin/plugin install bucky@bucky

Or the connector alone, without the skills:

sh
claude mcp add --transport http bucky https://buckybuild.com/api/mcp

Claude (web and desktop)

Settings → Connectors → Add custom connector, and paste the URL above. Needs a paid plan.

Cursor

Add Bucky to Cursor

VS Code

Add Bucky to VS Code

Codex

~/.codex/config.toml:

toml
[mcp_servers.bucky]url = "https://buckybuild.com/api/mcp"

Then codex mcp login bucky.

ChatGPT and Grok

Add as a custom connector in ChatGPT's developer-mode Connectors settings, or at grok.com/connectors → New Connector → Custom.

Anything else

Any Streamable HTTP client takes the same object:

json
{ "type": "http", "url": "https://buckybuild.com/api/mcp" }

What is in the plugin

Four skills, and one MCP connector:

SkillFor
site-feasibilityZoning, lot, setback, and height lookup for one address
save-and-analyze-projectSave a site, attach its parcel, run analysis
project-reportPrepare and export a cited report
explain-feasibility-statusInterpret a coverage or provenance status

Authentication

Two tools work with no account, so you can confirm the connection before signing in: getBuckyMcpGuide and explainFeasibilityStatus.

Everything else uses Bucky's OAuth browser flow. You never paste a token. Connected apps are listed at Settings → Connected apps, with what each can do and when it was last used; disconnecting takes effect on the next request rather than whenever a token expires.

Account-scoped tools need a Professional plan or prepaid developer credit.

Limits

Coverage varies by jurisdiction. Results are preliminary decision support — not a permit, an appraisal, a guarantee, or a legal, engineering, or architectural opinion.

Contributing

This repo is a mirror. The source of truth is Bucky's monorepo, and changes made here are overwritten on the next sync. Open an issue rather than a pull request, or send feedback through the submitBuckyFeedback tool — it goes to a human.

License

Apache-2.0. See LICENSE.

来源:README.md,提交 fa9cd42

工具

24

getBuckyMcpGuide

Get the Bucky MCP guide

Call with no arguments on first contact. Optional `role`, `market`, and `scale` answer the first-call questions on a second call. Returns what this session should do next.

输入参数rolescalemarketcontext必填llm_model必填

explainFeasibilityStatus

Explain a Bucky feasibility status

Explain one Bucky coverage or per-fact provenance status and the safe next action. This is a pure static lookup: it does not inspect an address, retrieve property data, or call a database, geocoder, AI model, or third-party API. Accepts exactly one of: live, live_unavailable, planned_not_live, geo_division_uncatalogued, unseeded_place, geocode_failed, cited, cited_conditional, conditional_unresolved, no_limit_in_bylaw, not_extracted, site_specific_schedule, unverified_default, derived_from_cited, defaulted, missing. Copy the status verbatim from a feasibility result. An unknown status returns this list instead of failing.

输入参数status必填context必填llm_model必填

getFeasibilitySnapshot

Get feasibility snapshot for an address

Look up lot, zone, and building envelope for one street address in Canada or the US. Pass `address`. One address per call; cannot search or compare. Every envelope value carries a `status`. Never report `not_extracted` or `site_specific_schedule` as no limit or as zero — call `explainFeasibilityStatus` first. Envelope numbers are extracted ceilings. Call `getBylawSection` with a citation `knowledgeSectionId`, or with `coverage.geoDivisionId`, `zone.code`, and the section number, before treating a number as available on this lot. Do not fetch `zone.bylawSourceUrl`. `lot.minLotFrontageM` is the zone minimum. `lot.lotConformity` compares lot width, lot area, and floor area per unit to those minima. A missing input is `unknown`, never a pass. State every fail before quoting a unit count.

输入参数source必填address必填context必填llm_model必填

getBylawSection

Get cited bylaw section text

Return the stored bylaw section text behind a snapshot citation. Pass `sectionIds` copied from `citations.*.knowledgeSectionId` on getFeasibilitySnapshot. Or pass `geoDivisionId` from `coverage.geoDivisionId`, `zoneCode` from `zone.code`, and `sectionNumbers` such as 3.1 or 3.2. The markdown is the schedule text. A number in the snapshot can still be conditional on frontage, tenure, or adjoining district. Ids or section numbers with no active chunk come back in `missing`.

输入参数context必填zoneCodellm_model必填sectionIdsgeoDivisionIdsectionNumbers

screenLots

Find lots that match a list

Find the lots in one live Bucky city that match a list. Pass `city` or `geoDivisionId` with `thesis` (plain words), `criteria` (square feet, dollars), or both; or pass a saved `profileId`. Returns countOutcome (exact, partial, or unavailable), screeningRunId, and selected lots ranked largest first with a pass, fail, or not_available verdict per filter. totalMatches is a compatibility value and can be returned-page size when the total is unavailable. Report a not_available filter; never present the count as filtered by it. The execution preserves selection for optional candidate assessment; assessment candidate counts are separate from search totals. Returns candidates, counted suggestions and savedMatches. Candidate/suggestion criteria use the same square-foot boundary as the input, including canonical registry values and strategies. Present these alternatives before asking to save. Pass the selected criteria with save=true only after explicit approval, without re-reading the thesis. Each lot has `address` for getFeasibilitySnapshot and `parcelExternalId` for saveToProject. save=true saves the list (write scope) and returns a CSV link.

输入参数citysavelimitthesiscontext必填criteriasaveNamellm_model必填profileIdgeoDivisionId

listSaved

list Saved

List the signed-in user’s saved lots and projects. Returns at most limit rows (default 50, maximum 200), with folder ids and project stages. Use folderId to read one private folder. Copy a lot entry’s id as savedLotId when filing it; lotId identifies its parcel. A saved lot is not a project.

输入参数limitoffsetcontext必填folderIdllm_model必填

saveLot

save Lot

Save one parcel by lotId without creating a project or running analysis. Saving it again keeps the same save. Use preview=true first to inspect the request without writing.

输入参数lotId必填context必填previewllm_model必填

unsaveLot

unsave Lot

Unsave one parcel by lotId. This also removes that saved lot from every folder. Projects are kept. Use preview=true first; this MCP tool does not provide Undo.

输入参数lotId必填context必填previewllm_model必填

listSavedFolders

list Saved Folders

List the signed-in user’s private folders, most recently used first, with item counts. Returns at most limit rows (default 50, maximum 200). Folders can contain saved lots and projects from different places.

输入参数limitoffsetcontext必填llm_model必填

createSavedFolder

create Saved Folder

Create a named private folder. A repeated create makes another folder. Use preview=true first and listSavedFolders to check an uncertain outcome before retrying.

输入参数name必填context必填previewllm_model必填

renameSavedFolder

rename Saved Folder

Rename a private folder by folderId. Pass name and use preview=true first to inspect the request without writing.

输入参数name必填context必填previewfolderId必填llm_model必填

deleteSavedFolder

delete Saved Folder

Delete a private folder by folderId and remove its memberships. Its lots stay saved and its projects are kept. Use preview=true first; this MCP tool does not restore deleted folders.

输入参数context必填previewfolderId必填llm_model必填

addSavedFolderItem

add Saved Folder Item

Add exactly one saved lot or project to a private folder. Pass folderId and target with savedLotId (a save id from listSaved) or projectId. Repeating the same membership is safe. Use preview=true first.

输入参数target必填context必填previewfolderId必填llm_model必填

removeSavedFolderItem

remove Saved Folder Item

Remove exactly one saved lot or project from a private folder. Pass folderId and target with savedLotId or projectId. The lot stays saved and the project is kept. Use preview=true first.

输入参数target必填context必填previewfolderId必填llm_model必填

runFeasibilityAnalysis

Run project feasibility analysis

Enqueue a fresh deterministic analysis run for a saved project. Pass `projectId`, or `project` with the name the user said; with neither, the result lists their projects and nothing is queued. Returns immediately with `agentStatus` (`queued`, `running`, `current`, `failed`, or `none`) and a receipt id; does not block on completion. Irreversible: a queued run cannot be un-queued from MCP. Re-check with `getProjectContext`, but no more than once every 15 seconds — it is a multi-query bundle, not a status endpoint.

输入参数context必填projectllm_model必填projectId

getProjectContext

Get project context bundle

Load one project with analysis envelope, compact agentStatus, document summaries, evidence summaries, the project memory digest, and external_ref when the project was imported from another system. Pass `include` for optional sections: tasks, members, insights, capital, visualEvidence. Default is none, so the payload stays the same as a call without include. Writes to those sections stay on the Bucky CLI. You do not need a UUID: pass `project` with the name the user said, or call with neither and the result lists their projects to choose from. Use before composing reports or after scheduling analysis.

输入参数context必填include必填projectllm_model必填projectIdevidenceLimit必填documentsLimit必填

saveToProject

Create or attach to a project

Create a project (`create`), attach lots (`attach_parcels`), or attach a knowledge reference (`attach_reference`). Pass `projectId` or `project`; with neither, the result lists projects and writes nothing. For attach_parcels, pass a WGS84 GeoJSON polygon (up to 500 selected parcels), or copy `lot.parcelExternalId` from getFeasibilitySnapshot. Polygon cannot be combined with parcelExternalIds or radiusM. Results report source truncation and attached count. preview=true returns the diff and writes nothing. A write returns a receipt. Not reversible on this surface.

输入参数latlngnameroleaction必填addresscontext必填polygonpreview必填projectradiusMllm_model必填另有 5 个

updateProject

Update project fields

Patch project metadata (name, lifecycle status, externalRef). Pass `projectId`, or `project` with the name the user said; with neither, the result lists their projects and nothing is written. preview=true returns the field-level diff and writes nothing. A write returns a receipt; undoOperationId restores the captured prior fields. Does not archive or delete.

输入参数namecontext必填preview必填projectllm_model必填projectIdexternalReflifecycleStatusundoOperationId

setProjectMapListing

List or unlist a project on the public map

Put a project on the public Bucky map, or take it off. Pass `projectId`, or `project` with the name the user said; with neither, the result lists their projects and nothing is published. Listing publishes the build-lot centroid, the project name, its zone category, typology and lifecycle status to anyone — signed in or not. Nothing else about the project is published. The project must have a build lot with a centroid; a project that has only an address and no attached build parcel cannot be pinned. Ask the human before listing a site that is not already public knowledge. A client, a friend, or a private residence is theirs to publish, not yours. preview=true returns the current state, the exact pin that would be published, and any privacy warning, and writes nothing. Unlisting removes the pin but does not un-share anything already collected while it was public.

输入参数listed必填context必填preview必填projectllm_model必填projectId

produceProjectReport

Compose and export a project report PDF

Compose a project report PDF. Pass `projectId` or `project`; with neither, the result lists projects and no meter is spent. preview=true composes without spending. confirm=true exports, spends records.exports, and is irreversible. Returns a signed download URL, never PDF bytes.

输入参数detail必填confirm必填context必填preview必填projectrequestaudience必填planNamellm_model必填projectId

submitBuckyFeedback

Submit feedback to Bucky

Open a human-reviewed feedback form and submit it to the Bucky product team. Call only when the user explicitly asks to send feedback, report a problem, suggest an improvement, or praise something. The server asks the MCP client to show the form; nothing is saved unless the human accepts it. Do not use for silent agent self-reporting.

输入参数context必填llm_model必填submissionIdaffectedToolName

previewSiteCoverage

Preview what Bucky has on file for an address

Free preview, no sign-in needed. For one street address in Canada or the US, it says whether Bucky covers the place and which zoning facts it holds for the lot (lot boundary, zone, height, density, setbacks, permitted uses, overlays, parking): found, partly on file, or not on file. It returns no values: no zone code, heights, setbacks or areas. The lot outline is a shape with no scale. Use it when the user is not signed in and asks what they can build at an address. For the numbers, call getFeasibilitySnapshot. That call asks the user to sign in.

输入参数address必填context必填llm_model必填

cityInventory

See what Bucky has mapped for a city

Public city catalogue inventory. Pass exactly one of: cityName, lat and lng together, or geoDivisionId. A city name with multiple matches returns choices; after the user chooses, call again with that candidate geoDivisionId. Never pass a slug. Shows datasets grouped by topic as on file, not loaded yet, unavailable, or not confirmed. This is city coverage, not lot feasibility or operator health. If Bucky has not mapped the place, the result points to recording demand. It does not record demand by itself.

输入参数latlngcontext必填cityNamellm_model必填geoDivisionId

uiGetAnalysisStatus

Get analysis status

Return only the analysis `agentStatus` for a project. Cheap enough to poll. Used by the Bucky app view; the model should call getProjectContext instead.

输入参数context必填llm_model必填projectId必填

版本历史

2
  1. v1.0.1最新Sep 22, 2026
  2. v1.0.0Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分