Skip to content

feat(dt): add Figma MCP integration for DT artifact export#1222

Open
DigitalMartyn wants to merge 5 commits intomicrosoft:mainfrom
DigitalMartyn:feature/figma-mcp-integration
Open

feat(dt): add Figma MCP integration for DT artifact export#1222
DigitalMartyn wants to merge 5 commits intomicrosoft:mainfrom
DigitalMartyn:feature/figma-mcp-integration

Conversation

@DigitalMartyn
Copy link
Copy Markdown

Pull Request

Description

Add FigJam board and Figma Design file export capability to the Design Thinking collection using the official Figma MCP server (hosted HTTP at mcp.figma.com). No local server installation or credential files required.

New files:

  • dt-figma-export.prompt.md --- Export DT artifacts to FigJam/Design files
  • figma-export.md --- User-facing setup and usage documentation

Modified files:

  • dt-coach.agent.md --- Add Export to Figma handoff button
  • dt-method-next.prompt.md --- Add FigJam export mention at milestones
  • mcp.json --- Add figma HTTP server entry
  • SKILL.md --- Add figma to MCP config tables and templates
  • Collections --- Register dt-figma-export prompt in both collections
  • dt-coach.md --- Add Figma export to Next Steps
  • .cspell.json --- Add figjam, whiteboarding, collab to dictionary

Related Issue(s)

Replaces the Mural MCP approach from PR #1221. Addresses the blocking supply chain concern by using an official first-party hosted MCP server with no local dependencies.

Type of Change

Code & Documentation:

  • New feature (non-breaking change adding functionality)
  • Documentation update

AI Artifacts:

  • Reviewed contribution with prompt-builder agent and addressed all feedback
  • Copilot prompt (.github/prompts/*.prompt.md)
  • Copilot agent (.github/agents/*.agent.md)
  • Copilot skill (.github/skills/*/SKILL.md)

Sample Prompts

User Request:

/dt-figma-export project-slug=contoso-retail

Or from the DT Coach agent after completing a synthesis milestone:

"Would you like me to export your synthesis themes to a FigJam board?"

Execution Flow:

  1. User invokes /dt-figma-export or DT Coach offers export at milestone completion
  2. Prompt reads method context files from the project workspace
  3. Determines current DT method (M1--M9) and selects the layout template
  4. Authenticates via Figma OAuth (browser popup, one-time)
  5. Creates a FigJam board or Figma design frame with sections, stickies, and connectors
  6. Returns the board URL to the user

Output Artifacts:

  • FigJam board with method-specific sections (e.g., for M3 Synthesis: Themes, Clusters, Evidence, HMW statements)
  • Or Figma design frame with structured layout for higher-fidelity milestones
  • Board URL printed in chat for immediate access

Success Indicators:

  • Board opens in Figma with correct sections and content
  • Stickies contain actual project data, not placeholders
  • Layout follows the method-specific template from the prompt

Testing

Automated Validation (all passing)

Check Command Result
Markdown lint npm run lint:md 0 errors in contributed files
Spell check npm run spell-check 0 issues
Frontmatter npm run lint:frontmatter 0 errors
Plugin validate npm run plugin:validate 14 collections, 0 errors
Plugin generate npm run plugin:generate 14 plugins regenerated, 0 diff

Live Smoke Test

Connected to Figma MCP and created a test FigJam board with 6 sections and 31 stickies representing M3 Synthesis output. Screenshot verified all sections populated correctly.

Checklist

Required Checks

  • Documentation is updated (if applicable)
  • Files follow existing naming conventions
  • Changes are backwards compatible (if applicable)
  • Tests added for new functionality (if applicable)

AI Artifact Contributions

  • Used /prompt-analyze to review contribution
  • Addressed all feedback from prompt-builder review
  • Verified contribution follows common standards and type-specific requirements

Required Automated Checks

  • Markdown linting: npm run lint:md
  • Spell checking: npm run spell-check
  • Frontmatter validation: npm run lint:frontmatter
  • Skill structure validation: npm run validate:skills
  • Link validation: npm run lint:md-links
  • PowerShell analysis: npm run lint:ps
  • Plugin freshness: npm run plugin:generate

Security Considerations

  • This PR does not contain any sensitive or NDA information
  • Any new dependencies have been reviewed for security issues
  • Security-related scripts follow the principle of least privilege

No third-party packages, no local builds, no credential files. Figma MCP is an official hosted HTTP server operated by Figma Inc, listed in the MCP registry. Authentication is browser-based OAuth managed entirely by Figma.

Additional Notes

  • Additive only --- no existing DT workflows are modified or broken
  • Users who don't configure the Figma MCP server simply won't see export offers
  • Requires a Figma account (Starter plan is free; Enterprise plans have higher rate limits)

Add FigJam board and Figma Design file export capability to the Design
Thinking collection using the official Figma MCP server (hosted HTTP at
mcp.figma.com). No local server installation or credential files required.

New files:
- dt-figma-export.prompt.md: Export DT artifacts to FigJam/Design files
- figma-export.md: User-facing setup and usage documentation

Modified files:
- dt-coach.agent.md: Add Export to Figma handoff button
- dt-method-next.prompt.md: Add FigJam export mention at milestones
- mcp.json: Add figma HTTP server entry
- SKILL.md: Add figma to MCP config tables and templates
- Collections: Register dt-figma-export prompt in both collections
- dt-coach.md: Add Figma export to Next Steps
- .cspell.json: Add figjam, whiteboarding, collab to dictionary
@DigitalMartyn DigitalMartyn requested a review from a team as a code owner March 27, 2026 13:51
@DigitalMartyn
Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree company="Microsoft"

…-based layout

- replace outdated sticky-based persona card with validated shape-based buildPersona() pattern
- add 9 category rows with headings-above-rows layout using createShapeWithText
- support mixed font ranges for intro block (name, role, body copy)
- add behavioural to cspell dictionary

🎨 - Generated by Copilot
- add buildProjectDetails() reusable function for FigJam boards
- blue section with field rows (Customer, Project, Sprint, Workstream, Prototype)
- positioned at (0, 0) with exercise templates offset below
- update workflow step 5 to reference project details placement

🎨 - Generated by Copilot
@DigitalMartyn DigitalMartyn force-pushed the feature/figma-mcp-integration branch from be43ae7 to 14d3a5f Compare March 27, 2026 19:51
Copy link
Copy Markdown
Contributor

@rezatnoMsirhC rezatnoMsirhC left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks pretty neat! Thanks for working on this and testing! I'm still learning so hopefully my comments make sense.

description: 'Export Design Thinking artifacts to a collaborative FigJam board or Figma Design file using the official Figma MCP server - Brought to you by microsoft/hve-core'
agent: 'DT Coach'
argument-hint: "project-slug=... [board-title=...] [method=latest] [output-type=figjam]"
tools: ['read_file', 'figma/*']
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if wildcards are supported here. I suspect you can remove figma/* and this will still work as expected as the Figma MCP tools available in the environment will be accessible at runtime anyway. If you want granular figma tool access, I think you can specify entries like figma/get_figjam.

Using Figma Developers: Figma MCP Server > Core server features > Tools and prompts as a reference:

Suggested change
tools: ['read_file', 'figma/*']
tools:
- read_file
- figma/whoami
- figma/create_new_file
- figma/use_figma
- figma/get_figjam
- figma/generate_diagram

* The user MUST have a Figma account with a Dev or Full seat on a Professional, Organization, or Enterprise plan for sustained usage. Starter plans are limited to 6 tool calls per month.
* Authentication happens automatically via browser OAuth on first use. No credential files or API keys are required.

## Workflow Steps
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Figma MCP tools referenced here are not prefaced by figma/, which may result in ambiguity between these Figma MCP tools and those of other MCP servers with the same name. It would probably be best to revise them (e.g. whoami -> figma/whoami).


If a field is missing from the artifact, omit that row. Do not invent placeholder data.

8. Report Results:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is item 8 supposed to follow item 7 in the ## Workflow Steps section way above? The ## Exercise Templates section comes between ## Workflow Steps item 7 and item 8.


# DT Figma Export

## Overview
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick: It looks like the other design-thinking prompts do not have an ## Overview section before ## Inputs and instead go from H1 title (e.g. # DT Figma Export) to ## Inputs. For consistency I think you can remove ## Overview but keep the overview contents directly under # DT Figma Export and above ## Inputs.

Comment on lines +16 to 19
"figma": {
"type": "http",
"url": "https://mcp.figma.com/mcp"
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#1144 removed .vscode/mcp.json in favor of .vscode/mcp.json.sample which serves as a template that users can opt-in to using as their own local/untracked .vscode/mcp.json as needed. Feel free to keep this as-is in your local workspace, but pull the latest changes so your .vscode/mcp.json isn't tracked in the repo.

Comment on lines +510 to +512
## Beta Notice

The `use_figma` write tool is currently in beta and free during the beta period. Figma has indicated it will eventually become a usage-based paid feature. The read-only tools (`get_figjam`, `get_screenshot`, `generate_diagram`) are not affected by this and will continue to work.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if it would be better to have this beta notice in the ## Prerequisites section since figma/use_figma supports all write operations in ## Workflow Steps, and if write operations aren't available, the workflow could essentially break mid-session without prior warning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants