MCP 서버

AI 어시스턴트가 호스팅을 관리하도록 하세요

계정 전체를 위한 하나의 MCP 서버입니다. Claude Code, Claude Desktop 또는 Cursor를 한 번 연결하면, 어시스턴트가 사이트 목록을 조회하고, 로그를 읽고, 파일과 저장소를 동기화하며, 배포를 수행할 수 있습니다. 단, 부여된 권한 범위 내에서만 작동합니다.

오늘 기준 65개의 도구이며, 서버에서 제공하는 그대로 아래에 나열되어 있습니다.

연결하기

두 단계입니다. 토큰은 전체 자격 증명이므로 비밀번호처럼 다루어야 합니다. 한 번만 표시되며, 다른 연결에는 영향을 주지 않고 하나의 연결만 취소할 수 있습니다.

  1. 연결 생성

    대시보드에서 AI 도구를 열고, 연결 이름을 지정하고, 클라이언트를 선택한 후 허용할 작업을 체크하세요. 본인이 직접 수행할 수 있는 권한만 부여할 수 있습니다.

  2. 클라이언트가 읽는 설정을 붙여넣으세요

    대시보드에는 선택한 클라이언트의 설정이 토큰이 이미 포함된 상태로 표시됩니다. 모든 클라이언트는 동일한 서버 주소로 통신합니다.

    https://api.zinndigital.com/v1/mcp

Claude Code

단일 명령을 실행하거나 프로젝트 루트에 있는 .mcp.json에 해당 블록을 넣으세요. "type": "http" 줄은 필수이며, 이 줄이 없으면 Claude Code는 서버를 건너뜁니다.

claude mcp add --transport http zinn https://api.zinndigital.com/v1/mcp \
  --header "Authorization: Bearer zmcp_live_…"
// .mcp.json
{
  "mcpServers": {
    "zinn": {
      "type": "http",
      "url": "https://api.zinndigital.com/v1/mcp",
      "headers": {
        "Authorization": "Bearer zmcp_live_…"
      }
    }
  }
}

Claude Desktop

Claude Desktop은 로컬 서버를 시작하므로 호스팅된 서버로의 브리지 역할을 하는 무료 Zinnector® CLI를 실행합니다. Node 24 이상이 필요합니다. 토큰은 인수가 아닌 env에 입력해야 합니다.

// claude_desktop_config.json
{
  "mcpServers": {
    "zinn": {
      "command": "npx",
      "args": [
        "-y",
        "zinnector@0.1.4",
        "mcp"
      ],
      "env": {
        "ZINN_MCP_TOKEN": "zmcp_live_…"
      }
    }
  }
}

커서

서버 주소와 Authorization 헤더를 사용하여 ~/.cursor/mcp.json(또는 프로젝트 내 .cursor/mcp.json)에 서버를 추가하세요.

// ~/.cursor/mcp.json
{
  "mcpServers": {
    "zinn": {
      "url": "https://api.zinndigital.com/v1/mcp",
      "headers": {
        "Authorization": "Bearer zmcp_live_…"
      }
    }
  }
}

기존의 다른 MCP 클라이언트

사용자 지정 헤더를 사용하는 원격 Streamable HTTP 서버를 지원하는 모든 클라이언트가 작동합니다. 위의 주소를 지정하고 토큰과 함께 Authorization: Bearer를 전송하세요. 로컬 서버만 시작하는 클라이언트는 Claude Desktop 브리지를 사용할 수 있습니다.

ChatGPT은 OAuth로 로그인하는 방식으로만 MCP 서버에 연결하므로 아직 토큰을 사용할 수 없습니다. Claude Code, Claude Desktop 또는 Cursor에서도 동일한 연결을 사용하세요.

작동 확인 — 네 가지 질문

알기 쉬운 평서문으로 질문하세요. 각 질문 아래에는 어시스턴트가 호출해야 하는 도구와 모범적인 답변 예시가 나와 있습니다.

  1. > List my sites.
      ↳ sites_list

    상태 및 플랜이 포함된 귀하의 사이트입니다. 사이트가 있는 계정의 목록이 비어 있는 경우, 연결에 사이트 보기 권한이 누락되었음을 의미합니다.

  2. > Show me the error log for example.com.
      ↳ site_logs

    최근 오류 로그와 접근 로그입니다. 어느 한쪽을 읽을 수 없는 경우, 답변에 그 사실이 표시됩니다(비어 있는 로그와는 다릅니다).

  3. > Sync example.com to its repository.
      ↳ site_repo_sync_run

    라이브 사이트의 변경 사항이 포함된 저장소의 커밋이거나, 저장소가 이미 일치한다는 알림입니다. 저장소가 이동한 경우 동기화가 보류되고 아무것도 덮어쓰여지지 않습니다.

  4. > I pushed a commit — deploy example.com and tell me when it is live.
      ↳ site_deploy → site_deploy_status

    배포가 대기열에 등록된 후 적용된 커밋과 함께 라이브 상태가 됩니다. 쓰기 도구는 실행되기 전에 클라이언트에서 사용자에게 승인을 요청합니다.

양방향으로 이루어지는 양방향 동기화

연결된 저장소가 있는 사이트는 양방향으로 동기화 상태가 유지되며, 어시스턴트는 양방향 모두 제어할 수 있습니다.

사이트 → 저장소

라이브 파일의 변경 사항(파일 관리자에서의 수정, 플러그인 업데이트, 업로드)을 커밋하여 브랜치에 푸시하므로, 다음 git pull에서 이를 반영할 수 있습니다.

site_repo_sync_run   ·   zinnector sync run

저장소 → 사이트

배포를 통해 브랜치를 사이트에 반영합니다. 커밋을 푸시한 후 배포하세요. 당사 서버에서는 이를 위해 무료인 양방향 동기화를 켜야 합니다.

site_deploy   ·   zinnector push

양측 모두 변경되었을 때

어떤 것도 자동으로 병합되거나 덮어쓰이지 않습니다. 동기화가 중단되고 커밋 이름을 표시한 뒤, 사이트를 유지할지 아니면 저장소를 유지할지 사용자의 결정을 기다립니다. 저장소를 유지하면 사이트의 동기화되지 않은 변경 사항이 폐기되므로 확인이 필요합니다.

site_repo_sync_resolve keep=site|repository confirm=true

안전하게 보호하는 요소

귀하가 허용한 항목만

모든 도구에는 권한이 필요하며, 연결에는 사용자가 체크한 권한만 유지됩니다. 연결이 인식할 수 있는 한 다른 고객의 사이트는 존재하지 않습니다.

파괴적인 작업에 대한 확인

이전 버전으로 되돌리기, 복원, 보류 중인 동기화 해결, 그리고 모든 구매 과정에는 명확한 확인 절차가 필요하며, 비용이 발생하는 모든 항목은 먼저 정확한 총액을 보여줍니다.

감사 로그의 모든 작업

모든 호출은 이를 수행한 연결에 기록됩니다. AI 도구 페이지에서 연결을 취소하면 즉시 작동이 중지됩니다.

모든 도구

서버의 자체 레지스트리에서 생성된 모든 65개의 도구입니다. 여기에 나열되어 있다면 어시스턴트가 호출할 수 있습니다.

사이트 및 배포

도구작동 방식권한메모
sites_listList the organization's sites, with each site's primary domain, status, product line, stack and the plan it is on. Optionally filter by status, product line or a search over domain and name.sites.view읽기 전용
site_getGet one site's full record — domain, status, product line, stack, runtime, PHP version, region, plan and whether it is scheduled for deletion.sites.view읽기 전용
site_createCreate a site and start provisioning it. Give a primary domain and a product line; optionally a blueprint to build it from, a stack type, a PHP version or a region. Returns the new site, which begins in 'provisioning' — poll site_get for status.sites.create변경 사항 반영 중
site_deployDeploy a site — build and publish its current source to our servers. Returns the deploy state immediately; the build runs as a durable workflow. Poll site_deploy_status to follow it.hosting.deploy.manage변경 사항 반영 중
site_deploy_statusThe site's current deploy state — status, target, the live URL, the deployed commit and when it last went live.sites.view읽기 전용
site_deployments_listList a site's recent deployments — id, status, commit, branch and timings. Use this to choose the deployment_id to roll back to.sites.view읽기 전용
site_rollbackRoll a site back to an earlier deployment by re-deploying its commit. Destructive: pass confirm=true. Use site_deployments_list to choose which one.hosting.deploy.manage변경 사항 반영 중 · 확인 요청

양방향 동기화

도구작동 방식권한메모
site_repo_sync_getShow a site's two-way sync with its repository: whether it is available and on, the repository and branch, the current state (idle, synced, conflict, adopt, error) and the last runs with the commits they made.sites.view읽기 전용
site_repo_sync_setTurn two-way sync on or off for a site, optionally limited to a subdirectory of the site. Needs the customer's own GitHub account connected. Turning it on pushes nothing by itself — call site_repo_sync_run for that.hosting.deploy.manage변경 사항 반영 중
site_repo_sync_runSync a site to its repository now: commit whatever changed in the site's live files and push it to the connected branch, so a local git pull receives it. If the repository moved since the last sync the run is HELD and nothing is overwritten — the result says so. The other direction (repository to site) is site_deploy.hosting.deploy.manage변경 사항 반영 중
site_repo_sync_resolveResolve a HELD two-way sync. keep=site commits the site's files on top of the repository (their commits stay in history); keep=repository applies the repository to the site and DISCARDS the site's unsynced changes. Destructive: pass confirm=true.hosting.deploy.manage변경 사항 반영 중 · 확인 요청

로그 및 메트릭

도구작동 방식권한메모
site_metricsCurrent metrics for one site — visits, bandwidth, error rate, disk and resource use. Each section reports whether it is available, so 'no data' is distinguishable from 'zero'.sites.view읽기 전용
site_usageOne site's metered visit usage for the current billing period, with the plan's allowance and what any overage costs.sites.view읽기 전용
site_logsRead the recent tail of one site's web-server access log and error log. Each log reports whether it could be read, so an unreadable log is never mistaken for an empty one. Use this before proposing a fix for errors or slowness.sites.panel_access읽기 전용
site_build_logRead the build log of one deployment — the latest when deployment_id is omitted. Pass after=<total from the previous call> to fetch only new lines while complete is false.sites.view읽기 전용

설정 및 WordPress

도구작동 방식권한메모
site_php_version_getThe site's current PHP version and every version it is allowed to switch to on its product line.sites.view읽기 전용
site_php_version_setSwitch a site to a different PHP version. The version must be one that site_php_version_get lists as available. Reports whether the change reached the machine or was only recorded for provisioning to apply.hosting.php.manage변경 사항 반영 중
wordpress_stateA WordPress site's core version, whether an update is available, and which management operations its hosting permits.sites.view읽기 전용
wordpress_plugins_listList a WordPress site's plugins — name, version, whether active and whether an update is available.sites.view읽기 전용
wp_plugin_updateUpdate one WordPress plugin to its latest version. Returns the plugin list as it reads after the update.sites.panel_access변경 사항 반영 중
wordpress_update_coreUpdate WordPress core to the latest version on a site. This cannot be undone by another call — take a backup first with backup_create if you may need to go back. Requires confirmation.sites.panel_access변경 사항 반영 중 · 확인 요청
wordpress_set_pluginActivate or deactivate one plugin on a WordPress site. Takes effect on the live site immediately. Requires confirmation.sites.panel_access변경 사항 반영 중 · 확인 요청

백업

도구작동 방식권한메모
backups_listA site's backups — each one's id, when it was taken, its size and status — plus whether a backup is currently running and how many on-demand backups remain in the rolling 24-hour allowance.sites.view읽기 전용
backup_createTake an on-demand backup of a site and return the updated backup state. Bounded to 3 per rolling 24 hours per site; the backup runs in the background.hosting.backup.manage변경 사항 반영 중
backup_restoreRestore a site from one of its backups. This OVERWRITES the site's live database and files, and everything changed since that backup was taken is lost. Requires confirmation, and the confirmation names how old the backup is.hosting.backup.manage변경 사항 반영 중 · 확인 요청

도메인 및 DNS

도구작동 방식권한메모
dns_records_listList a page of DNS records for a domain whose DNS we host, in name/type/value order. Returns a next_cursor for the following page.sites.view읽기 전용
dns_record_createCreate a DNS record for a domain whose DNS we host.domains.dns.manage변경 사항 반영 중
dns_record_updateUpdate an existing DNS record for a domain whose DNS we host.domains.dns.manage변경 사항 반영 중
dns_record_deleteDelete a DNS record for a domain whose DNS we host.domains.dns.manage변경 사항 반영 중 · 확인 요청
domains_listList the organization's domains — id, hostname, status, product line and whether we registered it or the customer pointed it at us. The ids returned here are what the DNS, cache-purge and index-check tools take.sites.view읽기 전용

캐시 및 크롤러

도구작동 방식권한메모
cache_purgePurge the CDN cache for a domain. Omit 'urls' to purge everything, or pass a bounded list of absolute URLs to purge only those.sites.cache.purge읽기 전용
crawler_policy_getGet a site's SEO-crawler-blocking (PBN footprint) policy: which crawlers are blocked, the available crawlers, and the rendered robots.txt/server rules.sites.view읽기 전용
crawler_policy_setSet a site's SEO-crawler-blocking policy. 'blocked' is a list of crawler keys (from crawler_policy_get's available_crawlers). Search engines can never be blocked. Publishes the change so the server rules are re-written.sites.crawler.manage변경 사항 반영 중

이메일

도구작동 방식권한메모
mail_services_listList the organization's email services — every domain it has mailboxes on, with the plan's mailbox allowance, how many are used, and whether the mail DNS is published.mail.view읽기 전용
mailboxes_listList the mailboxes on one email service, with each mailbox's size, how full it is, and whether it can send and receive.mail.view읽기 전용
mailbox_createCreate a mailbox on an email service. Returns the new mailbox's password, which is shown once and cannot be retrieved later.mail.manage변경 사항 반영 중
mail_forwarders_listList the mail forwarders on one email service — which address goes where.mail.view읽기 전용
mail_forwarder_createCreate a mail forwarder on an email service, sending everything for one address on to one or more destinations.mail.manage변경 사항 반영 중

검색엔진 최적화 (SEO)

도구작동 방식권한메모
site_seo_metricsThe cached SEO authority metrics for a hosted site — domain rank, backlinks, referring domains and organic keywords. Read-only and free; the figures are refreshed by the platform's own sweep, so they may be up to a month old.sites.view읽기 전용
domain_index_checkThe cached search-index status for a domain — whether it is indexed, how many pages, and when the reading was taken. Read-only and free.sites.view읽기 전용

AI 이미지

도구작동 방식권한메모
image_models_listThe image models this account can generate with — provider, model, and the price per image in USD. Read-only and free. A model that is not listed cannot be used, either because it is retired or because nobody has priced it.sites.view읽기 전용
image_generateGenerate an image from a prompt and put it in this account's image library. Costs money — the price per image is what image_models_list reports for the model used. Returns the image ids; the customer sees them in their library immediately.links.edit변경 사항 반영 중 · 지출 가능 금액

게시판

도구작동 방식권한메모
board_listList this organisation's project boards, newest first.agency.board.view읽기 전용
board_getRead one board in full: its columns and every card on them.agency.board.view읽기 전용
board_createCreate a project board, optionally for one of your client organisations.agency.board.manage변경 사항 반영 중
board_card_createAdd a card to a column. Cards are agency-only unless you pass visibility 'client'.agency.board.manage변경 사항 반영 중
board_card_moveMove a card to another column, or to another position in its column.agency.board.manage변경 사항 반영 중
board_card_commentComment on a card. Agency-only unless you pass visibility 'client', in which case the client sees it attributed to your agency.agency.board.comment변경 사항 반영 중

청구 및 업그레이드

도구작동 방식권한메모
subscriptions_listList the organization's subscriptions — the plan each one is on, its status, renewal date and whether it auto-renews.billing.view읽기 전용
invoices_listList the organization's invoices and credit notes — number, status, total, currency and issue date. Optionally filter by status.billing.view읽기 전용
upgrade_optionsWhat can be bought to lift a limit you have hit — bigger plans, priced with tax, in your own currency. Pass the entitlement from a refusal (e.g. 'max_sites'), or a site_id to see what that site's own plan could move to. Read-only: nothing is bought, and calling this costs nothing.billing.view읽기 전용
purchase_quotePrice a plan exactly, with tax, in the customer's own currency — and nothing is bought or charged. Returns a quote_id to pass to purchase_authorize together with the total, which is what stops an agent committing someone to a figure they never saw. Quotes expire: re-quote rather than reusing an old id.billing.payment.manage변경 사항 반영 중
purchase_authorizeComplete a purchase from a quote: places the order and charges the payment method on file. You must pass the exact total and currency purchase_quote returned — if the price has moved since, this refuses rather than charging a different amount. Retrying with the same quote_id returns the same order and never charges twice.billing.payment.manage변경 사항 반영 중 · 확인 요청 · 지출 가능 금액

지원

도구작동 방식권한메모
tickets_listList the organization's support tickets — subject, status, priority and when they were last updated. Optionally filter by status or site.tickets.view읽기 전용
ticket_createOpen a support ticket. Include what you already checked — an agent that has read the KB and run diagnostics should say so in the body, so a human does not repeat it.tickets.reply변경 사항 반영 중

리셀러

도구작동 방식권한메모
reseller_overviewThe reseller programme in one read: status, whether you can sell, billing day, default markup, your panel hostname and nameservers, mail sending domain, support routing, commerce readiness and the languages your clients' panel offers.reseller.view읽기 전용 · 리셀러 전용
reseller_services_listList the sites you have provisioned for your clients — one row per service, with the client organisation, status, any hold you placed, what it costs you wholesale and what you sell it for. Your own sites are not here; use sites_list for those.reseller.view읽기 전용 · 리셀러 전용
reseller_service_getOne client service in full — status, plan, any hold, wholesale cost, your sell price, and its disk and bandwidth usage.reseller.view읽기 전용 · 리셀러 전용
reseller_service_suspendPut one of your client's services on a non-payment hold. The site stops serving until you release it. Requires confirm: true.reseller.provision변경 사항 반영 중 · 확인 요청 · 리셀러 전용
reseller_service_unsuspendRelease a non-payment hold you placed on a client's service. The site starts serving again.reseller.provision변경 사항 반영 중 · 리셀러 전용
reseller_prices_listYour price list: every plan you can sell, with the Zinn® list price, your wholesale cost, and the retail price you have set (if any).reseller.view읽기 전용 · 리셀러 전용
reseller_client_wallets_listEvery client wallet you hold a float in, with the balance per client and the total held per currency. This is money you have taken and not yet delivered service for.reseller.view읽기 전용 · 리셀러 전용

계속 읽기

터미널을 선호하시나요?

Zinnector® CLI 참조

퍼블릭 API 기반 구축

API 참조

AI 어시스턴트가 할 수 있는 일

AI 도구 및 MCP

2분 만에 어시스턴트 연결하기

대시보드에서 AI 도구를 열고 연결을 생성한 후 클라이언트가 읽는 설정을 붙여넣으세요.