Enpitech

AgentReady website scans for AI agents, AI Hub search, newsletter and contact, from Enpitech.

使うべきか

品質と安全性

A
説明の品質
100%
スキーマの完全性
82%
命名の品質
85%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~3,904トークン数(ツール定義)
~4.0 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 3.05%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "enpitech": {
      "url": "https://mcp.enpitech.dev/mcp-app"
    }
  }
}

リモートエンドポイント

https://mcp.enpitech.dev/mcp-appstreamable-http

できること

ツール一覧

ツール(8)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢contact_form(origin)

Opens Enpitech's contact form as a view in the conversation, where the user types their own name, email and message, plus an optional phone number and company, and submits it. Use it when the user wants to get in touch with Enpitech about frontend engineering work: frontend is the bottleneck their releases wait on; AI-generated frontend code their team cannot safely merge; senior React engineers embedded in a product team; AI features, an MCP app, or an agent-ready interface built into their product; private training for their team on AI-assisted frontend delivery or Claude Code; hosting, sponsoring or speaking at a frontend meetup. It opens a form and answers no questions. The tool itself sends nothing: it returns the contact surface the form opened on, and the enquiry is sent by submit_contact when the user submits.

入力スキーマ

{
  "type": "object",
  "properties": {
    "origin": {
      "type": "string",
      "enum": [
        "general",
        "factory",
        "community",
        "workshops",
        "ai-hub",
        "agent-ready"
      ],
      "default": "general",
      "description": "Which contact surface to open the form in, inferred from the conversation. Omit when unsure; it defaults to general. general = the user wants senior React engineers embedded in their team, a web product shipped faster, or delivery infrastructure installed so the whole org can ship frontend. factory = the conversation is specifically about the Frontend Delivery Factory as a named service: the delivery pipeline, the review load, or AI-generated frontend code the team cannot safely merge. community = the user wants to host a frontend meetup, offer a venue, sponsor, or speak. workshops = the user wants private hands-on training for their team on AI-assisted frontend delivery or Claude Code. ai-hub = the user wants AI built into their product, MCP apps, or agent-ready interfaces. agent-ready = the enquiry follows an AgentReady scan of the user's own site; the scanner view sets this itself, so pick it only when the conversation came from a scan."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "origin": {
      "type": "string",
      "enum": [
        "general",
        "factory",
        "community",
        "workshops",
        "ai-hub",
        "agent-ready"
      ],
      "description": "The contact surface the form opened on."
    }
  },
  "required": [
    "origin"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡submit_contact(name, email, phone, companyName, message, ...)

Sends a contact enquiry to Enpitech, storing the submitted name, email, message and optional phone and company as a sales lead in Enpitech's CRM, tagged with the origin surface. The contact form view calls this tool when the user submits the form; it can also be called directly once the user has given those details in the conversation. Every field carries a value the user actually supplied; contact_form opens the same form as a view for the user to fill in when a detail is missing.

入力スキーマ

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 2
    },
    "email": {
      "type": "string",
      "minLength": 1,
      "format": "email"
    },
    "phone": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^(0[23489]|05\\d)-?\\d{3}-?\\d{4}$"
        },
        {
          "type": "string",
          "const": ""
        }
      ]
    },
    "companyName": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 250
        },
        {
          "type": "string",
          "const": ""
        }
      ]
    },
    "message": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000
    },
    "origin": {
      "type": "string",
      "enum": [
        "general",
        "factory",
        "community",
        "workshops",
        "ai-hub",
        "agent-ready"
      ],
      "default": "general",
      "description": "Which contact surface to open the form in, inferred from the conversation. Omit when unsure; it defaults to general. general = the user wants senior React engineers embedded in their team, a web product shipped faster, or delivery infrastructure installed so the whole org can ship frontend. factory = the conversation is specifically about the Frontend Delivery Factory as a named service: the delivery pipeline, the review load, or AI-generated frontend code the team cannot safely merge. community = the user wants to host a frontend meetup, offer a venue, sponsor, or speak. workshops = the user wants private hands-on training for their team on AI-assisted frontend delivery or Claude Code. ai-hub = the user wants AI built into their product, MCP apps, or agent-ready interfaces. agent-ready = the enquiry follows an AgentReady scan of the user's own site; the scanner view sets this itself, so pick it only when the conversation came from a scan."
    }
  },
  "required": [
    "name",
    "email",
    "message"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "description": "True when the enquiry was sent."
    }
  },
  "required": [
    "success"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢agent_ready(url)

Opens Enpitech's AgentReady scanner as a view in the conversation. Inside the view the scanner fetches the site's public pages and runs 21 checks across five weighted categories (Discovery & Access, Readable for Agents, Structured Data, Actions & MCP, Trust & Safety), then shows a 0-100 agent-readiness score, the per-category breakdown, and the fixes ranked by the points each would recover. Use it when the user asks how ready a website is for AI agents, their own or any site they name: how readable, accessible or usable it is to AI, to agents or to AI crawlers; whether ChatGPT or Claude can read or use it; how to show up in AI answers; or for an audit of llms.txt, robots.txt, schema.org markup or MCP support. url is optional: with no URL the scanner opens with an empty input for the user to fill in. This tool returns only the URL it was opened with; the scan runs inside the view, via agentready_scan.

入力スキーマ

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 2048,
      "description": "The site to scan, as the user gave it. A bare hostname like stripe.com is fine; the scanner normalizes it. Omit when the user has not named a site, and they will be asked for one."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The site the scanner opened with, or an empty string when the user will type one in the view."
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴email_agentready_report(name, email, phone, companyName, url, ...)

Emails the full 21-point AgentReady report for a site that has already been scanned, and stores the submitted name, email, phone and company as a sales lead in Enpitech's CRM under the agent-ready origin. The AgentReady view calls this tool when the user fills in the report form on the results page; it is not offered to the model. The scan is re-run server-side before the report is rendered, so the emailed report reflects the site at send time. Returns success with an emailed flag, which is false when the lead was stored but the email did not go out.

入力スキーマ

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200
    },
    "email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 320,
      "format": "email"
    },
    "phone": {
      "type": "string",
      "maxLength": 40
    },
    "companyName": {
      "type": "string",
      "maxLength": 250
    },
    "url": {
      "type": "string",
      "maxLength": 2048
    },
    "score": {
      "type": "string",
      "maxLength": 8
    }
  },
  "required": [
    "name",
    "email"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "description": "True when the request was stored."
    },
    "emailed": {
      "type": "boolean",
      "description": "False when the request was stored but the email did not go out; the view then offers a PDF instead."
    }
  },
  "required": [
    "success"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢agentready_scan(url)

Runs the AgentReady scan on one site and returns the raw result, with no view. It fetches the site's public pages and runs 21 checks across five weighted categories (Discovery & Access, Readable for Agents, Structured Data, Actions & MCP, Trust & Safety), returning a 0-100 agent-readiness score, the per-category breakdown of every check, and the top fixes ranked by the points each would recover. When bot protection blocks too many checks the result carries limited: true and the headline score is not meaningful, though the per-check breakdown still is. When the scan does not run it returns ok: false with an errorType of invalid, unreachable, timeout or ratelimited. agent_ready runs this same scan and presents it as a visual report, so this tool fits the cases a view does not: the result is wanted as data, or several sites are being compared at once. The AgentReady view also calls this tool to run its own scan. Read-only: it fetches only public pages of the site named in the call and changes nothing on it.

入力スキーマ

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 2048,
      "description": "The site to scan. A bare hostname like stripe.com works."
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "const": true
    },
    "cleanUrl": {
      "type": "string",
      "description": "Hostname and path scanned, e.g. stripe.com."
    },
    "scannedUrl": {
      "type": "string",
      "description": "The absolute URL that was fetched."
    },
    "score": {
      "type": "number",
      "description": "Agent-readiness score, 0-100."
    },
    "projectedScore": {
      "type": "number",
      "description": "The score the site would reach with the top fixes applied."
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "enum": [
              "discovery",
              "readable",
              "structured",
              "actions",
              "trust"
            ]
          },
          "num": {
            "type": "string",
            "description": "Display number, e.g. \"01\"."
          },
          "name": {
            "type": "string"
          },
          "weight": {
            "type": "number",
            "description": "Percent of the overall score; the five sum to 100."
          },
          "why": {
            "type": "string",
            "description": "Why the category matters to AI agents."
          },
          "score": {
            "type": "number",
            "description": "Category score, 0-100."
          },
          "passCount": {
            "type": "number"
          },
          "total": {
            "type": "number"
          },
          "unknownCount": {
            "type": "number",
            "description": "Checks that could not be verified, excluded from score."
          },
          "checks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "categoryId": {
                  "$ref": "#/properties/categories/items/properties/id"
                },
                "state": {
                  "type": "string",
                  "enum": [
                    "pass",
                    "partial",
                    "fail",
                    "unknown"
                  ],
                  "description": "pass, partial (counts as half) or fail; unknown means it could not be verified and is left out of the score."
                },
                "note": {
                  "type": "string",
                  "description": "Short evidence, e.g. \"1,204 URLs\" or \"404 · missing\"."
                }
              },
              "required": [
                "id",
                "categoryId",
                "state",
                "note"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "num",
          "name",
          "weight",
          "why",
          "score",
          "passCount",
          "total",
          "unknownCount",
          "checks"
        ],
        "additionalProperties": false
      },
      "description": "The five weighted categories and their 21 checks."
    },
    "topFixes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "checkId": {
            "type": "string"
          },
          "rank": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "tag": {
            "type": "string",
            "description": "Category and weight, e.g. \"ACTIONS & MCP · 30%\"."
          },
          "impact": {
            "type": "number",
            "description": "Points the overall score would gain if this check passed."
          }
        },
        "required": [
          "checkId",
          "rank",
          "title",
          "body",
          "tag",
          "impact"
        ],
        "additionalProperties": false
      },
      "description": "Fixes ranked by the points each would recover."
    },
    "unverifiedCount": {
      "type": "number",
      "description": "Checks that could not be verified, e.g. behind bot protection."
    },
    "limited": {
      "type": "boolean",
      "description": "True when bot protection blocked so much that the headline score is not meaningful; the per-check breakdown still is."
    },
    "protection": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "vendor": {
              "type": "string",
              "description": "Bot protection detected, e.g. \"Cloudflare\"."
            },
            "via": {
              "type": "string",
              "description": "The signal it was detected by."
            }
          },
          "required": [
            "vendor",
            "via"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "Bot protection on the homepage, or null when there is none."
    },
    "scannedAt": {
      "type": "number",
      "description": "When the scan finished, Unix milliseconds."
    }
  },
  "required": [
    "ok",
    "cleanUrl",
    "scannedUrl",
    "score",
    "projectedScore",
    "categories",
    "topFixes",
    "unverifiedCount",
    "limited",
    "protection",
    "scannedAt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ai_hub_search(query, category, limit)

Searches the Enpitech AI Hub, Enpitech's curated catalog of Claude Code skills, MCP servers and AI tools, and agentic workflows for frontend teams, each one used by Enpitech engineers in production. Use it when the user wants a skill, MCP server, AI tool or workflow for a frontend task (code review, Figma to code, testing, context files, generative UI and so on), or asks what the AI Hub has. Returns matching items with a one-line take, an overview, the install command when there is one, and a link to the item's page on enpitech.dev. Read-only: it searches a published catalog and sends nothing anywhere.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "What to look for, in plain words: a task, a technology or a name, e.g. \"code review\", \"Figma to React\", \"MCP servers for React\". Omit to list the catalog in order."
    },
    "category": {
      "type": "string",
      "enum": [
        "skills",
        "tools",
        "workflows"
      ],
      "description": "Limit results to one part of the catalog: skills (Claude Code and Agent Skills), tools (MCP servers and AI tooling) or workflows (agentic workflows and prompts). Omit to search all three."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "How many results to return, 1-20 (default 8)."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The search terms, or empty when listing."
    },
    "category": {
      "type": "string",
      "enum": [
        "skills",
        "tools",
        "workflows"
      ]
    },
    "total": {
      "type": "number",
      "description": "How many catalog items matched in all."
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "category": {
            "type": "string",
            "enum": [
              "skills",
              "tools",
              "workflows"
            ]
          },
          "section": {
            "type": "string",
            "description": "The catalog section it sits in."
          },
          "summary": {
            "type": "string",
            "description": "One-line take from Enpitech."
          },
          "overview": {
            "type": "string"
          },
          "install": {
            "type": "string",
            "description": "Install command, when the item has one."
          },
          "url": {
            "type": "string",
            "description": "The item page on enpitech.dev."
          }
        },
        "required": [
          "name",
          "category",
          "section",
          "summary",
          "overview",
          "url"
        ],
        "additionalProperties": false
      },
      "description": "Best matches first."
    }
  },
  "required": [
    "query",
    "total",
    "results"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢newsletter

Opens a signup form for the Enpitech newsletter, about frontend, AI and how teams ship, as a view in the conversation. The user types their own email and subscribes there. Use it when the user asks to subscribe to, join or get the Enpitech newsletter. It opens a form and subscribes no one: the subscription happens only when the user submits the form.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢subscribe_newsletter(email)

Subscribes the email address the user typed into the newsletter signup view to the Enpitech newsletter, managed in Mailchimp. The newsletter view calls this tool when the user submits the form; it is not offered to the model. Returns success with a status of subscribed, or pending when a confirmation email was sent first. Every newsletter email carries an unsubscribe link.

入力スキーマ

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 320,
      "format": "email",
      "description": "The email address the user typed into the signup form."
    }
  },
  "required": [
    "email"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "description": "True when the signup went through."
    },
    "status": {
      "type": "string",
      "enum": [
        "subscribed",
        "pending"
      ],
      "description": "subscribed, or pending when a confirmation email was sent first."
    }
  },
  "required": [
    "success"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 8 件