# Kamy (dev.kamy/kamy): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/dev.kamy%2Fkamy/versions/latest)
- Connected to: https://mcp.kamy.dev/mcp
- Repository: https://github.com/Kamy-Development/kamy-plugin
- Scoring rules: v2
- Tools: 59
- Average: 74.1 / 100 (Clear)
- Near-identical pairs: 0

This page shows how Kamy (dev.kamy/kamy)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 59 tools. Above 40, models choose less accurately.
- Minor: The server has no instructions. Say there, once, what the server is for and when to use it: Claude Code and Gemini CLI read the instructions before the tool descriptions.

## Tools

- `list_templates`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `list_signature_requests`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `get_account`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `pki_sign_pdf`: 58 / 100
  - Minor: The description mentions none of its 3 or more arguments.
- `ask_kamy`: 59 / 100
  - Major: Says nothing about when to use it, or when not to.
- `list_webhooks`: 60 / 100
  - Minor: Says nothing about what it returns.
- `test_webhook`: 62 / 100
  - Minor: Says nothing about what it returns.
- `update_template`: 62 / 100
  - Minor: Arguments without a description: name, description, isPublic, tags.
  - Minor: The meaning of the boolean argument isPublic is unclear.
- `create_signature_request`: 63 / 100
  - Minor: Arguments without a description: position.page, position.x, position.y, position.w, position.h, placedFields[].required, placedFields[].defaultValue.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument placedFields[].required is unclear.
- `get_signature_certificate`: 64 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: signatureRequestId. Name the tool or the place that returns it, or models look it up first.
- `list_schedules`: 64 / 100
  - Minor: No `required` list, so every argument is optional.
- `get_template_schema`: 65 / 100
  - Minor: Says nothing about what it returns.
- `render_pptx`: 65 / 100
  - Major: Arguments without a description: theme, slides[].layout, slides[].title, slides[].subtitle, slides[].layout, slides[].title, slides[].bullets, slides[].layout, slides[].title, slides[].left, slides[].left.title, slides[].left.bullets, slides[].right, slides[].layout, slides[].title, slides[].headers, slides[].layout, slides[].quote, slides[].attribution.
  - Minor: String arguments with no constraint or example: slides[].layout, slides[].layout, slides[].layout, slides[].layout, slides[].layout.
- `verify_pdf_signature`: 66 / 100
- `extract_document`: 67 / 100
  - Minor: The description mentions none of its 3 or more arguments.
- `get_started`: 68 / 100
  - Minor: No `required` list, so every argument is optional.
- `get_job`: 69 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: job_id. Name the tool or the place that returns it, or models look it up first.
- `split_pdf`: 69 / 100
- `validate_payload`: 69 / 100
- `convert_document`: 72 / 100
- `create_envelope`: 73 / 100
  - Minor: Arguments without a description: recipients[].email, position.page, position.x, position.y, position.w, position.h, placedFields[].type, placedFields[].required, placedFields[].defaultValue.
  - Minor: The meaning of the boolean argument placedFields[].required is unclear.
- `remind_signature`: 73 / 100
  - Minor: No `required` list, so every argument is optional.
- `render_batch`: 73 / 100
  - Minor: Arguments without a description: items[].margin.top, items[].margin.right, items[].margin.bottom, items[].margin.left.
- `get_provenance_chain`: 74 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: run_id. Name the tool or the place that returns it, or models look it up first.
- `list_renders`: 74 / 100
  - Minor: No `required` list, so every argument is optional.
- `record_agent_action`: 74 / 100
- `upload_file`: 74 / 100
- `render_async`: 75 / 100
  - Major: Arguments without a description: margin.top, margin.right, margin.bottom, margin.left, metadata.title, metadata.author, metadata.subject, metadata.keywords, metadata.creator, watermark.text, watermark.opacity, watermark.fontSize, watermark.angle.
- `attest_artifact`: 76 / 100
- `delete_schedule`: 76 / 100
- `publish_template`: 76 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: templateId. Name the tool or the place that returns it, or models look it up first.
- `get_envelope`: 77 / 100
- `get_render`: 77 / 100
- `get_signature_template`: 77 / 100
- `list_template_versions`: 77 / 100
- `trace_search`: 77 / 100
  - Minor: No `required` list, so every argument is optional.
- `bulk_signature_requests`: 79 / 100
  - Minor: Arguments without a description: position.page, position.x, position.y, position.w, position.h.
  - Minor: Required identifiers whose description does not say where the value comes from: renderId. Name the tool or the place that returns it, or models look it up first.
- `create_webhook`: 79 / 100
- `get_upload`: 79 / 100
- `list_signature_templates`: 79 / 100
  - Minor: No `required` list, so every argument is optional.
- `render_pdf`: 79 / 100
  - Minor: Arguments without a description: format.
- `edit_pdf`: 81 / 100
  - Minor: Arguments without a description: operations[].op, operations[].op, operations[].text, operations[].fontSize, operations[].op.
  - Minor: String arguments with no constraint or example: operations[].op, operations[].op, operations[].op.
- `merge_pdfs`: 81 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: renderIds. Name the tool or the place that returns it, or models look it up first.
- `render_html`: 81 / 100
  - Minor: No `required` list, so every argument is optional.
- `scan_tool_description`: 81 / 100
  - Minor: No `required` list, so every argument is optional.
- `get_signature_request`: 82 / 100
- `get_template_version`: 82 / 100
- `render_docx`: 82 / 100
- `verify_mcp_server`: 83 / 100
  - Minor: No `required` list, so every argument is optional.
- `create_template`: 84 / 100
- `get_render_pages`: 84 / 100
- `verify_attestation`: 84 / 100
- `preview_field_placement`: 85 / 100
  - Minor: Arguments without a description: placedFields[].required, placedFields[].defaultValue.
  - Minor: The meaning of the boolean argument placedFields[].required is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: renderId. Name the tool or the place that returns it, or models look it up first.
- `create_schedule`: 87 / 100
- `extract_from_render`: 87 / 100
- `rollback_template`: 87 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: templateId. Name the tool or the place that returns it, or models look it up first.
- `trace_record`: 87 / 100
- `trace_record_batch`: 87 / 100
- `render_xlsx`: 91 / 100
  - Minor: Arguments without a description: sheets[].columns.
  - Minor: The description mentions none of its 3 or more arguments.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
