---
name: docs-jobs
description: "Step-by-step job recipes for the Document Tools MCP server: Count words and characters; Make a calendar (.ics) file; Translate a webpage or documentation. Use when the user asks things like \"How many words and characters is this sentence: 'The quick brown fox jumps over the lazy dog.'?\" or \"Make a calendar file for a team meeting called Sprint review on 2 November 2026 at 09:30 in Europe/Paris for 45 minutes, with a reminder 10 minutes before.\""
license: MIT
---

# Document Tools jobs

Each section below walks through one job with the tools of the `docs` MCP server. The same recipes are MCP prompts (prompts/list) on `https://api.openkrill.app/gateway/mcp`.
Connect the server at `https://docs.openkrill.app/mcp` in your MCP client settings (remote streamable HTTP, no key), then call its tools as normal tool calls. They are not command line programs: Bash, curl and scripts cannot reach them.

## Count words and characters

Job: Count words and characters, with the Document Tools MCP server.

Use the `count_text` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "How many words and characters is this sentence: "The quick brown fox jumps over the lazy dog."?"

Steps:
1. Call `count_text` as a normal MCP tool call, with the request's values in the fields of its inputSchema. It needs `text`.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"text":"One two three. Four five."}`
4. For the request "How many words and characters is this sentence: "The quick brown fox jumps over the lazy dog."?", a correct answer looks like this: words 9, characters 44, characters_no_spaces 36, sentences 1, paragraphs 1, lines 1, utf8_bytes 44, with the counting rules.
5. Follow the server's own rules:
   - Use count_text when the user wants to know how long a text is: characters, words, sentences, SMS segments or reading time.
   - Pass the text exactly as the user wrote it; never count by yourself.
   - State the rules from the rules field when the user asks what counts as a word or a character.
   - For a calendar event ask for the time zone if the user did not give one; never guess it.
   - If a result has status invalid, tell the user what to fix using its message, or fix the input yourself when the message makes the fix clear.
   - Give the user the download_url when it is present and say it expires at expires_at; when it is null, show the returned text and tell the user to save it with the right extension.
   - Only use it when the user has confirmed they own the page or have translation rights; never use it for copyrighted fiction, manga, manhwa, or commercial comics.
   - If a page is too large, tell the user and offer to translate a shorter page, such as one chapter on its own page; a #section link still loads the whole page, and the tool reads only public web pages by URL.
   - These tools only make files or return text: they cannot add events to a calendar, open or edit spreadsheets, count text inside an uploaded file, or store persistent copies.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `count_text`).

## Make a calendar (.ics) file

Job: Make a calendar (.ics) file, with the Document Tools MCP server.

Use the `make_calendar_file` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "Make a calendar file for a team meeting called Sprint review on 2 November 2026 at 09:30 in Europe/Paris for 45 minutes, with a reminder 10 minutes before."

Steps:
1. Call `make_calendar_file` as a normal MCP tool call, with the request's values in the fields of its inputSchema. It needs `events`.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"events":[{"title":"Sprint review","start":"2026-11-02T09:30","duration_minutes":45,"timezone":"Europe/Paris","reminder_minutes":10}]}`
4. For the request "Make a calendar file for a team meeting called Sprint review on 2 November 2026 at 09:30 in Europe/Paris for 45 minutes, with a reminder 10 minutes before.", a correct answer looks like this: status ok, event_count 1, ics_text with DTSTART;TZID=Europe/Paris:20261102T093000, DTEND;TZID=Europe/Paris:20261102T101500, a VTIMEZONE for Europe/Paris and a VALARM with TRIGGER:-PT10M, plus a download_url and an expires_at 24 hours ahead.
5. Follow the server's own rules:
   - Pass the text exactly as the user wrote it; never count by yourself.
   - State the rules from the rules field when the user asks what counts as a word or a character.
   - Use make_calendar_file when the user wants a calendar file, and make_csv_file when the user wants a CSV file.
   - For a calendar event ask for the time zone if the user did not give one; never guess it.
   - If a result has status invalid, tell the user what to fix using its message, or fix the input yourself when the message makes the fix clear.
   - Give the user the download_url when it is present and say it expires at expires_at; when it is null, show the returned text and tell the user to save it with the right extension.
   - Only use it when the user has confirmed they own the page or have translation rights; never use it for copyrighted fiction, manga, manhwa, or commercial comics.
   - If a page is too large, tell the user and offer to translate a shorter page, such as one chapter on its own page; a #section link still loads the whole page, and the tool reads only public web pages by URL.
   - These tools only make files or return text: they cannot add events to a calendar, open or edit spreadsheets, count text inside an uploaded file, or store persistent copies.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `make_calendar_file`).

## Translate a webpage or documentation

Job: Translate a webpage or documentation, with the Document Tools MCP server.

Use the `translate_page` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "Translate our documentation page at https://tools.openkrill.app/app-submit into Vietnamese. We own this content."

Steps:
1. Call `translate_page` as a normal MCP tool call, with the request's values in the fields of its inputSchema. It needs `url`, `target_lang`, `confirm_rights`.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"url":"https://tools.openkrill.app/app-submit","target_lang":"vi","confirm_rights":true}`
4. For the request "Translate our documentation page at https://tools.openkrill.app/app-submit into Vietnamese. We own this content.", a correct answer looks like this: status ok, source_lang en, target_lang vi, clean translated Markdown headings and paragraphs, and character usage counts.
5. Follow the server's own rules:
   - Pass the text exactly as the user wrote it; never count by yourself.
   - State the rules from the rules field when the user asks what counts as a word or a character.
   - For a calendar event ask for the time zone if the user did not give one; never guess it.
   - If a result has status invalid, tell the user what to fix using its message, or fix the input yourself when the message makes the fix clear.
   - Give the user the download_url when it is present and say it expires at expires_at; when it is null, show the returned text and tell the user to save it with the right extension.
   - Use translate_page when the user asks to translate a webpage, technical documentation, or public-domain text that they own into another language.
   - Only use it when the user has confirmed they own the page or have translation rights; never use it for copyrighted fiction, manga, manhwa, or commercial comics.
   - If a page is too large, tell the user and offer to translate a shorter page, such as one chapter on its own page; a #section link still loads the whole page, and the tool reads only public web pages by URL.
   - These tools only make files or return text: they cannot add events to a calendar, open or edit spreadsheets, count text inside an uploaded file, or store persistent copies.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `translate_page`).
