manage-bx24-template-mcp

manage-bx24-template-mcp is a skill for Claude Code, Codex from bitrix24/templates-mcp. It costs 0 tokens per session (6,968 once invoked), scanned A, original, MIT.

A project-specific guide for working on a Bitrix24 MCP server built with Nuxt. Bitrix24 is a business platform, and Nuxt is a JavaScript framework for web applications.

In plain words
What is it for?
Use it when developing, reviewing, deploying, or updating the referenced Bitrix24 MCP server.
Why use it?
It gives an agent the project's architecture, authentication, deployment, and dependency-management rules before changes are made.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it when developing, reviewing, deploying, or updating the referenced Bitrix24 MCP server.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/bitrix24/templates-mcp/manage-bx24-template-mcp
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add bitrix24/templates-mcp --skill manage-bx24-template-mcp
Clone the repo
git clone --depth 1 https://github.com/bitrix24/templates-mcp

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for manage-bx24-template-mcp

README.md
[![agentmods](https://agentmods.dev/badge/skills/bitrix24/templates-mcp/manage-bx24-template-mcp/github.svg)](https://agentmods.dev/skills/bitrix24/templates-mcp/manage-bx24-template-mcp)
Your own site
<a href="https://agentmods.dev/skills/bitrix24/templates-mcp/manage-bx24-template-mcp"><img src="https://agentmods.dev/badge/skills/bitrix24/templates-mcp/manage-bx24-template-mcp/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for manage-bx24-template-mcp

Your own site · 80×15
<a href="https://agentmods.dev/skills/bitrix24/templates-mcp/manage-bx24-template-mcp"><img src="https://agentmods.dev/badge/skills/bitrix24/templates-mcp/manage-bx24-template-mcp.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 0 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,968 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.06968
Opus 5 $0.00000 $0.03484
Sonnet 5 $0.00000 $0.01394
Haiku 4.5 $0.00000 $0.00697

Measured 11d ago against content hash 156ceb22f5d1, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

manage-bx24-template-mcp scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/manage-bx24-template-mcp/SKILL.md · 186 lines

How it starts

The opening of the file, as written. The whole thing — 186 lines — stays where its author put it; the contents beside it link to each section on GitHub.

bx24-template-mcp — Agent Skill

Last reviewed: 2026-06-14

You are working on a Bitrix24 MCP server built on Nuxt + @nuxtjs/mcp-toolkit. Read this before making changes.

Project context

  • Repo: https://github.com/bitrix24/templates-mcp
  • Prod: <YOUR_PROD_URL>/mcp — replace with your deployed instance URL
  • Stack: Nuxt 4 (Nitro node-server), @nuxtjs/mcp-toolkit, @bitrix24/b24jssdk-nuxt
  • Auth to Bitrix24: incoming webhook (default), or OAuth 2.0 multi-tenant (opt-in, landed — NUXT_BITRIX24_OAUTH_ENABLED)
  • Auth from Claude to us: Bearer token via middleware
  • Deployment: Docker behind nginx-proxy + acme-companion on shared proxy-net network. CI builds and pushes the image to GHCR on v* tag; the operator deploys via Watchtower in monitor-only mode by default (it notifies on a new :latest but does NOT restart — opt into auto-apply by removing WATCHTOWER_MONITOR_ONLY) or via make redeploy on the host (manual)
  • Dependency updates: npm & GitHub Actions — Renovate Bot (see renovate.json); Dockerfile base images — Dependabot; docker-compose infra images — Renovate's docker-compose manager (see renovate.json). Transitive-dependency security advisories are patched manually via overrides in pnpm-workspace.yaml (pnpm v11 location) — Dependabot/Renovate don't open PRs for nested deps. A blocking pnpm audit --audit-level=moderate CI job guards against regressions.
  • License: MIT

Ground rules

  1. One tool per file in server/mcp/tools/<group>/<name>.ts. Discovery is automatic.
  2. Never call Bitrix24 directly. Always go through useBitrix24Tenant() (the OAuth-aware dispatcher in ~/server/utils/bitrix24-tenant — see ../../docs/OAUTH-DESIGN.md §6). With NUXT_BITRIX24_OAUTH_ENABLED=false (the production default) it falls back to the webhook singleton, so behaviour is byte-identical to a direct useBitrix24() call. When the flag is on, the same call resolves to a per-tenant B24OAuth from the request-scoped ALS. Never call useBitrix24() directly from a tool handler — it bypasses the dispatcher and pins the tool to webhook forever. From the dispatcher result go through the typed helpers in server/utils/sdk-helpers.ts: callV2<T>(b24, method, params, errorContext) — the default for classic methods (tasks.task.add/list/update/ + the seven lifecycle verbs, user.*, task.commentitem.*, …), callV3<T>(…)only for methods that are v3-only (currently tasks.task.get, tasks.task.result.*), and batchV2<T> / batchV3<T>(b24, calls, errorContext) for bulk operations. See the transport-convention block at the top of sdk-helpers.ts for how to pick v2 vs v3. The helpers own the isSuccess / getErrorMessages / transport-error funnel — tool handlers stay short and uniform. Calling b24.actions.*.{call,batch}.make directly from a tool handler is forbidden (it duplicates that funnel and drifts over time); the deprecated b24.callMethod is doubly forbidden — it disappears in SDK 2.0. See adding-tools.md for the canonical template.
  3. Every tool must have a unit test in tests/unit/tools/<group>/<name>.test.ts with the Bitrix24 client mocked.
  4. Every Zod field must have .describe() — the LLM reads it at runtime.
  5. No secrets in code or tests. Use useRuntimeConfig() and .env. When you add/rename/remove a NUXT_* / NITRO_* variable, change the default port or /mcp endpoint, change the connector auth header name/format, alter required webhook scopes, or add a tool needing upfront-seeded portal data, also update the manual-QA scaffold at ../run-manual-qa/references/issue-scaffold.md in the same PR — it mirrors these structural facts. A CI gate enforces the .env.example ↔ scaffold pairing.
  6. Operators talk in names, not ids. When a tool needs a responsibleId / userId / similar, resolve from a name first via b24_user_find. The decision tree:
    1. Run b24_user_find { query: "<name from the operator>" }.
    2. 0 matches → tell the operator nobody matched and ask for a fuller name or last name.
    3. 1 match → use that user's id. No further questions.
    4. N > 1 matches → ask the operator to disambiguate by last name (and position / department if last names also collide). Only ask for a numeric id as the last resort if natural-language disambiguation fails.
  7. Default to REST API v2; reach for v3 only where the method is v3-only. Bitrix24's migration to rest-v3 is gradual and will take a long time, so classic methods (tasks.task.add/list/update/ + the seven lifecycle verbs, user.*, task.commentitem.*, task.checklistitem.*, task.elapseditem.*, task.dependence.* — modify only) all go through callV2/batchV2. The two transports are NOT interchangeable: a classic method on v3 fails with UNKNOWNDTOPROPERTYEXCEPTION (wrong field casing) or "restApi:v3 not support method". Use v3 (callV3; apidocs URLs containing rest-v3/ or /rest/api/, camelCase DTOs) ONLY for methods that have no working v2 form — currently tasks.task.get and tasks.task.result.*. Dependency read-back is unavailable: task.item.getdependson is documented as deprecated upstream and the live-portal smoke (issue #33, 2026-05) confirmed it no longer returns predecessors; tasks.task.get does not expose a dependsOn field via any documented select. No tool ships for this — operators inspect dependencies via the Bitrix24 UI until upstream restores a read path. Bitrix24's v3 tasks.template.checklist.* is for task templates only; it does NOT replace task.checklistitem.* for actual tasks. When unsure which transport a method needs, check apidocs (a /rest/api/ URL + camelCase fields = v3) and default to v2 otherwise.
  8. Read the SDK before reinventing it. Before adding rate limiting, retry, logging, request inspection, or any other cross-cutting concern around Bitrix24 calls — read @bitrix24/b24jssdk's dist/esm/index.d.ts for first-class extension points. The SDK already ships a leaky-bucket RestrictionManager (configured via setRestrictionManagerParams + ParamsFactory), retry with adaptive delay, structured logging (setLogger), and getStats(). Monkey-patching is forbidden (see "Things you must NOT do" below). When in doubt, search the .d.ts for set* / add* / on* / *Manager / *Factory — that's where the hooks live.
  9. Every destructive tool requires an explicit confirmDelete: true from the agent (UNIVERSAL gate). Deletion is irreversible from the MCP's side — Bitrix24 does not surface a "trash" or "undo" for the entities we expose. The rule applies to ANY tool whose primary effect is to wipe an existing record — whether the trailing action is _delete (most common), _remove (removes a link / relationship without deleting either endpoint, e.g. b24_task_dependency_remove), or any future synonym. To prevent LLM mis-interpretation ("посмотри запись 5" → tool ending in _delete instead of _list), every such tool MUST add a confirmDelete: boolean field to its Zod schema and refuse with Bitrix24ToolError code DELETE_NEEDS_CONFIRM unless the agent set it to true. The error message MUST name the target(s) so the agent shows the operator what they're agreeing to. Applies to BOTH single and batch — the confirm is per-call, not per-id, and the agent MUST receive explicit operator agreement (the operator says "да, удали"; "посмотри" is not consent) before setting the flag — even in batch. Auto-confirming defeats the gate and counts as a Rule #9 violation. The shared schema fragment lives at server/utils/define-action-tool.ts (confirmDeleteSchema()); use it directly to keep wording uniform across delete tools. The shared gate assertConfirmedDelete(toolName, targetDescription, confirmed) lives in the same file (closes #32) — call it from every *_delete / *_remove tool handler instead of re-implementing the refusal; each callsite formats its own targetDescription so the LLM sees a domain-specific message. Compliant tools: b24_task_elapsed_time_delete (PR #28), b24_task_result_delete (PR #31), b24_task_checklist_item_delete (PR #31; stacks with Rule #10 below), b24_task_dependency_remove (PR-C).

Read the full file on GitHub · 186 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 186 lines · 0 tokens per session scan A 156ceb22f5d1

Subscribe to this mod's changes

manage-bx24-template-mcp is a skill published in the GitHub repository bitrix24/templates-mcp (6 stars, last pushed 2mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 6,968 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

manage-mcp

Manage MCP servers in Nuxt with @nuxtjs/mcp-toolkit — setup, create tools/resources/prompts, organize with handlers, build interactive MCP Apps, add elicitation/logging/sessions, review, and troubleshoot.

nuxt-modules/mcp-toolkit · 50 tokens

design-mcp-server

Design the tool surface, resources, and service layer for a new MCP server. Use when starting a new server, planning a major feature expansion, or when the user describes a domain/API they want to expose via MCP. Produces a design doc at docs/design.md that drives implementation.

cyanheads/obsidian-mcp-server · 62 tokens

api-telemetry

Catalog of OpenTelemetry instrumentation built into framework @cyanheads/mcp-ts-core — spans, metrics, completion logs, env config, runtime caveats, custom instrumentation patterns, and cardinality rules. Use when enabling OTel export, adding custom spans or metrics in services, debugging missing telemetry, looking up…

cyanheads/obsidian-mcp-server · 85 tokens

api-mirror

Stand up a persistent, self-refreshing local mirror of a bulk upstream dataset with the MirrorService (@cyanheads/mcp-ts-core/mirror). Use when a server wraps a large or slow API and should query a synced local index (embedded SQLite + FTS5) instead of paginating the live API per request.

cyanheads/obsidian-mcp-server · 68 tokens

api-services

API reference for built-in service providers (LLM, Speech, Graph). Use when looking up service interfaces, provider capabilities, or integration patterns.

cyanheads/obsidian-mcp-server · 32 tokens

cmdb-patterns

Create ServiceNow CIs and cmdbrelci relationships, walk upstream/downstream impact, detect orphan/stale CIs, and align discovered CIs with the proper sysclassname hierarchy.

serac-labs/serac · 43 tokens