Repository navigation
Releases: zai-one/keysso-mcp
Release list
Keysso MCP 0.6.0
- Upgrade note:
KEYSSO_TOOLSETS=allnow also enables the new opt-injobs,monitoringandapitoolsets (paid and writing calls, each still behind confirm and operator approval). Unset ordefaultkeeps the 0.5.0 surface; list toolsets explicitly if you relied onallmeaning the previous set. - Optional lazy tool loading (
KEYSSO_TOOL_LOADING=eager|lazy, defaulteager= unchanged): lazy lists a small core pluskeysso_enable_toolsets(toolsets with one-line description and token cost); enabling registers the tools at runtime and sendsnotifications/tools/list_changed. Allowlists, read-only mode and approval gates still apply. Setup wizard asks eager vs lazy. Startup tokens (tools/list + instructions, ≈chars/4): eager ≈1726, lazy ≈1013. Scope: enablement is per MCP session (FastMCP session visibility), so one client's enabled toolsets never appear for another. The HTTP transport here is stateless (every request is its own session), so enabled toolsets do not persist there: for shared HTTP useeagerorKEYSSO_TOOLSETS. README lazy section lists verifiedtools/list_changedclient support with sources. - Security (approvals): approvals are bound to the preparing principal and to the server's account, API origin and credential fingerprint, so ledgers sharing a state directory cannot spend each other's approvals; an approval is reserved only after authorization, delegation replay checks and validation, and a request that never reached Keys.so (admission denied, cooldown, oversize) releases it instead of burning it.
- Fix (approvals): an approved paid/writing call gets exactly one upstream attempt; a timeout, transport error or 5xx after dispatch returns
provider_outcome_unknown(retryable=false), is audited asunknown, and the next approval for the identical request carriesprevious_outcome_unknownfor the operator. - Security (
keysso_api):GET serp/<id>/csv(queues a provider export job, per apidoc) needs an operator approval like non-GET calls; requests are bounded before an approval is stored (1 MiB, every nested list ≤ 10,000 items, depth 8), and pending approvals have per-principal and total quotas (approval_quota_exceeded). - Fix (
keysso_monitoring):enginefollows apidoc (0 Yandex desktop, 1 Yandex mobile, 3 Google mobile, 4 Google desktop; previously 1 was described as Google and 3/4 were rejected);tracking_itemaccepts http(s) URLs as documented, not only bare domains and paths. - Operator approvals (
keysso-approvalCLI): every limit-spending job (confirm=true) and every non-GETkeysso_apicall needs an operator-accepted, single-use, request-boundapproval_id. - Approval store hardening: prepare/accept/consume hold an exclusive file lock, so an operator acceptance written from a stale read can no longer re-arm an approval the server just consumed;
operator_commandpins--pathto the server's approval file (works from any directory, withoutKEYSSO_STATE_PATH);keysso-approval --listshows the exact request the digest covers.keysso_apirejects./..path segments (HTTP clients collapse them into unlisted endpoints) and names the allowed paths on error; an invalidconfirm=truestart returns avalidation_failedenvelope. Delegatedrequest_hashrules for the opt-in tools are in docs/REPORTS.md. keysso_api(opt-in toolsetapi): documentedtools/*,wordstat/*,serp/*, clustering import/list, update-frequency, node keywords, monitoring PATCH/DELETE/link-words.- Report
filterparameter (apidoc defaultFilter). - Review fixes:
concurents_by_keywordsresult uses documentedview=organic|contextand sendsbase;extended_keywordsstart takessimilarity(apidocconfig); invalidtop/top_numberare rejected instead of silently replaced;organic/keywords/bypageandorganic/concurent_pagesrequirepage_url. keys_so_queryallowlist covers the rest of the read API (apidoc.keys.so, 2026-10): competitor pages, keywords by page and competitor pages (page_url), organic keywords URL filter (url,includeSubLevels), lost pages, organic AI answers, outlinks / outlink domains, links by IP and subnet, top-domain visibility, Direct ads by phrase (kid), RSYA, subdomains (id), robots.txt history (date), Zen dashboard/channels/publications, projects and project competitors, saved group reports (/report/group/list,/report/group/<section>/<rid>).- New opt-in toolsets (off by default, so the default tool list and token budget stay flat):
jobs—keysso_keyword_job(keywords_by_list, extended_keywords, concurents_by_keywords: start -> status -> result) andkeysso_clustering(create -> build -> status -> folders -> keywords);monitoring—keysso_monitoring(projects, entity, dates, report, compare, chart, limits; create from a clustering uid or phrases; start a refresh). Withoutconfirm=trueevery start returns a free preview; with it the call returns anapproval_idfor the operator (see above);KEYSSO_READ_ONLY=1removes these tools. - Skill
keysso-semantic-core(self-contained semantics -> clusters -> positions), guidekeysso://guide/jobs, promptsemantic_core. - Router: one line per intent (RU/EN words -> first tool; skill; guide) plus
keysso://playbookand the generatedkeysso://guide/tool-map(every tool by toolset) as fallbacks.KEYSSO_TOOLSETSacceptsdefaultandall. tests/test_routing_eval.py+tests/evals/routing_cases.json: 22 casual RU/EN requests (incl. paraphrases and negative cases); fails if any tool, skill or guide is unreachable from the router.
Source: b13808d · Changes: v0.5.0...v0.6.0
Keysso MCP 0.5.0
- License: LicenseRef-ZAI-ONE 2.0 (source-available). Free install and use for yourself and your organisation, including commercial work; issues and pull requests welcome; copying code into other projects, redistribution, embedding and competing hosted services need written permission. Earlier releases keep their LicenseRef-ZAI-ONE 1.0 terms (see NOTICE). README first screen: one-line scope, why this MCP, maintenance and update check.
- Agent layer: router
instructions(≤1200 chars: when Keys.so vs Topvisor/Arsenkin, quota rules), compact template descriptions and titles. - Toolsets
meta,reports,ai_tracker(KEYSSO_TOOLSETS,KEYSSO_TOOLS,KEYSSO_DISABLED_TOOLS,KEYSSO_READ_ONLY);keysso://toolsets. - Resources
keysso://playbook,keysso://guide/{metrics-glossary,ai-tracker,errors}; promptscompetitor_research,content_gap,phrase_report. - Self-contained skills
keysso-competitor-research,keysso-content-gap,keysso-phrase-reportwith references and templates; Claude Code plugin manifest, Cursor rule,.agents/skills. - New
keysso_limits(GET /limits/all);fields=[...]column projection onkeysso_domain_reportandkeysso_compare_domains(trims rows after fetch, so it saves tokens, not quota; part of the delegation hash only when provided; names absent from every row are listed inmissing_fields). scripts/token_budget.py+ tests gate instruction, description and SKILL.md sizes.- Install snippets and the plugin manifest pin
git+https://github.com/zai-one/keysso-mcp@v0.5.0.
Source: 647315f · Changes: v0.4.0...v0.5.0
Keysso MCP 0.4.0
— Ad archives, AI tracker and update hints
keys_so_query: monthly Yandex ad archives from Keys.so API 1.0.24–1.0.26 (context/ads/archive,context/keywords/archive,context/keywords/byads/archive,context/keyword/ads/archiveand theirmonthslists) withmonth,keywordandfullparameters;keyword_dashboardandsimilarkeysphrase reports.- Sorts that Keys.so now rejects with HTTP 400 fail locally; up to three comma-separated sort fields are accepted.
keysso_ai_tracker: read-only AI tracker reports (projects, entity, dates, report, mentions, citation, reference, sources, competitors, prompt).keysso_check_update: suggests an update from the latest GitHub release and never installs; 24h cache, offline-safe, cached startup hint, opt out withKEYSSO_DISABLE_UPDATE_CHECK=1.- Update check hardening: only plain version tags (
v1.2.3) are accepted, the cache is re-validated on read, failures back off for 30 minutes andforce_refreshruns at most once a minute. keysso_check_updategoes through the same authorization and audit as the other tools without spending Keys.so quota.- MCP tool annotations (
readOnlyHint,idempotentHint) on every tool. - Strict input types: wrongly typed
keys_so_queryparameters fail withvalidation_failedbefore any provider call.
English setup · Описание по-русски
Download the wheel or source archive below and verify SHA256SUMS. The installed setup
command generates local JSON/TOML client configuration; a source checkout is optional.
Your own provider credentials and API permissions remain required.
Verified on Python 3.12, 3.13 and 3.14 on Linux and Windows: existing contracts,
synthetic functional tests, clean wheel installation and real MCP stdio checks.
Live provider accounts and production deployment were outside this release verification.
GitHub verification · Source commit 1a0de8baea16bc5e90e247425b378e6f12a43a1a.
ZAI.ONE is a digital agency for websites, SEO, advertising and analytics.
ZAI.ONE — интернет-агентство: сайты, SEO, реклама и аналитика.
Contact / Написать в Telegram about setup and integration.
LicenseRef-ZAI-ONE permits installation and internal use on your own or authorized
accounts; it is not an open-source license. Third-party rights remain unchanged.
Stars are welcome. Request changes through Issues.
For a source build, install the generated versioned wheel:
uv build
python -m pip install dist/zai_keysso_mcp-0.4.0-py3-none-any.whlKeysso MCP 0.3.0
— Reports you can work with
- Typed domain reports and domain comparisons with bounded pagination, provenance and CSV export.
- Preserve per-attempt quotas across report pages and redact provider fields before CSV conversion.
- Installable setup wizard and JSON/TOML client snippets that work outside the checkout.
- English and Russian agency information, integration contact and package installation guide.
English setup · Описание по-русски
Download the wheel or source archive below and verify SHA256SUMS. The installed setup
command generates local JSON/TOML client configuration; a source checkout is optional.
Your own provider credentials and API permissions remain required.
Verified on Python 3.12, 3.13 and 3.14 on Linux and Windows: existing contracts,
synthetic functional tests, clean wheel installation and real MCP stdio checks.
Live provider accounts and production deployment were outside this release verification.
GitHub verification · Source commit e4ad75236ff0039732862925e36b340d8a7f8b25.
ZAI.ONE is a digital agency for websites, SEO, advertising and analytics.
ZAI.ONE — интернет-агентство: сайты, SEO, реклама и аналитика.
Contact / Написать в Telegram about setup and integration.
LicenseRef-ZAI-ONE permits installation and internal use on your own or authorized
accounts; it is not an open-source license. Third-party rights remain unchanged.
Stars are welcome. Request changes through Issues.
For a source build, install the generated versioned wheel:
uv build
python -m pip install dist/zai_keysso_mcp-0.3.0-py3-none-any.whlKeysso MCP 0.2.0
Install Keysso MCP on your own computer or server and connect an MCP client.
- Quick start and installation guide.
- Changes in 0.2.0.
- Python 3.12, 3.13 and 3.14 verified on Linux and Windows. Clean wheel installation, real stdio discovery and source-distribution builds passed using synthetic fixtures.
- Provider credentials and API access remain required. Live provider validation is an operator step.
- Proprietary LicenseRef-ZAI-ONE: install and use for your own or authorized accounts. Separately identified third-party licenses remain unchanged. Stars welcome; request improvements through Issues.
Download the wheel or source archive below; verify it against SHA256SUMS.
Exact source commit: c67f39f6f4315d7686e3c8e8bbf2197549891a13. Verification run.