Read-only search and lookup over the Chertov & Vorobyov physics problem solutions (chertov.org.ua).
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
One solved problem, in full. Address it either with paragraph + number, or with label — the spoken form "1.12" (a dot, a dash or a space also work: "1-12", "1 12"). Returns JSON: when found, {found: true, problem: {label, paragraph, number, chapter, condition, solution_image_url, page_url, chapter_name, paragraph_name, chapter_url, paragraph_url, solution_format}}; otherwise {found: false, reason: "not_solved"|"not_found", label, paragraph, number, message}. A missing or unsolved problem is a normal result, not an error — do not retry it.
The problem label as it is spoken or written: "1.12", "1-12" or "1 12". Use this OR paragraph + number.
Problem number within the paragraph. Give together with `paragraph`, or use `label` instead.
Paragraph (§) number. Give together with `number`, or use `label` instead.
One solved problem, in full. Address it either with paragraph + number, or with label — the spoken form "1.12" (a dot, a dash or a space also work: "1-12", "1 12"). Returns JSON: when found, {found: true, problem: {label, paragraph, number, chapter, condition, solution_image_url, page_url, chapter_name, paragraph_name, chapter_url, paragraph_url, solution_format}}; otherwise {found: false, reason: "not_solved"|"not_found", label, paragraph, number, message}. A missing or unsolved problem is a normal result, not an error — do not retry it.
| Argument | Type | Description |
|---|---|---|
| label | string | The problem label as it is spoken or written: "1.12", "1-12" or "1 12". Use this OR paragraph + number. |
| number | integer | Problem number within the paragraph. Give together with `paragraph`, or use `label` instead. |
| paragraph | integer | Paragraph (§) number. Give together with `number`, or use `label` instead. |
{
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 16,
"description": "The problem label as it is spoken or written: \"1.12\", \"1-12\" or \"1 12\". Use this OR paragraph + number."
},
"number": {
"type": "integer",
"minimum": 1,
"description": "Problem number within the paragraph. Give together with `paragraph`, or use `label` instead."
},
"paragraph": {
"type": "integer",
"minimum": 1,
"description": "Paragraph (§) number. Give together with `number`, or use `label` instead."
}
}
}Map of the whole corpus: every chapter of the Chertov & Vorobyov physics problem book, with its paragraph (§) numbers and how many solved problems it holds. Takes no arguments. Returns JSON: {chapters: [{chapter, name, paragraph_count, paragraphs, paragraph_range, solved_problem_count, page_url}], totals: {chapters, paragraphs, solved_problems}}. Call this first to learn the shape of the corpus.
No arguments.
{
"type": "object",
"properties": {}
}Paragraphs (§) of the problem book, optionally restricted to one chapter. Arguments: chapter (optional integer). Returns JSON: {chapter, paragraphs: [{paragraph, name, chapter, chapter_name, solved_problem_count, problem_number_range, page_url}], totals: {paragraphs, solved_problems}}. Paragraph numbers are unique across the whole book, so a paragraph number alone addresses a section.
| Argument | Type | Description |
|---|---|---|
| chapter | integer | Chapter number to restrict to. Omit for every paragraph in the book. |
{
"type": "object",
"properties": {
"chapter": {
"type": "integer",
"minimum": 1,
"description": "Chapter number to restrict to. Omit for every paragraph in the book."
}
}
}Solved problems of one paragraph (§), paginated and in book order. Arguments: paragraph (required integer), page (optional, default 1), per_page (optional, default 25, max 100). Returns JSON: {paragraph, paragraph_name, chapter, chapter_name, problems: [{label, paragraph, number, chapter, condition, solution_image_url, page_url}], pagination: {page, per_page, total, total_pages}}. `condition` is the problem statement as plain Russian text; the worked solution exists only as the GIF at `solution_image_url`. Problems without a solution are not listed and are not counted.
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number. Defaults to 1. |
| per_page | integer | Results per page, 1 to 100. Defaults to 25. |
| paragraph* | integer | Paragraph (§) number. Unique across the whole book; see list_paragraphs. |
{
"type": "object",
"required": [
"paragraph"
],
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "1-based page number. Defaults to 1."
},
"per_page": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1 to 100. Defaults to 25."
},
"paragraph": {
"type": "integer",
"minimum": 1,
"description": "Paragraph (§) number. Unique across the whole book; see list_paragraphs."
}
}
}Full-text search over the Russian problem statements. Searches PROBLEMS ONLY — never articles or news. Arguments: query (required string, at least 5 characters once whitespace is removed), page (optional, default 1), per_page (optional, default 25, max 100). Returns JSON: {query, problems: [{label, paragraph, number, chapter, condition, solution_image_url, page_url}], pagination: {page, per_page, total, total_pages}}. Query in Russian — the statements are Russian. A shorter query is rejected with a validation error rather than returning nothing, and LIKE wildcards in the query are matched literally.
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number. Defaults to 1. |
| query* | string | Text to look for inside the problem statements, in Russian. At least 5 characters once all whitespace is removed — spaces do not count towards that minimum. |
| per_page | integer | Results per page, 1 to 100. Defaults to 25. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "1-based page number. Defaults to 1."
},
"query": {
"type": "string",
"maxLength": 255,
"description": "Text to look for inside the problem statements, in Russian. At least 5 characters once all whitespace is removed — spaces do not count towards that minimum."
},
"per_page": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1 to 100. Defaults to 25."
}
}
}