Gsap Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Gsap Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MCP server for generating GSAP animation code — no runtime dependency, pure static code generation.
npm install
npm run buildAdd to your Claude Desktop config (~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"gsap": {
"command": "node",
"args": ["/absolute/path/to/gsap-mcp/dist/index.js"]
}
}
}| Tool | Description | Example Input |
|---|---|---|
gsap_tween | Generate gsap.to/from/fromTo tweens | { "target": ".box", "method": "to", "properties": { "opacity": 1, "x": 100 } } |
gsap_timeline | Build multi-step GSAP timelines | { "steps": [{ "target": ".a", "method": "to", "properties": { "x": 100 } }] } |
gsap_easing | Look up and preview GSAP easing functions | { "action": "lookup", "ease": "power2.out" } |
gsap_preset | Generate common animation presets (fadeIn, slideUp, etc.) | { "preset": "fadeIn", "target": ".hero" } |
| Tool | Description | Example Input |
|---|---|---|
gsap_scrolltrigger | ScrollTrigger-powered scroll animations | { "target": ".section", "mode": "standalone", "trigger": ".section" } |
gsap_splittext | SplitText character/word/line animations | { "target": ".heading", "splitType": "chars", "animation": "from" } |
gsap_morphsvg | SVG shape morphing with MorphSVGPlugin | { "target": "#shape1", "shape": "#shape2" } |
gsap_drawsvg | SVG stroke drawing animations | { "target": ".path", "from": "0%", "to": "100%" } |
gsap_motionpath | Animate elements along motion paths | { "target": ".dot", "path": "#circuit" } |
gsap_flip | FLIP animation state transitions | { "targets": ".cards", "action": "full" } |
gsap_textplugin | Text replacement and scramble effects | { "target": ".text", "text": "Hello!", "type": "replace" } |
| Tool | Description | Example Input |
|---|---|---|
gsap_analyze | Static analysis for performance, best practices, accessibility | { "code": "gsap.to('.box', { width: 100 })" } |
gsap_controls | Play/pause/reverse/seek control code | { "action": "play", "target": "timeline" } |
gsap_utilities | GSAP utility methods (clamp, mapRange, snap, etc.) | { "method": "clamp", "params": { "min": 0, "max": 100, "value": 150 } } |
gsap_matchmedia | Responsive animations with gsap.matchMedia() | { "breakpoints": [{ "name": "Mobile", "query": "(max-width: 768px)", "animations": [] }] } |
gsap_debug | Debug utilities: markers, GSDevTools, logging, slow-motion | { "action": "slowmo", "options": { "timeScale": 0.25 } } |
gsap_performance | FPS monitoring, code optimization, frame profiling | { "action": "monitor", "options": { "metrics": ["fps"] } } |
gsap_framework_integration | Framework-specific code for React/Vue/Angular/Svelte | { "framework": "react", "type": "hook" } |
gsap-mcp/
├── src/
│ ├── index.ts # Entry point — registers all 18 tools
│ ├── generators/
│ │ ├── code-builder.ts # Fluent builder for imports + body assembly
│ │ └── templates.ts # formatGsapVars, formatPosition, wrapInFunction
│ ├── knowledge/
│ │ ├── easings.ts # Easing function database
│ │ ├── properties.ts # CSS/GSAP property mappings + performance data
│ │ └── best-practices.ts # Optimization rules, performance tips, pitfalls
│ └── tools/
│ ├── core/ # Tween, timeline, easing, presets
│ ├── plugins/ # ScrollTrigger, SplitText, MorphSVG, etc.
│ └── dev/ # Analyze, controls, utilities, debug, etc.
├── tests/ # Mirrors src/ structure, 23 test files
├── dist/ # Built output (tsc)
├── package.json
└── tsconfig.jsonKey design decisions:
generateXxxCode(params) function that is directly testable without MCP infrastructure.registerXxxTool(server) function that calls server.registerTool() with Zod v4 input schemas.build() (full) or buildSnippet() (body only).# Run all tests
npx vitest run
# Watch mode
npx vitest
# Type-check
npx tsc --noEmit
# Build
npx tsc
# Dev mode (tsx)
npx tsx src/index.tssrc/tools/<category>/<name>.tsgenerateXxxCode(params): XxxResult (testable core logic)registerXxxTool(server: McpServer) (MCP registration)src/index.tstests/tools/<name>.test.tsnpx tsc --noEmit && npx vitest runMIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.