service-agreement

Service agreements for freelancers: scope, deliverables, rate, termination and liability caps.

사용해야 할까요

품질 및 안전성

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

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

컨텍스트 비용

~2,124토큰 (도구 정의)
~1.7 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.66%)

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

설치

원클릭 설치

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

{
  "mcpServers": {
    "service-agreement": {
      "command": "uvx",
      "args": [
        "https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/service-agreement.mcpb"
      ]
    }
  }
}

실행 가능한 패키지

mcpbhttps://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/service-agreement.mcpb0.22.0stdio

원격 엔드포인트

https://mcp.zovo.one/mcp/service-agreementstreamable-http

할 수 있는 일

도구 목록

도구 (9)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟡agreement_create(freelancer, client, scope, deliverables, rate_cents, ...)

Write a service agreement between a freelancer and a client before the work starts: the parties, the scope of services, the deliverables, the rate and payment terms, start and end dates, a termination notice period, a liability cap and the governing jurisdiction. Stores the agreement and returns it rendered as clean Markdown with a signature block. Free tier: 3 active agreements; expiring a finished one frees its slot.

입력 스키마

{
  "type": "object",
  "properties": {
    "freelancer": {
      "type": "string",
      "maxLength": 200,
      "description": "Who does the work, e.g. Anna Nowak, or Nowak Design"
    },
    "client": {
      "type": "string",
      "maxLength": 200,
      "description": "Who the work is for, e.g. Brightleaf Studio"
    },
    "scope": {
      "type": "string",
      "maxLength": 4000,
      "description": "The services the freelancer provides, e.g. Design and build of a five-page marketing site, with two weeks of post-launch fixes"
    },
    "deliverables": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 400
      },
      "minItems": 1,
      "maxItems": 50,
      "description": "What the client receives at the end, e.g. [\"Five-page site deployed to the client's host\", \"Handover document\"]"
    },
    "rate_cents": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000000000000,
      "description": "The rate in whole cents. 8500 is 85.00"
    },
    "rate_unit": {
      "type": "string",
      "enum": [
        "hour",
        "day",
        "project"
      ],
      "description": "What the rate buys: an hour, a day, or the whole project"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "ISO code the rate and cap are in"
    },
    "payment_terms": {
      "type": "string",
      "maxLength": 500,
      "description": "When and how it is paid, e.g. Net 14 from invoice date, or 50% on signing and 50% on delivery"
    },
    "start_date": {
      "type": "string",
      "maxLength": 10,
      "description": "The date work begins, YYYY-MM-DD. May be in the future; it is a plan, not a log"
    },
    "end_date": {
      "type": "string",
      "maxLength": 10,
      "description": "The date the engagement ends, YYYY-MM-DD. Leave unset for an open-ended engagement"
    },
    "termination_notice_days": {
      "type": "integer",
      "minimum": 0,
      "maximum": 365,
      "description": "Days of written notice either party must give to end the agreement, e.g. 14"
    },
    "liability_cap_cents": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000000000000,
      "description": "The most the freelancer can be liable for, in whole cents. Leave unset and liability is uncapped, which the checklist flags"
    },
    "jurisdiction": {
      "type": "string",
      "maxLength": 300,
      "description": "The governing law and courts, e.g. England and Wales, or the State of New York"
    },
    "clauses": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 40
      },
      "maxItems": 20,
      "description": "Ids of library clauses to include, from clause_library: ip_assignment, confidentiality, late_payment, kill_fee, revision_rounds. The clause library is a Pro feature"
    },
    "freelancer_address": {
      "type": "string",
      "maxLength": 400
    },
    "client_address": {
      "type": "string",
      "maxLength": 400
    },
    "note": {
      "type": "string",
      "maxLength": 4000
    }
  },
  "required": [
    "freelancer",
    "client",
    "scope",
    "deliverables",
    "rate_cents",
    "rate_unit",
    "currency",
    "payment_terms"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢agreement_get(agreement)

Read one service agreement in full by SA number or client name: parties, scope, deliverables, rate and payment terms, dates, termination, liability cap, jurisdiction, the clauses it carries, its status and its status history. Reads only.

입력 스키마

{
  "type": "object",
  "properties": {
    "agreement": {
      "type": "string",
      "maxLength": 200,
      "description": "The agreement id, e.g. SA-2026-0003, or the client name when only one agreement has it"
    }
  },
  "required": [
    "agreement"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢agreement_list(status, client)

List service agreements newest first: parties, status, rate, dates and the clauses each carries. Filter by status and by client. An agreement is active until it is expired; the free tier holds 3 active agreements.

입력 스키마

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "maxLength": 20,
      "description": "Only agreements at this status: draft, sent, signed, expired"
    },
    "client": {
      "type": "string",
      "maxLength": 200,
      "description": "Only agreements whose client contains this text, case-insensitive"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡agreement_update_status(agreement, status, date, note)

Move one agreement exactly one step: draft, sent, signed, expired, stamping the date and an optional note into its history. A skipped or backwards step is refused and nothing is written. Expiring a finished engagement frees a free-tier slot.

입력 스키마

{
  "type": "object",
  "properties": {
    "agreement": {
      "type": "string",
      "maxLength": 200,
      "description": "The agreement id, e.g. SA-2026-0003, or the client name when only one agreement has it"
    },
    "status": {
      "type": "string",
      "maxLength": 20,
      "description": "The next step for this agreement: draft, sent, signed, expired"
    },
    "date": {
      "type": "string",
      "maxLength": 10,
      "description": "The date to stamp the step with, YYYY-MM-DD. Default today"
    },
    "note": {
      "type": "string",
      "maxLength": 4000
    }
  },
  "required": [
    "agreement",
    "status"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢clause_library(agreement)

List the built-in clause library: intellectual property assignment, mutual confidentiality, late payment interest, kill fee and revision rounds. Each clause is a title plus a body text. Pass an agreement and, on Pro, every body comes back with that agreement's variables filled in. The free tier lists titles and summaries; the full texts are a Pro feature.

입력 스키마

{
  "type": "object",
  "properties": {
    "agreement": {
      "type": "string",
      "maxLength": 200,
      "description": "Fill each clause body with this agreement's variables. Pro feature"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡agreement_render(agreement, format)

Render a service agreement ready to send and sign: the parties, the services, the deliverables, the payment terms, the term, termination, liability, jurisdiction, any library clauses it carries, and a signature block for both parties. Markdown, or self-contained HTML with print CSS that needs nothing from the network. HTML is a Pro feature. Writes nothing.

입력 스키마

{
  "type": "object",
  "properties": {
    "agreement": {
      "type": "string",
      "maxLength": 200,
      "description": "The agreement id, e.g. SA-2026-0003, or the client name when only one agreement has it"
    },
    "format": {
      "type": "string",
      "enum": [
        "markdown",
        "html"
      ],
      "description": "markdown (default) or html. The HTML carries its own styling and references nothing external. HTML is a Pro feature"
    }
  },
  "required": [
    "agreement"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢agreement_checklist(agreement)

The before-you-send-it checklist for one agreement: every missing field is listed, and terms whose absence cuts one way are flagged neutrally -- as written, what the gap means for both parties -- such as no termination clause or an uncapped liability. Reads only.

입력 스키마

{
  "type": "object",
  "properties": {
    "agreement": {
      "type": "string",
      "maxLength": 200,
      "description": "The agreement id, e.g. SA-2026-0003, or the client name when only one agreement has it"
    }
  },
  "required": [
    "agreement"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢license_status

Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪license_activate(key)

Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.

입력 스키마

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "License key from checkout, MCPL1.<payload>.<signature>"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

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