logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

vercel-ai-sdk-mcp-project

Integrates Vercel AI SDK capabilities into AI development environments to facilitate the generation of objects, text, and UI components. Supports seamless interaction with other tools like Figma and Magic MCP, enhancing design and development workflows.

Author

vercel-ai-sdk-mcp-project logo

chiziuwaga

No License

Quick Info

GitHub GitHub Stars 0
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

vercelsdkaivercel aiai sdkai development

Vercel AI SDK MCP Server Project

smithery badge

This repository contains a Model Context Protocol (MCP) server designed to expose capabilities of the Vercel AI SDK Core to AI development environments like Cursor. It allows leveraging features like generateObject, generateText, streamText, and UI generation alongside other MCP servers (like mcp-figma and magic-mcp via Smithery).

Core Features

  • Vercel AI SDK Integration: Provides MCP tools wrapping core Vercel AI SDK functions (generate_object, generate_ui_component, etc.).
  • Tool Categorization: Implements a ToolManager with a set_tool_category meta-tool to manage the number of active tools exposed to Cursor, keeping within reasonable limits.
  • Figma/Magic MCP Placeholders: Includes placeholder connectors and tool registrations for mcp-figma and magic-mcp, intended for orchestration via Cursor AI (Pathway 2).
  • Smithery Deployment Ready: Configured with Dockerfile and smithery.yaml for easy deployment on Smithery.ai.
  • Cursor Integration: Designed to be used within Cursor via the .cursor/mcp.json configuration.

Architectural Approach (Pathway 2 Orchestration)

This server is primarily designed to be one component in a multi-MCP workflow orchestrated by the AI within Cursor (Pathway 2).

The intended workflow involves: 1. Using prompts and Cursor Rules (.cursor/rules/) to guide the AI. 2. Making sequential calls to different MCP servers: * mcp-figma (via Smithery) for design extraction. * magic-mcp (via Smithery) for inspiration/component building. * This vercel-ai-sdk-mcp server for Vercel AI SDK specific tasks (like structured generation). 3. The AI combines context from each step to achieve the final goal.

While a composite tool (generate_enhanced_component_from_figma) demonstrating direct server-to-server interaction (Pathway 1) exists in the code (src/integrations/crossIntegration.ts), it requires implementing functional MCP clients within the connectors and is not the primary intended usage pattern for this setup.

Prerequisites

  • Node.js (v20 or later recommended)
  • npm
  • Git
  • Cursor
  • Smithery Account (for deployment)
  • API Keys:
    • OpenAI API Key (Required)
    • Figma API Key (Required for implementing Figma integration)
    • 21st Dev API Key (Required for implementing Magic MCP integration)

Local Setup

  1. Clone Repository: bash git clone https://github.com/chiziuwaga/vercel-ai-sdk-mcp-project.git cd vercel-ai-sdk-mcp-project
  2. Install Dependencies: bash npm install
  3. Create .env File: Copy .env.example to .env and fill in your API keys: dotenv OPENAI_API_KEY=sk-your-openai-key ANTHROPIC_API_KEY=sk-ant-your-anthropic-key # Optional FIGMA_API_KEY=your-figma-key # For future implementation TWENTY_FIRST_API_KEY=your-21st-key # For future implementation TRANSPORT_TYPE=stdio # Keep as stdio for local PORT=3000 # Only used if TRANSPORT_TYPE=sse
  4. Build the Code: bash npm run build
  5. Run Locally: bash npm run start The server will be running using stdio, waiting for connections.

Cursor Integration (Local)

To use the local server in Cursor:

  1. Ensure mcp-figma and magic-mcp are runnable via npx locally.
  2. Modify your workspace .cursor/mcp.json to run this server directly with Node:

    json { "mcpServers": { "magic-mcp": { ... }, // Keep existing Smithery config "mcp-figma": { ... }, // Keep existing Smithery config "vercel-ai-sdk-mcp": { "command": "node", "args": ["dist/index.js"], // Path relative to workspace root "env": { // Pass keys directly for local run "OPENAI_API_KEY": "${OPENAI_API_KEY}", "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}", "FIGMA_API_KEY": "${FIGMA_API_KEY}", "TWENTY_FIRST_API_KEY": "${TWENTY_FIRST_API_KEY}", "TRANSPORT_TYPE": "stdio" } } } } 3. Make sure the ${API_KEY} variables are accessible in your environment where Cursor can read them.

Usage Example (Pathway 2)

  1. Ensure MCP Servers are running (locally or configured via Smithery in .cursor/mcp.json).
  2. Create Cursor Rules: Add rule files in .cursor/rules/ to guide the AI (see section below).
  3. Prompt Cursor AI: Give a multi-step prompt like the User Story described previously, instructing the AI to call tools sequentially across mcp-figma, magic-mcp, and vercel-ai-sdk-mcp.

    Example Snippet: "First, use mcp-figma's extract_figma_design... Then use magic-mcp's inspiration tool... Finally, use vercel-ai-sdk-mcp's generate_ui_component with the combined context..."

Cursor Rules (.cursor/rules/)

Effective use of the Pathway 2 orchestration relies on creating guidance rules for the Cursor AI. You must create a .cursor/rules/ directory in your project root and add rule files (e.g., figma.cursorule, magic.cursorule, vercel.cursorule).

  • These files should contain natural language instructions on:
    • Which tools to use from each MCP server for specific tasks.
    • How to structure prompts for those tools.
    • How to pass context (data) between sequential tool calls.
    • Standard workflows (e.g., Figma -> Magic -> Vercel).

Refer to the Cursor Rules Documentation for syntax and examples.

Deployment (Smithery)

  1. Push to GitHub: Ensure your latest code, including Dockerfile and smithery.yaml, is pushed to the main branch on GitHub.
  2. Go to Smithery.ai: Log in and find/add your chiziuwaga/vercel-ai-sdk-mcp-project server.
  3. Deploy: Go to the "Deployments" tab and click "Create Deployment".
  4. Configure: Provide the required API keys (openaiApiKey, etc.) when prompted by Smithery. These are stored securely.
  5. Launch: Start the deployment process. Smithery builds the Docker image and runs the container.

Cursor Integration (Deployed)

Once deployed on Smithery:

  1. Update your .cursor/mcp.json to use the Smithery CLI runner for your server (this should match the current content):

    json { "mcpServers": { "magic-mcp": { ... }, // Keep existing Smithery config "mcp-figma": { ... }, // Keep existing Smithery config "vercel-ai-sdk-mcp": { "command": "npx", "args": [ "-y", "@smithery/cli@latest", "run", "chiziuwaga/vercel-ai-sdk-mcp-project", "--config", // Ensure these env vars are available to Cursor "{"openaiApiKey":"${OPENAI_API_KEY}", "anthropicApiKey":"${ANTHROPIC_API_KEY}", "figmaApiKey":"${FIGMA_API_KEY}", "twentyFirstApiKey":"${TWENTY_FIRST_API_KEY}", "transportType":"stdio"}" ] } } } 2. Ensure the ${API_KEY} variables referenced in the --config JSON string are accessible to Cursor from your environment.

Configuration

API Keys are required for full functionality:

  • OPENAI_API_KEY: Required for Vercel AI SDK tools. Provide during Smithery deployment config or in .env for local runs.
  • ANTHROPIC_API_KEY: Optional, for Anthropic models.
  • FIGMA_API_KEY: Required only when FigmaConnector is implemented.
  • TWENTY_FIRST_API_KEY: Required only when MagicMcpConnector is implemented.

Placeholders & Future Work

  • Implement Connectors: The src/integrations/figma/connector.ts and src/integrations/magicMcp/connector.ts contain placeholders. They need to be implemented with actual API calls (for Figma) and MCP client logic (potentially for Magic MCP, depending on its interface) to enable the integration tools.
  • Add More Tools: Implement the remaining Vercel AI SDK tools (text generation, streaming, chat, code gen, etc.) as outlined in the specs.
  • Error Handling: Enhance error handling, especially around missing API keys.
  • Testing: Add automated tests.

License

ISC License (as per package.json).

See Also

`