>-
Mila Skill is a free testing & qa skill that configures AI coding agents to >-.
Its 838-word system prompt specializes your agent in testing & qa with structured methodology and proven output formats. Copy the prompt below to use in any AI coding agent.
[Mila](https://mila.gg) is a collaborative platform for documents, spreadsheets, and slide presentations. This skill teaches you how to interact with Mila's REST API and MCP tools to manage content programmatically.
Get started at [https://mila.gg](https://mila.gg) -- create an account, generate an API key, and start building.
All requests require a [Mila](https://mila.gg) API key. Keys use the format mila_sk_*.
documents:read, documents:write, sheets:read, sheets:write, slides:read, slides:write).Include the API key as a Bearer token:
Authorization: Bearer mila_sk_your_key_hereBase URL: https://api.mila.gg/v1
The MCP server uses the same API keys. Include the key in the Authorization header when connecting to the MCP endpoint.
MCP endpoint: https://mcp.mila.gg
If the user wants to connect Mila to an AI client via MCP, use these configurations:
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"mila": {
"url": "https://mcp.mila.gg",
"headers": {
"Authorization": "Bearer mila_sk_your_key_here"
}
}
}
}Cursor (.cursor/mcp.json):
{
"mcpServers": {
"mila": {
"url": "https://mcp.mila.gg",
"headers": {
"Authorization": "Bearer mila_sk_your_key_here"
}
}
}
}VS Code Copilot (.vscode/mcp.json):
{
"servers": {
"mila": {
"type": "http",
"url": "https://mcp.mila.gg",
"headers": {
"Authorization": "Bearer mila_sk_your_key_here"
}
}
}
}curl -X POST https://api.mila.gg/v1/documents \
-H "Authorization: Bearer mila_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{"title": "Meeting Notes", "content": "<h1>Meeting Notes</h1><p>Discussed roadmap.</p>"}'MCP tool: create_document with title and content (HTML string).
curl -X POST https://api.mila.gg/v1/sheets \
-H "Authorization: Bearer mila_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{"title": "Budget", "cells": {"A1": {"value": "Item"}, "B1": {"value": "Cost"}, "A2": {"value": "Hosting"}, "B2": {"value": 99}}}'MCP tool: create_sheet with title and cells (A1 notation object).
curl -X POST https://api.mila.gg/v1/slides \
-H "Authorization: Bearer mila_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{"title": "Demo", "data": [{"html": "<div style=\"display:flex;align-items:center;justify-content:center;height:100%\"><h1 style=\"font-size:48px\">Hello</h1></div>", "background": "#ffffff", "notes": "Title slide"}]}'MCP tool: create_slide_presentation with title and data (array of slide objects).
All resource IDs are opaque strings (e.g. "xK9mP2wQ"). Use them as-is in URLs and parameters.
List endpoints accept limit (1-100, default 50) and offset (default 0). Responses include a pagination object:
{
"data": [...],
"pagination": { "total": 42, "limit": 50, "offset": 0 }
}List endpoints accept sort (created_at, updated_at, last_edited_at, title) and order (asc, desc).
Content can belong to a server (workspace) or to personal files.
server_id: returns all contentserver_id=personal: returns only personal filesserver_id=<id>: returns content in that serverserver_id in the request body when creating content to place it in a server. Omit for personal files.All responses use this structure:
{
"success": true,
"data": { ... }
}Errors return:
{
"success": false,
"error": { "message": "Description of the error" }
}<script> tags are stripped.{"A1": {"value": "Name"}, "B1": {"value": 42}}). Formulas start with =.html, background, and notes fields.For complete endpoint documentation with all parameters, response shapes, and examples:
| Tool | Description |
|---|---|
| list_servers | List all servers (workspaces) |
| list_documents | List documents with pagination and filtering |
| get_document | Get a document with full content |
| create_document | Create a document with HTML content |
| update_document | Update title and/or content |
| delete_document | Delete a document |
| append_to_document | Append HTML to a document |
| list_sheets | List workbooks with tab metadata |
| get_sheet | Get a workbook with all tabs and cells |
| create_sheet | Create a workbook with an initial tab |
| update_sheet | Update workbook title |
| delete_sheet | Delete a workbook and all tabs |
| get_sheet_tab | Get a single tab with cell data |
| create_sheet_tab | Add a tab to a workbook |
| update_sheet_tab | Update cells, name, color, or grid size |
| delete_sheet_tab | Remove a tab from a workbook |
| append_rows | Append rows of data to a tab |
| list_slides | List presentations |
| get_slide_presentation | Get a presentation with all slides |
| create_slide_presentation | Create a presentation |
| update_slide_presentation | Update title, slides, theme, or aspect ratio |
| delete_slide_presentation | Delete a presentation |
| append_slides | Add slides to a presentation |
Mila Skill is a free testing & qa skill for AI coding agents. >-. It provides a specialized system prompt that configures your agent with testing & qa expertise.
Copy the system prompt below and paste it into your CLAUDE.md file or Claude Code's custom instructions to activate Mila Skill.
Mila Skill is compatible with Claude Code, Cursor, GitHub Copilot, Windsurf, OpenClaw, Cline, and any AI agent that supports custom system prompts or .cursorrules files.
Yes, Mila Skill is completely free and open source. The full source is available on GitHub at https://github.com/mila-gg/mila-skill/blob/main/SKILL.md. You only need a subscription to the AI agent you use it with.
Weekly roundup of top Claude Code skills, MCP servers, and AI coding tips.