=============== LIBRARY RULES =============== From library maintainers: - Discover the current PR-CY MCP tools before use; parameters may change between server versions. - Resolve project, search-option, keyword-group, goal, article and revision identifiers from tool responses before using them. - Batch keyword phrases in get_wordstat and get_position as a single comma-separated string. - Use format=structure in get_page_content when only metadata and headings are needed. - For article and artifact changes, use the user's requested scope and read the current blocks or revision first. ### Start GitHub device sign-in with Git Credential Manager Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/context7-submission.md Run this command when Git Credential Manager is installed but has no saved GitHub login. It starts the normal device sign-in flow without a UI, which you must complete yourself. ```bash git credential-manager github login --device --no-ui ``` -------------------------------- ### Example task prompt for PR-CY MCP Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/README.md A sample prompt to ask the agent to use PR-CY MCP to fetch page headings and metadata. Replace the example domain with your target URL. ```text Use PR-CY MCP to fetch the headings and metadata of https://example.com/. ``` -------------------------------- ### get_user_keywords_projects Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md Discovers the project and search settings. Returns project_id and search_options_id needed for reports. ```APIDOC ## get_user_keywords_projects ### Description Discovers the project and search settings. Returns project_id and search_options_id needed for reports. ### Method Tool ### Endpoint get_user_keywords_projects ### Parameters None documented. ### Request Example No request body documented. ### Response #### Success Response - **project_id** (integer) - The project identifier. - **search_options_id** (integer) - The search options identifier. #### Response Example No response example provided. ``` -------------------------------- ### get_keywords_summaries JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_keywords_summaries.md Illustrative JSON-RPC message for an initialized MCP client calling the get_keywords_summaries tool. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_keywords_summaries", "arguments": { "project_id": 123, "search_options_id": 456, "limit": 20, "offset": 0 } } } ``` -------------------------------- ### Authorization header for PR-CY API key Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/quickstart.md The server expects this Authorization header with a placeholder API key. Replace YOUR_PR_CY_API_KEY with a real key and keep it in a client or secret manager, not in a repository or public example. ```http Authorization: Bearer YOUR_PR_CY_API_KEY ``` -------------------------------- ### get_page_content arguments example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/README.md Example JSON arguments for the get_page_content tool to retrieve page structure. Replace the demonstration domain with your target URL. ```json { "page_url": "https://example.com/", "format": "structure" } ``` -------------------------------- ### create_article Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md Creates a new article with a given name. Returns an article ID used for subsequent block operations. ```APIDOC ## Tool: create_article ### Description Creates a new article with a given name. Returns an article ID used for subsequent block operations. ### Method Tool call ### Endpoint create_article ### Parameters #### Request Body - **name** (string) - Required - The name of the article. ### Request Example { "name": "Laptop buying guide" } ### Response #### Success Response - **article_id** (string) - The ID of the created article. #### Response Example { "article_id": "ARTICLE_ID" } ``` -------------------------------- ### tools/call get_keywords_summaries Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_keywords_summaries.md Retrieves project keyword summaries for a selected search setting. This tool is called via JSON-RPC and requires a project ID and search options ID. ```APIDOC ## [JSON-RPC] tools/call get_keywords_summaries ### Description Retrieve project keyword summaries for a selected search setting. ### Method tools/call ### Endpoint N/A (JSON-RPC) ### Parameters #### Arguments - **project_id** (integer) - Required - Project ID from project discovery. Must be greater than 0. - **search_options_id** (integer) - Required - Search-settings ID returned by keyword-project discovery. Must be greater than 0. - **limit** (integer) - Optional - Maximum rows or records requested for this page of results. Default: 100. Minimum: 1; maximum: 1000. - **offset** (integer) - Optional - Starting offset. Default: 0. Minimum: 0. ### Request Example ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_keywords_summaries", "arguments": { "project_id": 123, "search_options_id": 456, "limit": 20, "offset": 0 } } } ``` ### Response #### Success Response - **result** (array of object) - Required in the output schema. #### Response Example N/A (schema not provided in source) ``` -------------------------------- ### get_position: One-off domain ranking check Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md Batches phrases for a one-off domain ranking check. Uses `engine` `google` and `device` `desktop`. Replace the demonstration domain with your own. ```json { "keywords": "buy laptop, gaming laptop", "domain": "example.com", "engine": "google", "device": "desktop", "top": 100 } ``` -------------------------------- ### list_artifacts JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/list_artifacts.md Illustrative JSON-RPC message for an initialized MCP client to call the list_artifacts tool. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "list_artifacts", "arguments": { "limit": 10, "offset": 0 } } } ``` -------------------------------- ### JSON-RPC example call for get_keywords_pages_summary Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_keywords_pages_summary.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_keywords_pages_summary", "arguments": { "project_id": 123, "source": "gsc", "date_from": "2026-10-01", "date_to": "2026-10-20", "limit": 20 } } } ``` -------------------------------- ### Domain argument for get_user_project_by_domain Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/quickstart.md Pass a domain such as example.com to get_user_project_by_domain for project reports. Use the returned project_id in subsequent reports; never substitute a keyword-group ID, search-option ID, or Metrika goal ID for a project ID. ```json { "domain": "example.com" } ``` -------------------------------- ### get_pages_summary request for search performance comparison Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md Query search performance data from Google Search Console (gsc), Yandex Webmaster, or all sources. Use periods ending at least three days before the current date; the example compares October 1-10 with October 11-20. Keyword and URL filters are objects, not plain strings. Allowed comparisons are equals, notEquals, startsWith, endsWith, contains, notContains, and regex; default is contains, regex uses RE2 syntax. Do not confuse these objects with the plain-string url_contains crawler filter. ```json { "project_id": 123, "source": "gsc", "date_from": "2026-10-11", "date_to": "2026-10-20", "prev_date_from": "2026-10-01", "prev_date_to": "2026-10-10", "sort": "-impressions", "limit": 20, "offset": 0 } ``` -------------------------------- ### create_keywords JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/create_keywords.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema; not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "create_keywords", "arguments": { "project_id": 123, "keywords": [ { "keyword": "buy laptop", "target_url": "https://example.com/laptops/", "group_ids": [ 456 ] } ] } } } ``` -------------------------------- ### list_articles JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/list_articles.md Illustrative JSON-RPC message for an initialized MCP client to call the list_articles tool. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "list_articles", "arguments": { "limit": 10, "offset": 0, "sort": "-dateUpdated" } } } ``` -------------------------------- ### create_article JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/create_article.md Illustrative JSON-RPC message for an initialized MCP client to call the create_article tool. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "create_article", "arguments": { "name": "Laptop buying guide" } } } ``` -------------------------------- ### Example JSON-RPC call for update_project_note Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/update_project_note.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "update_project_note", "arguments": { "note_id": 456, "project_id": 123, "text": "Updated title tags and checked the affected URLs." } } } ``` -------------------------------- ### JSON-RPC call to get_keywords_positions_history Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_keywords_positions_history.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_keywords_positions_history", "arguments": { "search_options_id": 456, "date_from": "2026-10-01", "date_to": "2026-10-20", "limit": 20 } } } ``` -------------------------------- ### get_metrika_custom_query Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md Builds a custom Yandex Metrika query with specified metrics, dimensions, filters, and sorting. Use for questions not covered by specialized reports. ```APIDOC ## get_metrika_custom_query ### Description Builds a custom Yandex Metrika query with specified metrics, dimensions, filters, and sorting. Use for questions not covered by specialized reports. ### Method POST ### Endpoint `get_metrika_custom_query` ### Parameters #### Request Body - **project_id** (integer) - Required - The ID of the PR-CY project. - **metrics** (array of strings) - Required - List of metric names, e.g., `["ym:s:visits", "ym:s:users"]`. - **dimensions** (array of strings) - Required - List of dimension names, e.g., `["ym:s:startURL"]`. - **date_from** (string) - Required - Start date (YYYY-MM-DD). - **date_to** (string) - Required - End date (YYYY-MM-DD). - **filters** (string) - Optional - Metrika filter syntax, e.g., `ym:s:trafficSource=='organic' AND ym:s:isRobot=='No'`. - **sort** (array of strings) - Optional - Sort fields, e.g., `["-ym:s:visits"]`. - **limit** (integer) - Optional - Maximum number of rows to return (up to 1,000). - **offset** (integer) - Optional - Offset for pagination. ### Request Example ```json { "project_id": 123, "metrics": ["ym:s:visits", "ym:s:users"], "dimensions": ["ym:s:startURL"], "date_from": "2026-10-01", "date_to": "2026-10-20", "filters": "ym:s:trafficSource=='organic' AND ym:s:isRobot=='No'", "sort": ["-ym:s:visits"], "limit": 20, "offset": 1 } ``` ### Response #### Success Response (200) - **data** (array) - List of query results. #### Response Example ```json { "data": [] } ``` ``` -------------------------------- ### Example JSON-RPC call for get_metrika_data_by_time Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_metrika_data_by_time.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_metrika_data_by_time", "arguments": { "project_id": 123, "metrics": [ "ym:s:visits" ], "date_from": "2026-10-01", "date_to": "2026-10-20" } } } ``` -------------------------------- ### search_artifact JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/search_artifact.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_artifact", "arguments": { "artifact_id": 123, "search": "SEO report" } } } ``` -------------------------------- ### JSON-RPC tools/call request for get_page_content Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/quickstart.md A message handled by an initialized MCP client to call get_page_content on a public page. For direct HTTP integrations, complete initialization and transport steps in Protocol first; this page does not show a live extraction result. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_page_content", "arguments": { "page_url": "https://example.com/", "format": "structure" } } } ``` -------------------------------- ### get_article JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_article.md Illustrative JSON-RPC message for an initialized MCP client calling the get_article tool. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_article", "arguments": { "article_id": "ARTICLE_ID", "include_block_data": true } } } ``` -------------------------------- ### get_user_limits JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_user_limits.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema; not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_user_limits", "arguments": { "limits_filter": [ "checks", "standardAnalysis" ] } } } ``` -------------------------------- ### set_article_content JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/set_article_content.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "set_article_content", "arguments": { "article_id": "ARTICLE_ID", "body": [ { "type": "paragraph", "data": { "text": "Updated guide." } } ] } } } ``` -------------------------------- ### create_artifact JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/create_artifact.md Illustrative JSON-RPC message for an initialized MCP client to call the create_artifact tool. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "create_artifact", "arguments": { "type": "html", "title": "SEO report", "content": "SEO report

SEO report

" } } } ``` -------------------------------- ### mcpServers JSON configuration for remote HTTP clients Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/quickstart.md Use this connection shape for clients that accept remote HTTP servers under mcpServers. Configure the API key through the client's supported secret or environment mechanism; this is not a universal configuration file. ```json { "mcpServers": { "pr-cy": { "url": "https://mcp-server.pr-cy.ru", "headers": { "Authorization": "Bearer YOUR_PR_CY_API_KEY" } } } } ``` -------------------------------- ### get_position JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_position.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_position", "arguments": { "keywords": "buy laptop, gaming laptop", "domain": "example.com", "engine": "google", "device": "desktop", "top": 100 } } } ``` -------------------------------- ### get_keywords_by_url JSON-RPC Example Call Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_keywords_by_url.md Illustrative JSON-RPC message for an initialized MCP client to call the get_keywords_by_url tool. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. The page_url argument is required, and per_page is optional with a schema default of 20 (min 1, max 1000). ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_keywords_by_url", "arguments": { "page_url": "https://example.com/laptops/", "per_page": 20 } } } ``` -------------------------------- ### Create HTML Artifact with create_artifact Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md Creates an HTML artifact draft. Use this to store draft revisions. The artifact's current revision_id must be carried into subsequent edits. Validate before finalizing. ```json { "type": "html", "title": "SEO report", "content": "SEO report

SEO report

" } ``` -------------------------------- ### diff_artifact JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/diff_artifact.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "diff_artifact", "arguments": { "artifact_id": 123, "from_revision_id": 456, "to_revision_id": 457 } } } ``` -------------------------------- ### Example JSON-RPC call for get_wordstat Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_wordstat.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_wordstat", "arguments": { "keywords": "buy laptop, gaming laptop", "types": [ "general", "exact" ], "regions": [ 213 ], "need_related_phrases": true } } } ``` -------------------------------- ### revert_artifact JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/revert_artifact.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema; not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "revert_artifact", "arguments": { "artifact_id": 123, "to_revision_id": 456, "revision_id": 457 } } } ``` -------------------------------- ### get_page_content: Extract structure metadata Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md Extracts metadata and headings from a page using `format=structure`. Use this for a first pass over competing pages; fetch full Markdown only for pages needing closer review. ```json { "page_url": "https://example.com/laptops/", "format": "structure" } ``` -------------------------------- ### generate_image JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/generate_image.md Illustrative JSON-RPC message for an initialized MCP client calling the generate_image tool. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "generate_image", "arguments": { "prompt": "A clean editorial illustration of a laptop on a desk.", "aspect_ratio": "16:9", "model": "auto" } } } ``` -------------------------------- ### Create Article with create_article Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md Creates a new article with a name. The returned article ID is used in subsequent modify_article_blocks calls. This is the first step for creating a long article before inserting blocks in batches. ```json { "name": "Laptop buying guide" } ``` -------------------------------- ### create_project_note request payload Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md JSON payload for the create_project_note tool. Use plain text without emoji. Creation is not deduplicated, so after an uncertain create response, check notes for the same period before retrying. ```json { "project_id": 123, "name": "Updated category titles", "note_date": "2026-10-20", "text": "Updated title tags on laptop category pages." } ``` -------------------------------- ### get_user_project JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_user_project.md Illustrative JSON-RPC message for an initialized MCP client to retrieve a PR-CY project by its numeric project ID. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_user_project", "arguments": { "project_id": 123 } } } ``` -------------------------------- ### JSON-RPC call for check_positions with project_id and search_options_id Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/check_positions.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. The example was validated against the advertised input schema and was not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "check_positions", "arguments": { "project_id": 123, "search_options_id": 456 } } } ``` -------------------------------- ### get_serp: Search results with region ID Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md Performs a search using the region ID returned by `get_region`. The `engine` is `yandexLive` and the search-interface language is fixed to `ru`. Replace the demonstration region ID (213) with the actual ID from your connection. ```json { "keyword": "buy laptop", "engine": "yandexLive", "device": "mobile", "top": 10, "region": 213 } ``` -------------------------------- ### get_region JSON-RPC example call Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_region.md Illustrative JSON-RPC message for an initialized MCP client to call the get_region tool. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_region", "arguments": { "engine": "yandexLive", "region": "Moscow" } } } ``` -------------------------------- ### tools/call create_artifact Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/create_artifact.md Creates an HTML artifact and its initial draft. This operation changes data, launches work, or generates content. Only HTML artifacts are supported; start large documents with a short draft and then add or replace content in smaller calls. ```APIDOC ## [JSON-RPC] tools/call create_artifact ### Description Creates an HTML artifact and its initial draft. This operation changes data, launches work, or generates content. Only HTML artifacts are supported; start large documents with a short draft and then add or replace content in smaller calls. ### Method tools/call ### Endpoint N/A (JSON-RPC method) ### Parameters #### Arguments - **type** (string) - Optional - Artifact type; only "html" is supported. Schema default: `"html"`. - **title** (string or null) - Optional - Artifact title or a title filter, depending on the tool. Schema default: `null`. - **content** (string) - Optional - HTML draft content. Schema default: `""`. - **created_by** (string: "assistant" | "user") - Optional - Revision author category. Schema default: `"assistant"`. ### Request Example ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "create_artifact", "arguments": { "type": "html", "title": "SEO report", "content": "SEO report

SEO report

" } } } ``` ### Response #### Success Response - **artifact** (object) - Required in the output schema. - **revision** (object) - Required in the output schema. #### Response Example N/A (not provided in source) ``` -------------------------------- ### Publish documentation to GitHub using publish_github.py Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/context7-submission.md Run from the package folder after selecting the correct GitHub owner. Creates a new public repository, commits the documentation, and verifies the published file tree. Refuses to replace an existing repository. ```bash python scripts/publish_github.py --owner YOUR_GITHUB_ACCOUNT --repository pr-cy-mcp-docs ``` -------------------------------- ### validate_artifact Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md Validates an artifact by its ID. Use before finalizing to ensure the artifact is valid. ```APIDOC ## Tool: validate_artifact ### Description Validates an artifact by its ID. Use before finalizing to ensure the artifact is valid. ### Method Tool call ### Endpoint validate_artifact ### Parameters #### Request Body - **artifact_id** (integer) - Required - The ID of the artifact to validate. ### Request Example { "artifact_id": 123 } ### Response #### Success Response - **valid** (boolean) - Whether the artifact is valid. #### Response Example { "valid": true } ``` -------------------------------- ### JSON-RPC call to get_user_keywords_projects Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_user_keywords_projects.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. The arguments object is empty because project_id is optional and defaults to null. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_user_keywords_projects", "arguments": {} } } ``` -------------------------------- ### tools/call list_articles Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/list_articles.md Lists the articles available to the connected user. This operation retrieves or inspects data. The example call is a JSON-RPC message for an initialized MCP client. ```APIDOC ## [JSON-RPC] tools/call ### Description Lists the articles available to the connected user. This operation retrieves or inspects data. ### Method tools/call ### Endpoint MCP tool: list_articles ### Parameters #### Arguments - **limit** (integer) - Optional - Maximum rows or records requested for this page of results. Schema default: `10`. minimum: 1; maximum: 50. - **offset** (integer) - Optional - Starting offset; follow this tool's minimum and default. Schema default: `0`. minimum: 0. - **sort** (string) - Optional - Sort specification; its shape and allowed fields differ by tool. Schema default: `"-dateUpdated"`. ### Request Example ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "list_articles", "arguments": { "limit": 10, "offset": 0, "sort": "-dateUpdated" } } } ``` ### Response #### Success Response - **result** (array of object) - Required in the output schema. #### Response Example (Not provided in source) ``` -------------------------------- ### tools/call get_keywords_positions_history Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_keywords_positions_history.md Retrieves historical project keyword rankings for a selected search setting. This operation is invoked via the MCP tools/call method with the tool name 'get_keywords_positions_history'. ```APIDOC ## [MCP] tools/call get_keywords_positions_history ### Description Retrieves historical project keyword rankings for a selected search setting. ### Method tools/call ### Endpoint MCP tool: get_keywords_positions_history ### Parameters #### Arguments - **search_options_id** (integer) - Required - Search-settings ID returned by keyword-project discovery. Must be greater than 0. - **date_from** (string or null) - Optional - Start of the requested reporting or change period. Default: null. - **date_to** (string or null) - Optional - End of the requested period; inclusivity depends on the tool. Default: null. - **limit** (integer) - Optional - Maximum rows or records requested for this page of results. Minimum: 1; Maximum: 1000. Default: 100. - **offset** (integer) - Optional - Starting offset; follow this tool's minimum and default. Minimum: 0. Default: 0. ### Request Example ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_keywords_positions_history", "arguments": { "search_options_id": 456, "date_from": "2026-10-01", "date_to": "2026-10-20", "limit": 20 } } } ``` ### Response #### Success Response - **result** (array of object) - Required - The advertised structured output has this top-level field. #### Response Example (Not provided in source) ``` -------------------------------- ### set_artifact_persistent Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md Sets an artifact as persistent using a finalized version number. Draft revision IDs are not accepted; use the version returned by the latest edit. ```APIDOC ## Tool: set_artifact_persistent ### Description Sets an artifact as persistent using a finalized version number. Draft revision IDs are not accepted; use the version returned by the latest edit. ### Method Tool call ### Endpoint set_artifact_persistent ### Parameters #### Request Body - **artifact_id** (integer) - Required - The ID of the artifact. - **version** (integer) - Required - The finalized version number (not a draft revision ID). ### Request Example { "artifact_id": 123, "version": 2 } ### Response #### Success Response - **success** (boolean) - Whether the operation succeeded. #### Response Example { "success": true } ``` -------------------------------- ### tools/call list_artifacts Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/list_artifacts.md Lists HTML artifacts available to the connected user. This operation retrieves or inspects data and accepts optional arguments for pagination, filtering, and sorting. ```APIDOC ## [JSON-RPC] tools/call ### Description Lists HTML artifacts available to the connected user. This operation retrieves or inspects data. ### Method JSON-RPC 2.0 ### Endpoint `tools/call` with `name: "list_artifacts"` ### Parameters #### Arguments - **limit** (integer) - Optional - Maximum rows or records requested for this page of results. Schema default: `10`. Minimum: 1; maximum: 100. - **offset** (integer) - Optional - Starting offset; follow this tool's minimum and default. Schema default: `0`. Minimum: 0. - **title** (string or null) - Optional - Artifact title or a title filter, depending on the tool. Schema default: `null`. - **sort** (string) - Optional - Sort specification; its shape and allowed fields differ by tool. Allowed values: `"id"`, `"-id"`, `"title"`, `"-title"`. Schema default: `"id"`. ### Request Example ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "list_artifacts", "arguments": { "limit": 10, "offset": 0 } } } ``` ### Response #### Success Response - **artifacts** (array of object) - Required in the output schema. - **total** (integer) - Required in the output schema. #### Response Example (No explicit response example provided in the source.) ``` -------------------------------- ### Submit repository to Context7 using submit_context7.py Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/context7-submission.md Run with your Context7 API key provided via the CONTEXT7_API_KEY environment variable. Submits the public repository URL to Context7 and records the returned submission data in submission-result.json. ```bash python scripts/submit_context7.py --repository-url https://github.com/YOUR_GITHUB_ACCOUNT/pr-cy-mcp-docs ``` -------------------------------- ### get_user_limits with project_id for competitorsAnalysis limit Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/limits-and-errors.md The 'competitorsAnalysis' limit requires a project_id and should not be requested as a project-independent limit. This example shows the required input structure for that limit. ```json { "project_id": 123, "limits_filter": ["competitorsAnalysis"] } ``` -------------------------------- ### get_crawler_pages Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md Retrieves pages from the crawler audit. Filters combine with AND. Issue flags operate when true; setting an issue flag to false does not select issue-free pages. ```APIDOC ## get_crawler_pages ### Description Retrieves pages from the crawler audit. Filters combine with AND. Issue flags operate when true; setting an issue flag to false does not select issue-free pages. ### Method Tool ### Endpoint get_crawler_pages ### Parameters #### Request Body - **domain** (string) - Required - The domain to query. - **duplicated_title** (boolean) - Optional - Filter for pages with duplicated titles. - **limit** (integer) - Optional - Maximum number of results to return. - **offset** (integer) - Optional - Number of results to skip. ### Request Example { "domain": "example.com", "duplicated_title": true, "limit": 20, "offset": 0 } ### Response #### Success Response No response fields documented. #### Response Example No response example provided. ``` -------------------------------- ### tools/call get_user_keywords_projects Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_user_keywords_projects.md Lists keyword-ranking projects and their search-engine, language, region and device settings. Use the returned search-settings IDs rather than constructing a search_options_id from a region or device. ```APIDOC ## [JSON-RPC] tools/call get_user_keywords_projects ### Description Lists keyword-ranking projects and their search-engine, language, region and device settings. Use the returned search-settings IDs rather than constructing a search_options_id from a region or device. ### Method tools/call ### Endpoint JSON-RPC method: tools/call with name "get_user_keywords_projects" ### Parameters #### Arguments - **project_id** (integer or null) - Optional - Schema default: null. Must be greater than 0. Project ID from project discovery. ### Request Example ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_user_keywords_projects", "arguments": {} } } ``` ### Response #### Success Response - **result** (array of object) - Required in the output schema. #### Response Example (Not provided in source) ``` -------------------------------- ### read_artifact JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/read_artifact.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "read_artifact", "arguments": { "artifact_id": 123 } } } ``` -------------------------------- ### JSON-RPC call to get_user_projects Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_user_projects.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema; not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_user_projects", "arguments": {} } } ``` -------------------------------- ### JSON-RPC call to get_project_notes Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_project_notes.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema; not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_project_notes", "arguments": { "project_id": 123, "date_from": "2026-10-01", "date_to": "2026-10-20", "limit": 20, "offset": 0 } } } ``` -------------------------------- ### JSON-RPC call to create_project_note Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/create_project_note.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema; not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "create_project_note", "arguments": { "project_id": 123, "name": "Updated category titles", "note_date": "2026-10-20", "text": "Updated title tags on laptop category pages." } } } ``` -------------------------------- ### finalize_artifact JSON-RPC call example Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/finalize_artifact.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema; not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "finalize_artifact", "arguments": { "artifact_id": 123, "revision_id": 456, "message": "Publish the completed SEO report" } } } ``` -------------------------------- ### get_user_keywords_projects Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/index.md List keyword-ranking projects and their search-engine, language, region and device settings. ```APIDOC ## get_user_keywords_projects ### Description List keyword-ranking projects and their search-engine, language, region and device settings. ### Method MCP tool call ### Endpoint `get_user_keywords_projects` ### Parameters None documented. ### Response Returns a list of keyword-ranking projects with their settings. ``` -------------------------------- ### JSON-RPC call to get_serp with keyword, engine, device, and top Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_serp.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_serp", "arguments": { "keyword": "buy laptop", "engine": "google", "device": "desktop", "top": 10 } } } ``` -------------------------------- ### count_article_blocks JSON-RPC Example Call Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/count_article_blocks.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "count_article_blocks", "arguments": { "article_id": "ARTICLE_ID", "search": [ "laptop" ] } } } ``` -------------------------------- ### JSON-RPC call for get_pages_summary Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_pages_summary.md Illustrative JSON-RPC message for an initialized MCP client. Replace demonstration IDs and domains with values from your own connection. Validated against the advertised input schema but not executed against a project. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_pages_summary", "arguments": { "project_id": 123, "source": "gsc", "date_from": "2026-10-01", "date_to": "2026-10-20", "url": { "value": "/blog/", "compare_type": "contains" }, "limit": 20 } } } ``` -------------------------------- ### get_region: Resolve region for search engine Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/workflows.md Resolves the region ID for the search engine. The `engine` is set to `yandexLive` for Yandex search. Replace the demonstration domain and IDs with values from your own connection. ```json { "engine": "yandexLive", "region": "Moscow" } ``` -------------------------------- ### JSON-RPC call for get_keywords Source: https://github.com/costeels/pr-cy-mcp-docs/blob/main/docs/tools/get_keywords.md Illustrative JSON-RPC message to call the get_keywords tool with project_id, limit, and offset arguments. Replace demonstration IDs and domains with your own values. Validated against the input schema but not executed. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_keywords", "arguments": { "project_id": 123, "limit": 20, "offset": 0 } } } ```