PactKit

PactKit integrates with Model Context Protocol servers to extend agent capabilities. All MCP instructions are conditional — if a server isn't available, it's gracefully skipped.

Supported Servers

Context7

Fetch up-to-date library documentation and code examples.

  • Tools: resolve-library-idget-library-docs
  • When: Implementing with an unfamiliar library API
  • Phase: Act

shadcn

Search, browse, and install UI components from shadcn registries.

  • Tools: search_items_in_registries, view_items_in_registries, get_item_examples_from_registries, get_add_command_for_items
  • When: Project has a components.json file (shadcn is configured)
  • Phase: Design

Playwright MCP

Browser automation for testing — snapshots, clicks, screenshots, form filling.

  • Tools: browser_navigate, browser_snapshot, browser_click, browser_take_screenshot, browser_fill_form
  • When: Running browser-level QA checks
  • Phase: Check

Chrome DevTools MCP

Performance tracing, console message inspection, network request analysis.

  • Tools: performance_start_trace, list_console_messages, list_network_requests, take_snapshot, take_screenshot
  • When: Performance or runtime diagnostics needed
  • Phase: Check

Memory MCP

Persistent knowledge graph for cross-session context.

  • Tools: create_entities, create_relations, add_observations, search_nodes, read_graph
  • When: Storing or retrieving architectural decisions across sessions
  • Phase: Plan, Act, Done
  • Entity naming: Use {STORY_ID} (e.g., STORY-037) as entity name, entityType: "story"

Draw.io

Architecture diagram instant preview and interactive editing.

  • Tools: open_drawio_xml, open_drawio_csv, open_drawio_mermaid
  • When: Generating architecture diagrams with instant preview
  • Phase: Plan, Design

Usage by PDCA Phase

PhaseMCP ServerPurpose
PlanMemoryStore architectural decisions and design rationale
PlanDraw.ioInstant preview of architecture diagrams
DesignshadcnDiscover and install UI components
DesignDraw.ioInteractive architecture diagram editing
ActContext7Verify library API signatures
ActMemoryLoad prior context from earlier sessions
CheckPlaywrightBrowser-level QA testing
CheckChrome DevToolsPerformance and runtime diagnostics
DoneMemoryRecord lessons learned

Conditional Behavior

Each MCP integration checks for tool availability at runtime:

IF mcp__memory__create_entities tool is available:
  → store design context
ELSE:
  → skip gracefully, continue workflow

No MCP server is required for PactKit to function. They enhance the workflow when present but are never a hard dependency.

OpenCode MCP Configuration

For OpenCode users, MCP servers are configured in opencode.json:

{
  "mcp": {
    "context7": {
      "type": "remote",
      "url": "https://mcp.context7.com/mcp"
    },
    "memory": {
      "type": "local",
      "command": ["npx", "-y", "@modelcontextprotocol/server-memory"]
    },
    "playwright": {
      "type": "local",
      "command": ["npx", "-y", "@playwright/mcp"]
    }
  }
}

OpenCode supports two MCP types:

  • Remote: type: "remote" with a url — no local installation needed (e.g., Context7)
  • Local: type: "local" with a command — runs via npx (e.g., Memory, Playwright)

When deploying with the default pactkit init or pactkit init --format opencode, the project-level opencode.json is pre-configured with Context7 as a remote MCP. Add other servers manually as needed.

GitHub Copilot MCP Configuration

For Copilot users, MCP servers are configured in .vscode/mcp.json (VS Code workspace level). This is separate from PactKit's .github/ deployment — VS Code only discovers MCP servers from .vscode/.

{
  "servers": {
    "playwright": {
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest", "--headless", "--isolated"]
    },
    "chrome-devtools": {
      "command": "npx",
      "args": ["-y", "chrome-devtools-mcp@latest", "--headless=true", "--isolated=true", "--viewport=1440x900"]
    },
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    },
    "drawio": {
      "command": "npx",
      "args": ["-y", "@drawio/mcp@latest"]
    },
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp@latest"]
    }
  }
}

Verified Packages

Servernpm PackageVersionStatus
Playwright@playwright/mcp0.0.70+Official, actively maintained
Chrome DevToolschrome-devtools-mcp0.21.0+Community, stable
Memory@modelcontextprotocol/server-memory2026.1+Official MCP reference impl
Draw.io@drawio/mcp1.2.0+Official
Context7@upstash/context7-mcp2.1+Official from Upstash

shadcn MCP is not recommended for Copilot. The npm package shadcn-mcp exists but is a community single-maintainer project with no updates since its initial release. It was designed for Claude, not Copilot. If you need shadcn component references, use the Context7 server to look up shadcn documentation instead.

Setup Steps

  1. Create .vscode/mcp.json with the configuration above
  2. Open Command Palette → MCP: List Servers to verify servers appear
  3. Accept the trust prompt when VS Code asks
  4. If servers don't appear, run Developer: Reload Window

Important Notes

  • .vscode/ is typically in .gitignore — the MCP config is local-only by default
  • To share with your team, add a .gitignore exception for .vscode/mcp.json
  • Memory data is stored locally and is project-scoped
  • Context7 works without an API key, but with lower rate limits — add CONTEXT7_API_KEY for production use

On this page