Geztio MCP Server (co.geztio/platform)
Official Model Context Protocol (MCP) server for Geztio — the modern construction project management and economic engineering platform.
Connect AI assistants (Claude Desktop, Cursor, Claude Code, Windsurf, Antigravity, custom agents) directly to Geztio's Unit Price Analysis (APU / Análisis de Precios Unitarios), CBS budget trees, dynamic price lists, resource catalogs, and project operations.
🏗️ Overview
Geztio provides construction companies, project managers, cost engineers, and field teams with a single source of truth for project economics. Through this MCP server, AI models can:
- Search & Analyze APUs (
UnitCost): Look up composition breakdown, yields, unit costs, and nested recipes across material, equipment, labor, and transport. - Query Resource Catalogs (
Resource): Search materials, equipment, labor, and transport insumos with their dynamically resolved unit prices. - Explore CBS & Budget Scenarios (
BudgetTree): Traverse project chapters and budget items, inspecting quantities, locations, and line-item totals. - Audit & Compare Price Lists (
PriceList): Detect pricing outliers, verify regional price lists, and simulate scenario variations. - Execute Asynchronous Operations: Bulk-import resources and track execution task status.
⚡ Quick Start & Configuration
1. Claude Desktop
Add Geztio as a remote MCP server in your claude_desktop_config.json:
{
"mcpServers": {
"geztio": {
"url": "https://mcp.geztio.co/mcp"
}
}
}
When connecting for the first time, Claude Desktop will automatically initiate the OAuth 2.0 handshake to authenticate your Geztio organization and member account.
2. Cursor IDE
In Cursor Settings → Features → MCP:
- Click + Add New MCP Server.
- Name:
geztio - Type:
Streamable HTTP - URL:
https://mcp.geztio.co/mcp
3. Antigravity & Agentic Frameworks
To connect from custom agents using the official @modelcontextprotocol/sdk or Python SDK:
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async with streamablehttp_client("https://mcp.geztio.co/mcp") as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
print([t.name for t in tools])
🛡️ Security & Multi-Tenancy
- Organizational Scoping: Every query is strictly isolated to the authenticated member's organization.
- Seat Tier Cost Masking:
SeatTier.FULL: Office users and project managers see all direct costs, currencies, and line totals.SeatTier.FIELD: Site supervisors and field execution members see project quantities, recipes, and scopes with cost fields safely masked asnull.
- Granular Scopes:
geztio:read: Read-only access to catalogs, budgets, projects, and price lists.unit_costs:write: Create or update APU unit costs and item recipes.resources:write: Create or update catalog resources.budgets:write: Create budget chapters and update budget item quantities.projects:write: Create new projects.operations:write: Enqueue bulk imports and batch jobs.
🛠️ Tool Catalog
Identity & Context
| Tool | Scope | Description |
|---|---|---|
geztio_whoami | geztio:read | Identifies the authenticated member, organization, seat tier (sees_money), and active subscription plan. |
Unit Cost Analysis (APU / UPA)
| Tool | Scope | Description |
|---|---|---|
geztio_search_unit_costs | geztio:read | Search APUs by name or code with optional filtering by nested type and project. |
geztio_get_unit_cost_detail | geztio:read | Detailed APU breakdown with itemized resources, yields, waste factors, and resolved costs against a specified PriceList. |
geztio_create_unit_cost | unit_costs:write | Create a new unit cost recipe in the organization or project catalog. |
geztio_add_unit_cost_item | unit_costs:write | Add a resource item (material, labor, equipment, transport) to an APU recipe. |
geztio_remove_unit_cost_item | unit_costs:write | Remove an item from an APU recipe. |
Resources (Insumos) & Price Lists
| Tool | Scope | Description |
|---|---|---|
geztio_search_resources | geztio:read | Search resources (materials, labor, equipment, transport) with resolved unit prices. |
geztio_create_resource | resources:write | Register a new resource with unit and pricing mode. |
geztio_list_price_lists | geztio:read | List active price lists (regional, standard, project-specific). |
Projects, Budgets & CBS Chapters
| Tool | Scope | Description |
|---|---|---|
geztio_search_projects | geztio:read | Search projects by name, code, and execution status. |
geztio_get_project_overview | geztio:read | Complete overview of a project including its active contract budget and scenario version. |
geztio_create_project | projects:write | Create a new project in the organization. |
geztio_get_budget_tree | geztio:read | Full Work Breakdown Structure (WBS/CBS) chapter tree with quantities and line totals. |
geztio_create_chapter | budgets:write | Create a new chapter node in a budget version's CBS hierarchy. |
geztio_update_budget_item_quantity | budgets:write | Update line item quantity in a budget version. |
Operations & Batch Processing
| Tool | Scope | Description |
|---|---|---|
geztio_import_resources | operations:write | Asynchronously bulk-import or update resource catalogs. Returns an execution_id. |
geztio_get_execution_status | geztio:read | Poll progress, errors, and token/quota usage for asynchronous executions. |
💬 Prompts
The server includes pre-built MCP Prompt templates:
analizar_unit_cost: Technical analysis of an APU (composition, yields, price coherence, and optimization recommendations).comparar_unit_costs: Comparative analysis between two similar APUs (differential items, cost variance, and recommended usage).auditar_lista_de_precios: Automated audit of a price list to flag statistical outliers, missing prices, or suspicious variances.
📦 Resources
Provides stable, URI-addressable references:
geztio://project/{ref}: Direct JSON representation of a project.geztio://unit-cost/{ref}: Direct JSON representation of an APU recipe.
🚀 Publishing & Registry Maintenance
This repository publishes metadata to the Official MCP Registry using mcp-publisher.
Domain Authentication (geztio.co)
Domain ownership for the namespace co.geztio/* is verified via DNS TXT record:
geztio.co. IN TXT "v=MCPv1; k=ed25519; p=<PUBLIC_KEY_BASE64>"
Manual Publish
# 1. Login with domain private key
mcp-publisher login dns --domain "geztio.co" --private-key "$MCP_REGISTRY_PRIVATE_KEY"
# 2. Publish server.json
mcp-publisher publish
📄 License
This repository is licensed under the MIT License.