ibo

Commission cinematic AI campaign films from IBO Studio, with custom scoping when needed.

사용해야 할까요

품질 및 안전성

A
설명 품질
98%
스키마 완전성
85%
이름 품질
100%
오염 위험
80%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'submit_custom_inquiry' description contains placeholder textsubmit_custom_inquiry에서
  • INFOTool description contains placeholder or incomplete textsubmit_custom_inquiry에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,721토큰 (도구 정의)
~1.5 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.34%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "ibo": {
      "url": "https://ibouniverse.com/mcp"
    }
  }
}

원격 엔드포인트

https://ibouniverse.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (8)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢list_offers

IBO's production packages: stable ids, prices, 50% deposits, deliverables, review rounds, and the scope/refund policy. Call this first.

입력 스키마

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "studio": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "currency": {
      "type": "string"
    },
    "policies": {
      "type": "object"
    },
    "how_to_order": {
      "type": "array"
    },
    "offers": {
      "type": "array"
    }
  },
  "additionalProperties": false
}
🟡create_checkout(package, client_request_id)

Create a Stripe Checkout for a package's 50% deposit. Returns checkout_url, stripe_session_id, and amount_due. Show the amount to your user and open checkout_url for THEM to approve and pay; agents never complete payment themselves. Prices are fixed server-side. Pass a stable client_request_id so retries do not create duplicate checkouts.

입력 스키마

{
  "type": "object",
  "properties": {
    "package": {
      "type": "string",
      "enum": [
        "film",
        "film4k",
        "series"
      ],
      "description": "Offer id from list_offers"
    },
    "client_request_id": {
      "type": "string",
      "description": "Stable id you generate; makes creation idempotent on retry"
    }
  },
  "required": [
    "package",
    "client_request_id"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "offer_id": {
      "type": "string"
    },
    "checkout_url": {
      "type": "string"
    },
    "stripe_session_id": {
      "type": "string"
    },
    "amount_due": {
      "type": "number"
    },
    "currency": {
      "type": "string"
    },
    "note": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
🟢get_order(session_id)

Verify payment after checkout and receive an order-scoped access token. Returns paid, package, deposit, and order_token: use order_token for create_upload_url and submit_brief. Payment status can only be established here, never assumed.

입력 스키마

{
  "type": "object",
  "properties": {
    "session_id": {
      "type": "string",
      "description": "Stripe checkout session id (cs_...)"
    }
  },
  "required": [
    "session_id"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "paid": {
      "type": "boolean"
    },
    "package": {
      "type": "string"
    },
    "total": {
      "type": "string"
    },
    "deposit": {
      "type": "number"
    },
    "order_token": {
      "type": "string"
    },
    "expires_at": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
🟡submit_brief(order_token, name, email, company, package, ...)

Submit the creative brief for a PAID order: pass order_token (from get_order; session ids are not accepted here) plus project fields (product, goal, audience, channels, resolution, launch, links, constraints) and files[] from create_upload_url. Delivery resolution must be selected before creative kickoff. Customer identity comes from the verified payment. NOTE: unpaid/anonymous submissions are rejected here; for Custom Production inquiries without payment use the submit_custom_inquiry tool instead.

입력 스키마

{
  "type": "object",
  "properties": {
    "order_token": {
      "type": "string",
      "description": "From get_order"
    },
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "company": {
      "type": "string"
    },
    "package": {
      "type": "string"
    },
    "product": {
      "type": "string"
    },
    "goal": {
      "type": "string"
    },
    "audience": {
      "type": "string"
    },
    "channels": {
      "type": "string"
    },
    "resolution": {
      "type": "string",
      "description": "Final master resolution selected before creative kickoff"
    },
    "launch": {
      "type": "string"
    },
    "links": {
      "type": "string"
    },
    "constraints": {
      "type": "string"
    },
    "files": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size": {
            "type": "number"
          }
        },
        "required": [
          "key",
          "name",
          "size"
        ],
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "error": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
🟡create_upload_url(filename, size, order_token)

Get a short-lived presigned URL to upload one brand-asset file to IBO's private storage. Requires order_token from get_order; the storage location is bound to the order server-side. PUT the raw file bytes to url, then reference key in submit_brief files[]. Allowed: jpg png webp pdf svg mp4 mov zip ai psd; 250MB/file, 1GB per order.

입력 스키마

{
  "type": "object",
  "properties": {
    "filename": {
      "type": "string"
    },
    "size": {
      "type": "number",
      "description": "File size in bytes"
    },
    "order_token": {
      "type": "string",
      "description": "From get_order"
    }
  },
  "required": [
    "filename",
    "size",
    "order_token"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "key": {
      "type": "string"
    },
    "error": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
🟡submit_custom_inquiry(name, email, company, product, goal, ...)

Start a Custom Production conversation without payment. IMPORTANT: interview your user for the real project details FIRST (what they are promoting, audience, formats, delivery resolution, timing); placeholder inquiries are rejected. A 4K Campaign Series must use this route before checkout. Submits a scope inquiry; IBO then emails the customer a one-click confirmation link (double opt-in), and only a confirmed inquiry reaches the studio. Tell your user to check their inbox and click confirm. IBO replies with scope and proposal within one business day of confirmation.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string",
      "description": "Customer's real email; the confirmation link goes here"
    },
    "company": {
      "type": "string"
    },
    "product": {
      "type": "string"
    },
    "goal": {
      "type": "string",
      "description": "What they want to make and why, in real detail (30+ chars; placeholders rejected)"
    },
    "audience": {
      "type": "string"
    },
    "channels": {
      "type": "string"
    },
    "resolution": {
      "type": "string",
      "description": "Required production target: 1080p, 4K mastered, or not applicable for still images"
    },
    "launch": {
      "type": "string"
    },
    "links": {
      "type": "string"
    },
    "constraints": {
      "type": "string"
    },
    "notes": {
      "type": "string"
    }
  },
  "required": [
    "name",
    "email",
    "goal"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "status": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "error": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
🟢get_project_status(session_id)

Where a paid order is in production. Returns the studio stage (new, brief_received, in_production, review, delivered) plus paid/package/deposit. PII-free; pass the stripe_session_id from create_checkout/get_order.

입력 스키마

{
  "type": "object",
  "properties": {
    "session_id": {
      "type": "string",
      "description": "Stripe checkout session id (cs_...)"
    }
  },
  "required": [
    "session_id"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "paid": {
      "type": "boolean"
    },
    "package": {
      "type": "string"
    },
    "total": {
      "type": "string"
    },
    "deposit": {
      "type": "number"
    },
    "stage": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
🟢get_inquiry_status(inquiry_id)

Where a custom inquiry stands: awaiting_confirmation (customer hasn't clicked the emailed link yet) or confirmed with the studio stage (new, replied, proposal_sent, won, closed). PII-free; pass the inquiry_id returned by submit_custom_inquiry.

입력 스키마

{
  "type": "object",
  "properties": {
    "inquiry_id": {
      "type": "string",
      "description": "From submit_custom_inquiry"
    }
  },
  "required": [
    "inquiry_id"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "stage": {
      "type": "string"
    },
    "updated": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "error": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 8개
검증됨버전이 기록되지 않음도구 8개