mercoa

Query and manage Mercoa AP/AR bill-pay: entities, invoices, transactions and payment methods.

사용해야 할까요

품질 및 안전성

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

발견 사항 (2)

  • LOWTool 'mercoa_get_entity_invoice_metrics' name length outside 3-30 rangemercoa_get_entity_invoice_metrics에서
  • LOWTool 'mercoa_list_entity_payment_methods' name length outside 3-30 rangemercoa_list_entity_payment_methods에서

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

컨텍스트 비용

~4,336토큰 (도구 정의)
~2.4 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 3.39%)

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

설치

원클릭 설치

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

{
  "mcpServers": {
    "mercoa": {
      "url": "https://mercoa.usefulapi.io/mcp"
    }
  }
}

원격 엔드포인트

https://mercoa.usefulapi.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (17)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢mercoa_find_entities(search, isCustomer, isPayor, isPayee, foreignId, ...)

Find/search entities (buyers, vendors, payors, payees). Use to look up counterparties by name/email/foreignId or list all. GET /entity.

입력 스키마

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Search by name, email, emailTo, entity ID, or foreign ID (partial matches).",
      "type": "string"
    },
    "isCustomer": {
      "description": "If true, only entities with a direct relationship to your organization.",
      "type": "boolean"
    },
    "isPayor": {
      "description": "Filter entities marked as payors.",
      "type": "boolean"
    },
    "isPayee": {
      "description": "Filter entities marked as payees.",
      "type": "boolean"
    },
    "foreignId": {
      "description": "Your system's ID(s) for the entity.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "status": {
      "description": "Entity status filter (e.g. verified, pending).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "paymentMethods": {
      "description": "If true, include payment methods in the response.",
      "type": "boolean"
    },
    "returnMetadata": {
      "description": "Metadata key(s) to include in the response.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "limit": {
      "description": "Max entities to return (1-100, default 10).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "startingAfter": {
      "description": "Entity ID cursor for pagination.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢mercoa_get_entity(entityId)

Get a single entity by ID (or foreign ID). GET /entity/{entityId}.

입력 스키마

{
  "type": "object",
  "properties": {
    "entityId": {
      "type": "string",
      "description": "Entity ID (e.g. ent_...) or foreign ID."
    }
  },
  "required": [
    "entityId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢mercoa_get_entity_events(entityId, startDate, endDate, limit, startingAfter)

Get the event/audit log for an entity. GET /entity/{entityId}/events.

입력 스키마

{
  "type": "object",
  "properties": {
    "entityId": {
      "type": "string",
      "description": "Entity ID or foreign ID."
    },
    "startDate": {
      "description": "Start date filter (ISO 8601).",
      "type": "string"
    },
    "endDate": {
      "description": "End date filter (ISO 8601).",
      "type": "string"
    },
    "limit": {
      "description": "Max events to return (1-100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "startingAfter": {
      "description": "Event ID cursor for pagination.",
      "type": "string"
    }
  },
  "required": [
    "entityId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢mercoa_get_entity_invoice_metrics(entityId, search, excludePayables, excludeReceivables, returnByDate, ...)

Get aggregate invoice metrics (totals/counts, grouped by currency) for an entity's payables/receivables — for AP/AR dashboards and aging. GET /entity/{entityId}/invoice-metrics.

입력 스키마

{
  "type": "object",
  "properties": {
    "entityId": {
      "type": "string",
      "description": "Entity ID or foreign ID."
    },
    "search": {
      "description": "Search by vendor name, invoice number, check number, or amount.",
      "type": "string"
    },
    "excludePayables": {
      "description": "Only return receivables (exclude payables).",
      "type": "boolean"
    },
    "excludeReceivables": {
      "description": "Only return payables (exclude receivables).",
      "type": "boolean"
    },
    "returnByDate": {
      "description": "Group metrics by date, e.g. CREATION_DATE or DUE_DATE.",
      "type": "string"
    },
    "returnByDateFrequency": {
      "description": "Frequency for date grouping (e.g. DAILY, MONTHLY).",
      "type": "string"
    },
    "groupBy": {
      "description": "Additional grouping (e.g. by status).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "payerId": {
      "description": "Filter by payer ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "vendorId": {
      "description": "Filter by vendor ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "approverId": {
      "description": "Filter by assigned approver user ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "invoiceId": {
      "description": "Filter by invoice ID(s) or foreign ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "status": {
      "description": "Invoice status filter (e.g. NEW, SCHEDULED, PAID).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "startDate": {
      "description": "Start date filter (ISO 8601).",
      "type": "string"
    },
    "endDate": {
      "description": "End date filter (ISO 8601).",
      "type": "string"
    },
    "dateType": {
      "description": "Date type to filter by (e.g. CREATED_AT, DUE_DATE).",
      "type": "string"
    },
    "currency": {
      "description": "Currency code(s) to filter on, e.g. USD.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    }
  },
  "required": [
    "entityId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢mercoa_list_entity_payment_methods(entityId, type)

List an entity's payment methods (bank accounts, cards, check, etc.). GET /entity/{entityId}/paymentMethods.

입력 스키마

{
  "type": "object",
  "properties": {
    "entityId": {
      "type": "string",
      "description": "Entity ID or foreign ID."
    },
    "type": {
      "description": "Filter by payment method type (e.g. bankAccount, card, check).",
      "type": "string"
    }
  },
  "required": [
    "entityId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢mercoa_get_payment_method(entityId, paymentMethodId)

Get a single payment method for an entity. GET /entity/{entityId}/paymentMethod/{paymentMethodId}.

입력 스키마

{
  "type": "object",
  "properties": {
    "entityId": {
      "type": "string",
      "description": "Entity ID or foreign ID."
    },
    "paymentMethodId": {
      "type": "string",
      "description": "Payment method ID (e.g. pm_...)."
    }
  },
  "required": [
    "entityId",
    "paymentMethodId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢mercoa_list_entity_users(entityId)

List the users belonging to an entity (approvers, admins, etc.). GET /entity/{entityId}/users.

입력 스키마

{
  "type": "object",
  "properties": {
    "entityId": {
      "type": "string",
      "description": "Entity ID or foreign ID."
    }
  },
  "required": [
    "entityId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢mercoa_find_invoices(entityId, entityGroupId, status, payerId, vendorId, ...)

Find/search invoices (bills) across payers and vendors. Filter by status, entity, date, approver and more. GET /invoices (plural list endpoint).

입력 스키마

{
  "type": "object",
  "properties": {
    "entityId": {
      "description": "Filter by entity (payer or vendor) ID(s) or foreign ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "entityGroupId": {
      "description": "Filter by entity group ID.",
      "type": "string"
    },
    "status": {
      "description": "Invoice status filter (e.g. DRAFT, NEW, APPROVED, SCHEDULED, PAID).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "payerId": {
      "description": "Filter by payer ID(s) or foreign ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "vendorId": {
      "description": "Filter by vendor ID(s) or foreign ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "invoiceId": {
      "description": "Filter by invoice ID(s) or foreign ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "search": {
      "description": "Search by vendor name, invoice number, check number, or amount.",
      "type": "string"
    },
    "startDate": {
      "description": "Start date filter (ISO 8601).",
      "type": "string"
    },
    "endDate": {
      "description": "End date filter (ISO 8601).",
      "type": "string"
    },
    "dateType": {
      "description": "Date type to filter by (e.g. CREATED_AT, DUE_DATE).",
      "type": "string"
    },
    "orderBy": {
      "description": "Field to order by (e.g. CREATED_AT, AMOUNT, DUE_DATE).",
      "type": "string"
    },
    "orderDirection": {
      "description": "asc or desc.",
      "type": "string"
    },
    "paymentType": {
      "description": "Filter by payment type (e.g. recurring).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "approverId": {
      "description": "Filter by assigned approver user ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "approverAction": {
      "description": "Filter by approver action (use with approverId), e.g. APPROVE.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "creatorUserId": {
      "description": "Filter by the user ID(s) that created the invoice.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "invoiceTemplateId": {
      "description": "Filter by invoice template ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "returnPayerMetadata": {
      "description": "Include payer metadata in the response.",
      "type": "boolean"
    },
    "returnVendorMetadata": {
      "description": "Include vendor metadata in the response.",
      "type": "boolean"
    },
    "returnPaymentTiming": {
      "description": "Include payment timing in the response.",
      "type": "boolean"
    },
    "limit": {
      "description": "Max invoices to return (1-100, default 10).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "startingAfter": {
      "description": "Invoice ID cursor for pagination.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢mercoa_get_invoice(invoiceId)

Get a single invoice (bill) by ID. GET /invoice/{invoiceId}.

입력 스키마

{
  "type": "object",
  "properties": {
    "invoiceId": {
      "type": "string",
      "description": "Invoice ID (e.g. in_...) or foreign ID."
    }
  },
  "required": [
    "invoiceId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢mercoa_get_invoice_events(invoiceId, startDate, endDate, limit, startingAfter)

Get the event/audit log for an invoice (status changes, approvals, payments). GET /invoice/{invoiceId}/events.

입력 스키마

{
  "type": "object",
  "properties": {
    "invoiceId": {
      "type": "string",
      "description": "Invoice ID or foreign ID."
    },
    "startDate": {
      "description": "Start date filter (ISO 8601).",
      "type": "string"
    },
    "endDate": {
      "description": "End date filter (ISO 8601).",
      "type": "string"
    },
    "limit": {
      "description": "Max events to return (1-100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "startingAfter": {
      "description": "Event ID cursor for pagination.",
      "type": "string"
    }
  },
  "required": [
    "invoiceId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢mercoa_find_transactions(entityId, entityGroupId, payerId, vendorId, invoiceId, ...)

List/search payment transactions. Filter by entity, invoice, status, type and date. GET /transactions.

입력 스키마

{
  "type": "object",
  "properties": {
    "entityId": {
      "description": "Filter by entity ID(s) or foreign ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "entityGroupId": {
      "description": "Filter by entity group ID.",
      "type": "string"
    },
    "payerId": {
      "description": "Filter by payer ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "vendorId": {
      "description": "Filter by vendor ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "invoiceId": {
      "description": "Filter by invoice ID(s) or foreign ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "transactionId": {
      "description": "Filter by transaction ID(s).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "status": {
      "description": "Transaction status filter.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "transactionType": {
      "description": "Filter by transaction type.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "search": {
      "description": "Search by vendor name, invoice number, check number, or amount.",
      "type": "string"
    },
    "startDate": {
      "description": "CREATED_AT start date filter (ISO 8601).",
      "type": "string"
    },
    "endDate": {
      "description": "CREATED_AT end date filter (ISO 8601).",
      "type": "string"
    },
    "limit": {
      "description": "Max transactions to return (1-100, default 10).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "startingAfter": {
      "description": "Transaction ID cursor for pagination.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢mercoa_get_transaction(transactionId)

Get a single payment transaction by ID. GET /transaction/{transactionId}.

입력 스키마

{
  "type": "object",
  "properties": {
    "transactionId": {
      "type": "string",
      "description": "Transaction ID."
    }
  },
  "required": [
    "transactionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢mercoa_get_organization

Get the caller's Mercoa organization configuration (settings, payment methods enabled, etc.). GET /organization.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴mercoa_create_entity(isCustomer, isPayor, isPayee, accountType, foreignId, ...)

WRITE — creates a real entity (customer/vendor/payor/payee) in Mercoa. Supply role flags, accountType, and a nested `profile` object (business or individual details). POST /entity.

입력 스키마

{
  "type": "object",
  "properties": {
    "isCustomer": {
      "description": "Whether this entity has a direct relationship with your organization.",
      "type": "boolean"
    },
    "isPayor": {
      "description": "Whether this entity can pay invoices (AP).",
      "type": "boolean"
    },
    "isPayee": {
      "description": "Whether this entity can receive payments (AR / vendor).",
      "type": "boolean"
    },
    "accountType": {
      "description": "business or individual.",
      "type": "string",
      "enum": [
        "business",
        "individual"
      ]
    },
    "foreignId": {
      "description": "Your system's ID for this entity.",
      "type": "string"
    },
    "email": {
      "description": "Primary email for the entity.",
      "type": "string"
    },
    "profile": {
      "description": "Nested profile object, e.g. { \"business\": { \"legalBusinessName\": \"Acme Inc.\", \"email\": \"[email protected]\", \"businessType\": \"llc\" } } or { \"individual\": { \"name\": {...}, \"email\": \"...\" } }.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴mercoa_create_invoice(status, amount, currency, payerId, vendorId, ...)

WRITE — creates a real invoice/bill in Mercoa. Set status (DRAFT to stage, NEW to submit), amount, currency, payer/vendor, dates and line items. POST /invoice.

입력 스키마

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Invoice status, e.g. DRAFT, NEW, APPROVED, SCHEDULED.",
      "type": "string"
    },
    "amount": {
      "description": "Total invoice amount.",
      "type": "number"
    },
    "currency": {
      "description": "Currency code, e.g. USD.",
      "type": "string"
    },
    "payerId": {
      "description": "Payer entity ID (who owes).",
      "type": "string"
    },
    "vendorId": {
      "description": "Vendor entity ID (who is paid).",
      "type": "string"
    },
    "creatorEntityId": {
      "description": "Entity ID on whose behalf the invoice is created.",
      "type": "string"
    },
    "creatorUserId": {
      "description": "User ID creating the invoice.",
      "type": "string"
    },
    "invoiceDate": {
      "description": "Invoice date (ISO 8601).",
      "type": "string"
    },
    "dueDate": {
      "description": "Due date (ISO 8601).",
      "type": "string"
    },
    "deductionDate": {
      "description": "Scheduled payment/deduction date (ISO 8601).",
      "type": "string"
    },
    "invoiceNumber": {
      "description": "Human-readable invoice number, e.g. INV-123.",
      "type": "string"
    },
    "noteToSelf": {
      "description": "Internal note.",
      "type": "string"
    },
    "paymentSourceId": {
      "description": "Payment method ID to pay from (payer's).",
      "type": "string"
    },
    "paymentDestinationId": {
      "description": "Payment method ID to pay to (vendor's).",
      "type": "string"
    },
    "lineItems": {
      "description": "Line items array, e.g. [{ \"amount\": 100, \"currency\": \"USD\", \"description\": \"Product A\", \"quantity\": 1, \"unitPrice\": 100 }].",
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "metadata": {
      "description": "Arbitrary key/value metadata.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴mercoa_update_invoice(invoiceId, status, amount, currency, payerId, ...)

WRITE — updates an existing invoice/bill (all fields optional). Commonly used to advance status (e.g. DRAFT→NEW→SCHEDULED) or change amounts, dates, or payment methods. POST /invoice/{invoiceId}.

입력 스키마

{
  "type": "object",
  "properties": {
    "invoiceId": {
      "type": "string",
      "description": "Invoice ID to update."
    },
    "status": {
      "description": "New invoice status, e.g. NEW, APPROVED, SCHEDULED.",
      "type": "string"
    },
    "amount": {
      "description": "Total invoice amount.",
      "type": "number"
    },
    "currency": {
      "description": "Currency code, e.g. USD.",
      "type": "string"
    },
    "payerId": {
      "description": "Payer entity ID.",
      "type": "string"
    },
    "vendorId": {
      "description": "Vendor entity ID.",
      "type": "string"
    },
    "invoiceDate": {
      "description": "Invoice date (ISO 8601).",
      "type": "string"
    },
    "dueDate": {
      "description": "Due date (ISO 8601).",
      "type": "string"
    },
    "deductionDate": {
      "description": "Scheduled payment/deduction date (ISO 8601).",
      "type": "string"
    },
    "invoiceNumber": {
      "description": "Human-readable invoice number.",
      "type": "string"
    },
    "noteToSelf": {
      "description": "Internal note.",
      "type": "string"
    },
    "paymentSourceId": {
      "description": "Payment method ID to pay from.",
      "type": "string"
    },
    "paymentDestinationId": {
      "description": "Payment method ID to pay to.",
      "type": "string"
    },
    "lineItems": {
      "description": "Replacement line items array.",
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "metadata": {
      "description": "Arbitrary key/value metadata.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "invoiceId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴mercoa_add_invoice_comment(invoiceId, text, userId)

WRITE — adds a comment to an invoice (visible in its activity log). POST /invoice/{invoiceId}/comment.

입력 스키마

{
  "type": "object",
  "properties": {
    "invoiceId": {
      "type": "string",
      "description": "Invoice ID to comment on."
    },
    "text": {
      "type": "string",
      "description": "Comment text."
    },
    "userId": {
      "description": "ID or foreign ID of the user creating the comment.",
      "type": "string"
    }
  },
  "required": [
    "invoiceId",
    "text"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

권장 프롬프트

retrieve_data
Get details about [item] from mercoa
예상 도구: mercoa_get_entity
find_specific
Find [specific item] using mercoa
예상 도구: mercoa_find_entities
fetch_info
Fetch [information type] using mercoa
예상 도구: mercoa_get_entity
search_research
Search for information about [topic] using mercoa
예상 도구: mercoa_find_entities
list_items
List all [items] available in mercoa
예상 도구: mercoa_list_entity_payment_methods

커뮤니티

이 서버 평가하기

증거

최근 관측

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