Koskamo

YesTechie MCP

An MCP server for YesTechie, a UniFi network and security integrator, allowing AI agents to access company information, services, projects, and generate UniFi network and security estimates via REST-like tools.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

YesTechie MCP logo, by YesTechieVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by YesTechie
MCP endpoint (Streamable HTTP)
https://yestechie.com/api/mcp
Vendor documentation

What you can do with it

  • Retrieve company and team information
  • Access published services and project case studies
  • Generate UniFi network and security job estimates
  • Get pricing for equipment and labor

Source and maintenance

Vendor evidenceRegistry 1.0.1

Protocol and capabilities

Server
yestechie 1.0.0
MCP protocol
2025-06-18
Tools
20 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

## Which way should I use? | If you... | Use | |---|---| | 1. Can make HTTP POST with JSON (coding agents, custom agents) | POST /api/agent/v0/* on https://yestechie.com (index: GET https://yestechie.com/api/agent/v0/site; spec: https://yestechie.com/openapi.yaml) | | 2. Are connected via MCP (Claude / ChatGPT connector) | The MCP tools at https://yestechie.com/api/mcp | | 3. Can only open URLs / GET (ChatGPT / Claude chat apps, browsing agents) | GET /api/agent/v0/quote, then /api/agent/v0/lead. Fill in: https://yestechie.com/api/agent/v0/quote?address={address}&aps={n}&cameras={n}&doors={n} then, only if the person asks to be contacted, https://yestechie.com/api/agent/v0/lead?quoteRef={quoteRef}&name={name}&email={email} (or &phone={phone}). Example: https://yestechie.com/api/agent/v0/quote?address=350+S+Grand+Ave,+Los+Angeles,+CA+90071&aps=4&cameras=8&doors=2 and then https://yestechie.com/api/agent/v0/lead?quoteRef=<quoteRef from that answer>&name=Jane+Doe&email=jane@example.com | | 4. Can do none of these | Send the person to https://yestechie.com/contact or 818-275-2707 | YesTechie is a UniFi network and security integrator headquartered in California, serving businesses nationwide. It designs, installs and operates enterprise networks and physical security: UniFi switching and Wi-Fi, cameras, door access control, structured cabling and fiber, point-to-point wireless, and managed operations. UniFi is the toolset; the deliverable is a working site. This MCP server opens what we've learned on real jobs. Agents can read project case studies from completed installs and practical configuration guides for UniFi networks, Wi-Fi, cameras and access control. They can also price a project with the same logic our estimators use: send counts of access points, cameras and doors with a site address and get an itemized estimate with equipment, labor and travel lines. Coverage lookup and list prices are included. When the person asks for a walkthrough, the agent sends the quote reference with their contact details to request a site survey. Read tools need no key; contact is sent only on explicit request. To price a job: get_unifi_questions (view smallest), fill the template, then unifi_estimate (2 calls). Start with get_site_info for everything else. submit_contact / submit_join_application send real email: only when the person asked.

Tools

20 advertised

get_site_info — Site index
Advertised by the server during the last successful anonymous check.

Every public YesTechie agent endpoint with URL, methods, auth and size. Use when you are unsure which tool fits; start here. (REST: GET /api/agent/v0/site)

get_site_info input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_about — About
Advertised by the server during the last successful anonymous check.

Company description, founders, office, contact and credentials. Use when the person asks who YesTechie is or whether it is licensed. (REST: GET /api/agent/v0/about)

get_about input schema
{
  "type": "object",
  "properties": {
    "detail": {
      "enum": [
        "full"
      ],
      "type": "string"
    },
    "fields": {
      "type": "string",
      "description": "Comma-separated field names"
    }
  },
  "additionalProperties": false
}
get_team — Team
Advertised by the server during the last successful anonymous check.

Published founders (list), or one founder in full with idOrSlug. Use when the person asks who runs YesTechie. (REST: GET /api/agent/v0/team[/{idOrSlug}])

get_team input schema
{
  "type": "object",
  "properties": {
    "detail": {
      "enum": [
        "full"
      ],
      "type": "string"
    },
    "fields": {
      "type": "string",
      "description": "Comma-separated field names"
    },
    "idOrSlug": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_contact_info — Contact info
Advertised by the server during the last successful anonymous check.

Office address, phone and email. Use when the person wants to reach YesTechie themselves. (REST: GET /api/agent/v0/contact-info)

get_contact_info input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_join_our_team — Join our team
Advertised by the server during the last successful anonymous check.

Hiring page text, office address, phone and email. Use when the person asks about jobs at YesTechie. (REST: GET /api/agent/v0/join-our-team)

get_join_our_team input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
list_pages — Pages
Advertised by the server during the last successful anonymous check.

Every published page with its canonical URL, or one page as plain text with slug. Use when you need to cite or link a yestechie.com page. (REST: GET /api/agent/v0/pages[/{slug}])

list_pages input schema
{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_clients — Clients
Advertised by the server during the last successful anonymous check.

Client logos, map count, deployments by state and city. Use when the person asks who YesTechie has worked for. (REST: GET /api/agent/v0/clients)

get_clients input schema
{
  "type": "object",
  "properties": {
    "detail": {
      "enum": [
        "full"
      ],
      "type": "string"
    },
    "fields": {
      "type": "string",
      "description": "Comma-separated field names"
    }
  },
  "additionalProperties": false
}
get_coverage — Coverage
Advertised by the server during the last successful anonymous check.

Check whether YesTechie serves a location: California HQ, deployments by state and city, travel policy. Use when the person asks if YesTechie works in their area, or before quoting a site outside California. (REST: GET /api/agent/v0/coverage)

get_coverage input schema
{
  "type": "object",
  "properties": {
    "detail": {
      "enum": [
        "full"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
list_services — Services
Advertised by the server during the last successful anonymous check.

Published YesTechie services (what we install and operate). Use when the person asks what YesTechie does or whether it offers a service. Lean list (id, slug, url, title, summary, date; page/limit/fields/detail), or one item in full with idOrSlug. (REST: GET /api/agent/v0/services[/{idOrSlug}])

list_services input schema
{
  "type": "object",
  "properties": {
    "page": {
      "type": "integer",
      "minimum": 1
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    },
    "detail": {
      "enum": [
        "full"
      ],
      "type": "string"
    },
    "fields": {
      "type": "string",
      "description": "Comma-separated field names"
    },
    "idOrSlug": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
list_projects — Projects
Advertised by the server during the last successful anonymous check.

Completed YesTechie projects: real case studies from installs (warehouses, plants, offices, schools, churches, gated sites). One item returns title, summary, tags, the full write-up (typically client background and challenge, solution and equipment, results), headings, photos and videos. Use when the person wants real deployment examples / case studies. Lean list (id, slug, url, title, summary, date; page/limit/fields/detail), or one item in full with idOrSlug. (REST: GET /api/agent/v0/projects[/{idOrSlug}])

list_projects input schema
{
  "type": "object",
  "properties": {
    "page": {
      "type": "integer",
      "minimum": 1
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    },
    "detail": {
      "enum": [
        "full"
      ],
      "type": "string"
    },
    "fields": {
      "type": "string",
      "description": "Comma-separated field names"
    },
    "idOrSlug": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
list_articles — Articles
Advertised by the server during the last successful anonymous check.

Practical configuration guides and technical articles: UniFi network, Wi-Fi, cameras (Protect) and access control (Access, Identity, intercom), plus cabling and home networking. One item returns title, summary, author, tags, the full step-by-step body, headings and source links. Use when the person asks how to set up, configure or choose UniFi network, Wi-Fi, camera or door-access gear. Lean list (id, slug, url, title, summary, date; page/limit/fields/detail), or one item in full with idOrSlug. (REST: GET /api/agent/v0/articles[/{idOrSlug}])

list_articles input schema
{
  "type": "object",
  "properties": {
    "page": {
      "type": "integer",
      "minimum": 1
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    },
    "detail": {
      "enum": [
        "full"
      ],
      "type": "string"
    },
    "fields": {
      "type": "string",
      "description": "Comma-separated field names"
    },
    "idOrSlug": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_article — Article
Advertised by the server during the last successful anonymous check.

One practical configuration guide or technical article in full (UniFi network, Wi-Fi, cameras, access control, cabling): title, summary, author, tags, step-by-step body, headings, images and source links. Use when you know which guide answers the person (from list_articles) and need its steps. (REST: GET /api/agent/v0/articles/{idOrSlug})

get_article input schema
{
  "type": "object",
  "required": [
    "idOrSlug"
  ],
  "properties": {
    "idOrSlug": {
      "type": "string",
      "maxLength": 200,
      "description": "Numeric id or slug from the list tool"
    }
  },
  "additionalProperties": false
}
get_project — Project
Advertised by the server during the last successful anonymous check.

One completed YesTechie project case study in full: title, summary, tags, the write-up (typically client background and challenge, solution and equipment, results), headings, photos and videos. Use when the person wants details of a real deployment like theirs (find it with list_projects). (REST: GET /api/agent/v0/projects/{idOrSlug})

get_project input schema
{
  "type": "object",
  "required": [
    "idOrSlug"
  ],
  "properties": {
    "idOrSlug": {
      "type": "string",
      "maxLength": 200,
      "description": "Numeric id or slug from the list tool"
    }
  },
  "additionalProperties": false
}
get_service — Service
Advertised by the server during the last successful anonymous check.

One YesTechie service in full: what is included and how it is delivered. Use when the person asks about a specific service (find it with list_services). (REST: GET /api/agent/v0/services/{idOrSlug})

get_service input schema
{
  "type": "object",
  "required": [
    "idOrSlug"
  ],
  "properties": {
    "idOrSlug": {
      "type": "string",
      "maxLength": 200,
      "description": "Numeric id or slug from the list tool"
    }
  },
  "additionalProperties": false
}
get_page — Page
Advertised by the server during the last successful anonymous check.

One published yestechie.com page as plain text with its canonical URL. Use when you need the full text of a page to cite (find the slug with list_pages). (REST: GET /api/agent/v0/pages/{slug})

get_page input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_pricing — List prices
Advertised by the server during the last successful anonymous check.

Catalog list prices (USD, pre-tax, before scope): equipment (MSRP) or labor (standard rates). Use when the person asks what one item or labor task costs; use unifi_estimate for a whole project. (REST: GET /api/agent/v0/pricing/{equipment|labor})

get_pricing input schema
{
  "type": "object",
  "required": [
    "kind"
  ],
  "properties": {
    "q": {
      "type": "string"
    },
    "kind": {
      "enum": [
        "equipment",
        "labor"
      ],
      "type": "string"
    },
    "page": {
      "type": "integer",
      "minimum": 1
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    },
    "detail": {
      "enum": [
        "full"
      ],
      "type": "string"
    },
    "fields": {
      "type": "string",
      "description": "Comma-separated field names"
    },
    "category": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_unifi_questions — Estimate questions
Advertised by the server during the last successful anonymous check.

Step 1: returns the questions and JSON template to fill for unifi_estimate. Use when the person wants a price for a project. (REST: GET /api/agent/v0/unifi_estimate/questions)

get_unifi_questions input schema
{
  "type": "object",
  "properties": {
    "view": {
      "enum": [
        "lean",
        "smallest",
        "requestSchema",
        "full"
      ],
      "type": "string",
      "default": "smallest"
    }
  },
  "additionalProperties": false
}
unifi_estimate — UniFi estimate
Advertised by the server during the last successful anonymous check.

Itemized price for a UniFi Wi-Fi, camera and door-access install at a given site address. Input the filled question set from get_unifi_questions. Returns equipment, labor, travel lines, totals and a quoteRef. Nothing is saved or sent. Use when the person wants a price for Wi-Fi, cameras or door access at a real address. (REST: POST /api/agent/v0/unifi_estimate)

unifi_estimate input schema
{
  "type": "object",
  "required": [
    "answers"
  ],
  "properties": {
    "detail": {
      "enum": [
        "full"
      ],
      "type": "string"
    },
    "answers": {
      "type": "object",
      "description": "The filled question set template (site, infra, wifi, cameras, access, doors[], doorDefaults, gates[], ...)"
    }
  },
  "additionalProperties": false
}
submit_contact — Contact YesTechie
Advertised by the server during the last successful anonymous check.

Request a site survey or callback. Attach quoteRef. Use when the person explicitly asks to be contacted and has supplied name and email or phone; it sends a real email. 3 per IP and 2 per email per day. (REST: POST /api/agent/v0/contact)

submit_contact input schema
{
  "type": "object",
  "required": [
    "fullName",
    "email",
    "message"
  ],
  "properties": {
    "email": {
      "type": "string",
      "maxLength": 254
    },
    "phone": {
      "type": "string",
      "maxLength": 40
    },
    "message": {
      "type": "string",
      "maxLength": 5000
    },
    "fullName": {
      "type": "string",
      "maxLength": 200
    },
    "quoteRef": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional: the quoteRef from get_quote / unifi_estimate (valid 24 h). Attaches that estimate to the request."
    },
    "organization": {
      "type": "string",
      "maxLength": 200
    },
    "idempotencyKey": {
      "type": "string",
      "maxLength": 255,
      "minLength": 8,
      "description": "Sent as the Idempotency-Key header (retry safely)"
    }
  },
  "additionalProperties": false
}
submit_join_application — Join our team
Advertised by the server during the last successful anonymous check.

Apply to join the team, exactly like the /join-our-team form. Use when the person asks to apply. Sends real email to YesTechie and a confirmation to the sender: call only when the person asked you to. 3 per IP and 2 per email per day. (REST: POST /api/agent/v0/join-our-team)

submit_join_application input schema
{
  "type": "object",
  "required": [
    "fullName",
    "email",
    "message"
  ],
  "properties": {
    "email": {
      "type": "string",
      "maxLength": 254
    },
    "phone": {
      "type": "string",
      "maxLength": 40
    },
    "message": {
      "type": "string",
      "maxLength": 5000
    },
    "fullName": {
      "type": "string",
      "maxLength": 200
    },
    "organization": {
      "type": "string",
      "maxLength": 200
    },
    "idempotencyKey": {
      "type": "string",
      "maxLength": 255,
      "minLength": 8,
      "description": "Sent as the Idempotency-Key header (retry safely)"
    }
  },
  "additionalProperties": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
388 ms
95th percentile latency
388 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 388 ms · metadata changed · 20 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http yestechie-mcp https://yestechie.com/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add yestechie-mcp --url https://yestechie.com/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable yestechie-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "yestechie-mcp": {
      "url": "https://yestechie.com/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "yestechie-mcp": {
      "type": "streamableHttp",
      "url": "https://yestechie.com/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start yestechie-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "yestechie-mcp": {
      "type": "http",
      "url": "https://yestechie.com/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http yestechie-mcp https://yestechie.com/api/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "yestechie-mcp": {
      "url": "https://yestechie.com/api/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "yestechie-mcp": {
      "serverUrl": "https://yestechie.com/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like YesTechie MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run YesTechie MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing