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.
npx skills add IvanYangYangXi/artclaw_bridge --skill blender-contextgit clone --depth 1 https://github.com/IvanYangYangXi/artclaw_bridgeWrote 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.
[](https://agentmods.dev/skills/ivanyangyangxi/artclaw_bridge/blender-context)<a href="https://agentmods.dev/skills/ivanyangyangxi/artclaw_bridge/blender-context"><img src="https://agentmods.dev/badge/skills/ivanyangyangxi/artclaw_bridge/blender-context/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.
<a href="https://agentmods.dev/skills/ivanyangyangxi/artclaw_bridge/blender-context"><img src="https://agentmods.dev/badge/skills/ivanyangyangxi/artclaw_bridge/blender-context.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00077 | $0.02453 |
| Opus 5 | $0.00039 | $0.01226 |
| Sonnet 5 | $0.00015 | $0.00491 |
| Haiku 4.5 | $0.00008 | $0.00245 |
Grade A, and why
blender-context 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 12d 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.
How it starts
The opening of the file, as written. The whole thing — 285 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Blender 编辑器上下文查询
获取当前 Blender 编辑器状态、选中对象、场景信息、文件名、视口相机等。
⚠️ 仅适用于 Blender — 通过
run_python执行
获取选中物体列表
import bpy
selected = bpy.context.selected_objects
active = bpy.context.active_object
print(f"选中物体数量: {len(selected)}")
for obj in selected:
is_active = " ★" if obj == active else ""
print(f" {obj.name} (类型: {obj.type}){is_active}")
if active:
print(f"\n激活物体: {active.name}")
else:
print("\n无激活物体")
获取场景信息
import bpy
scene = bpy.context.scene
filepath = bpy.data.filepath
print(f"文件路径: {filepath or '(未保存)'}")
print(f"文件名: {bpy.path.basename(filepath) or '(未保存)'}")
print(f"场景名称: {scene.name}")
print(f"物体总数: {len(bpy.data.objects)}")
print(f"网格数量: {len(bpy.data.meshes)}")
print(f"材质数量: {len(bpy.data.materials)}")
print(f"纹理/图像数量: {len(bpy.data.images)}")
print(f"帧范围: {scene.frame_start} - {scene.frame_end}")
print(f"当前帧: {scene.frame_current}")
print(f"FPS: {scene.render.fps}")
print(f"渲染引擎: {scene.render.engine}")
print(f"渲染分辨率: {scene.render.resolution_x} x {scene.render.resolution_y}")
# 按类型统计物体
from collections import Counter
type_counts = Counter(obj.type for obj in bpy.data.objects)
print("\n物体类型统计:")
for obj_type, count in sorted(type_counts.items()):
print(f" {obj_type}: {count}")
获取激活物体详情
import bpy
import math
active = bpy.context.active_object
if active is None:
print("⚠️ 没有激活物体")
else:
loc = active.location
rot = active.rotation_euler
scl = active.scale
print(f"名称: {active.name}")
print(f"类型: {active.type}")
print(f"位置: ({loc.x:.3f}, {loc.y:.3f}, {loc.z:.3f})")
print(f"旋转: ({math.degrees(rot.x):.1f}°, {math.degrees(rot.y):.1f}°, {math.degrees(rot.z):.1f}°)")
print(f"缩放: ({scl.x:.3f}, {scl.y:.3f}, {scl.z:.3f})")
print(f"可见: {active.visible_get()}")
print(f"隐藏: {active.hide_viewport}")
# 材质信息
if hasattr(active.data, 'materials') and active.data is not None:
mats = active.data.materials
print(f"\n材质 ({len(mats)} 个):")
for i, mat in enumerate(mats):
if mat:
print(f" [{i}] {mat.name}")
else:
print(f" [{i}] (空槽位)")
# 修改器信息
if hasattr(active, 'modifiers'):
mods = active.modifiers
if mods:
print(f"\n修改器 ({len(mods)} 个):")
for mod in mods:
print(f" {mod.name} (类型: {mod.type})")
# 约束信息
if hasattr(active, 'constraints'):
cons = active.constraints
if cons:
print(f"\n约束 ({len(cons)} 个):")
for con in cons:
print(f" {con.name} (类型: {con.type})")
# 网格数据(如果是 MESH 类型)
if active.type == 'MESH' and active.data:
mesh = active.data
print(f"\n网格数据:")
print(f" 顶点数: {len(mesh.vertices)}")
print(f" 边数: {len(mesh.edges)}")
print(f" 面数: {len(mesh.polygons)}")
print(f" UV 层: {len(mesh.uv_layers)}")
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.
- 12d ago First seen · 285 lines · 77 tokens per session scan A 932d81204fd7
blender-context is a skill published in the GitHub repository IvanYangYangXi/artclaw_bridge (35 stars, last pushed 4mo ago), licensed MIT. It adds 77 tokens to every session and 2,453 once invoked, about $0.0004 per session on Opus 5. 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-30.
Other skills, from other repositories
dcc-mcp-core
Foundation library for the DCC Model Context Protocol (MCP) ecosystem. Provides Rust-powered action management, skills system, IPC transport, MCP Streamable HTTP server (2025-03-26 spec, with 2025-06-18 and 2025-11-25 awareness), sandbox security, shared memory, screen capture, USD scene support, and telemetry for…
dcc-cua
A routing guide for controlling application interfaces through the project’s DCC-CUA system. DCC applications are digital-content tools such as Maya, Blender, and Houdini.
marketplace-publish-extension
Infrastructure skill — publish (register/update) an extension package to a marketplace catalog. Reads the extension's SKILL.md frontmatter, constructs a CatalogEntry, and upserts it into the target marketplace.json. Optionally commits and pushes when the catalog source is a git repository. Use after scaffolding an…
clawhub-compat
Example skill — demonstrates full compatibility with the ClawHub/OpenClaw skill format. Use as a reference when creating skills for both the dcc-mcp-core ecosystem and ClawHub marketplace. Not intended for production use — this is an authoring reference only.
example-layered-skill
Example skill — reference implementation of the internal layered architecture pattern (Tools / Services / Utils) for complex skills with shared business logic. Use as a template when a skill outgrows a single scripts/execute.py file. Not intended for production use — see docs/guide/skills.md for the architectural…
marketplace-create-extension
Infrastructure skill — scaffold a new marketplace extension package (SKILL.md + tools.yaml + scripts/) with MIT-0 licensing. Use when creating a publishable marketplace entry for any DCC host. Not for editing existing extensions or driving live DCC scenes — use domain skills for that.