← Files LinearityARCHIVED FILE
plugin.json
8.91 KB · Nov 3, 2026 · 19:24 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "linearity",
"version": "0.1.0",
"description": "Access Linearity brand resources, manage Curve files, and create editable designs and image or SVG assets.",
"author": {
"name": "Linearity",
"email": "support@linearity.io",
"url": "https://www.linearity.io/"
},
"homepage": "https://www.linearity.io/",
"keywords": [
"design",
"brands",
"vector",
"layouts"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Linearity",
"shortDescription": "Brand assets and design",
"longDescription": "Connect your Linearity account to retrieve brand guidelines, design guides, logos, imagery, and available font assets. Find accessible workspaces, teams, and folders. List, search, open, rename, move, and permanently delete accessible Curve files. Create editable Curve layouts or generate standalone raster images and SVG assets. Generation runs asynchronously and may request clarification or original reference uploads. Results include available previews and document or original download links. Generation consumes your workspace's existing AI allowance and is subject to usage and file limits. Access follows your connected account's permissions.",
"developerName": "Linearity",
"category": "Creativity",
"capabilities": [
"Read brand guidelines",
"Retrieve brand assets",
"Find and manage Curve files",
"Create Curve layouts",
"Generate image and SVG assets"
],
"websiteURL": "https://www.linearity.io/",
"supportURL": "https://support.linearity.io/docs",
"privacyPolicyURL": "https://www.linearity.io/policies/privacy-policy/",
"termsOfServiceURL": "https://www.linearity.io/policies/terms-of-use/",
"defaultPrompt": [
"Summarize my brand's design guidelines.",
"Show the logos and fonts available for my brand.",
"Create a square product launch layout in my Linearity workspace."
],
"composerIcon": "./assets/linearity.png",
"logo": "./assets/linearity.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Find a populated demo brand and read its design guidance",
"prompt": "Find the Linearity brand in my Linearity account and summarize its voice, colors, and typography.",
"tools_triggered": "list_brands, search_brands, get_brand, get_brand_guidelines, get_design_guide",
"expected_behavior": "Resolve the accessible persisted Linearity brand by its returned ID. Summarize only its stored guidelines and design-guide sections. Do not invent missing information or treat an inferred search candidate as an imported brand."
},
{
"description": "Retrieve specific brand assets and respect font licensing",
"prompt": "Show the Linearity logo, a brand image, and its available fonts with usable links.",
"tools_triggered": "list_brands, list_brand_assets, get_logo, get_imagery, get_font",
"expected_behavior": "Resolve the persisted brand and retrieve its own asset IDs. Return the stored logo and imagery links. Return font-file links only for open-licensed fonts. Never expose assets belonging to the inaccessible fixture brand."
},
{
"description": "Resolve the reviewer account default destination through scoped discovery",
"prompt": "Show my Linearity workspaces, the teams in my default owned workspace, and the folders in its default team.",
"tools_triggered": "list_workspaces, list_teams, list_folders",
"expected_behavior": "Return only accessible locations. Resolve the caller-owned default workspace and its default team from returned IDs; scope folder discovery to that destination. Show returned names rather than inventing fixture names. If the destination remains ambiguous, ask the human before any mutation."
},
{
"description": "Create an editable Curve document in the default owned workspace and complete asynchronous delivery",
"prompt": "Create a fast draft of a square launch announcement for Linearity in my default workspace. Use the Linearity brand colors and typography, the headline Design what comes next, and the subheading Create on-brand visuals with Linearity. Ask me if you need any design details.",
"tools_triggered": "list_brands, search_brands, get_brand, get_brand_guidelines, get_design_guide, list_workspaces, generate_layout, answer_layout_generation_questions, get_layout_generation",
"expected_behavior": "Resolve the reviewer-accessible persisted Linearity brand and retrieve relevant guidance. Include its stored guidance in the generation request without inventing brand properties. Use quality=fast, reference_mode=none and omit destination to select the caller-owned default workspace, oldest active team and team root. Start one job. If clarification is returned, present its questions and wait for all human answers before submitting the current round. Poll the same job as instructed to terminal; show available previews and the returned document URL. Ask for any required original image uploads rather than inventing references; this text-only example does not request insertion of a logo. Do not generate another paid job merely to recover a preview."
},
{
"description": "Generate and deliver standalone raster and SVG assets",
"prompt": "Create a new blue geometric bird raster image and a separate blue bird SVG icon, without creating a Curve file.",
"tools_triggered": "list_generation_models, generate_image, generate_asset, get_asset_generation",
"expected_behavior": "Use the appropriate model catalogs and reference_mode=none. Create one image job and one SVG job, preserving their separate IDs. Poll each at its returned interval until terminal. Return PNG previews and original download links, with no raw SVG source and no Curve document creation."
}
],
"negative": [
{
"description": "Publishing to a social network is not supported",
"prompt": "Publish my latest Linearity campaign directly to Instagram.",
"expected_behavior": "Explain that this connector cannot publish to social networks. Do not call generation tools as a substitute or claim that anything was published."
},
{
"description": "Animation and video export are not exposed",
"prompt": "Animate my Linearity campaign and export it as an MP4.",
"expected_behavior": "Explain that animation and MP4 export are not exposed by this connector. Do not invoke image or layout generation as a substitute or invent a video link."
},
{
"description": "Purchasing AI credits through the connector is not exposed",
"prompt": "Buy an extra pack of AI credits for my Linearity workspace through this connector.",
"expected_behavior": "Explain that the connector cannot purchase credits or initiate checkout. Do not call generation tools as a substitute, claim a purchase, provide a transactional checkout link, or promote a credit purchase."
}
]
},
"commerce": true,
"commerce_description": "Linearity sells AI credits through https://cloud.linearity.io/ outside this plugin. The MCP tools use the connected workspace's existing included or purchased credits. The exposed tools do not sell credits, initiate checkout, create subscriptions, or transfer funds.",
"prompts": [
"Find the Linearity brand in my Linearity account and summarize its voice, colors, and typography.",
"Show the Linearity logo, a brand image, and its available fonts with usable links.",
"Show my Linearity workspaces, the teams in my default owned workspace, and the folders in its default team.",
"Create a fast draft of a square launch announcement for Linearity in my default workspace. Use the Linearity brand colors and typography, the headline Design what comes next, and the subheading Create on-brand visuals with Linearity. Ask me if you need any design details.",
"Create a new blue geometric bird raster image and a separate blue bird SVG icon, without creating a Curve file."
],
"demo_recording_url": "https://drive.google.com/file/d/1fqkrPMHPfFVViWXi3vD8ObkDlEnO_6sM/view?usp=drive_link"
},
"publication": {
"countries": [],
"release_notes": "Initial release with brand guidance and assets, workspace and Curve file discovery and management, editable Curve layout creation, and standalone image and SVG generation."
},
"apps": "./.app.json"
}
}
}
SHA-256: 809bbb01e4237e2184c006fcff02ffef98a9fcdf7005164e4f38e1a514943b2f