gsap-mcp
A static code generation server for GSAP animations. It provides 18 tools to generate tween, timeline, easing, plugin effects (ScrollTrigger, SplitText, MorphSVG, etc.), and developer utilities without any GSAP runtime dependency.
README
gsap-mcp
MCP server for generating GSAP animation code — no runtime dependency, pure static code generation.
Installation
npm install
npm run build
Configuration
Add to your Claude Desktop config (~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"gsap": {
"command": "node",
"args": ["/absolute/path/to/gsap-mcp/dist/index.js"]
}
}
}
Tools (18)
Core (4)
| 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" } |
Plugins (7)
| 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" } |
Dev (7)
| 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" } |
Architecture
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.json
Key design decisions:
- No GSAP runtime dependency — the server generates code strings using static knowledge bases and template builders. It never imports or executes GSAP itself.
- Testable core functions — every tool exports a
generateXxxCode(params)function that is directly testable without MCP infrastructure. - MCP SDK pattern — each tool exports a
registerXxxTool(server)function that callsserver.registerTool()with Zod v4 input schemas. - CodeBuilder — fluent builder that manages imports, plugin registration, and body lines, then assembles them with
build()(full) orbuildSnippet()(body only).
Development
# 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.ts
Adding a new tool
- Create
src/tools/<category>/<name>.ts - Export
generateXxxCode(params): XxxResult(testable core logic) - Export
registerXxxTool(server: McpServer)(MCP registration) - Add import + register call in
src/index.ts - Create
tests/tools/<name>.test.ts - Run
npx tsc --noEmit && npx vitest run
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.