Vercel AI SDK MCP Server Project
by chiziuwaga
This repository provides a Model Context Protocol (MCP) server that exposes the Vercel AI SDK Core capabilities to AI development environments like Cursor. It enables leveraging features like `generateObject`, `generateText`, and UI generation within a multi-MCP workflow.
Last updated: N/A
Vercel AI SDK MCP Server Project
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
ToolManagerwith aset_tool_categorymeta-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-figmaandmagic-mcp, intended for orchestration via Cursor AI (Pathway 2). - Smithery Deployment Ready: Configured with
Dockerfileandsmithery.yamlfor easy deployment on Smithery.ai. - Cursor Integration: Designed to be used within Cursor via the
.cursor/mcp.jsonconfiguration.
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:
- Using prompts and Cursor Rules (
.cursor/rules/) to guide the AI. - 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-mcpserver for Vercel AI SDK specific tasks (like structured generation).
- 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
- Clone Repository:
git clone https://github.com/chiziuwaga/vercel-ai-sdk-mcp-project.git cd vercel-ai-sdk-mcp-project - Install Dependencies:
npm install - Create
.envFile: Copy.env.exampleto.envand fill in your API keys: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 - Build the Code:
npm run build - Run Locally:
The server will be running using stdio, waiting for connections.npm run start
Cursor Integration (Local)
To use the local server in Cursor:
-
Ensure
mcp-figmaandmagic-mcpare runnable vianpxlocally. -
Modify your workspace
.cursor/mcp.jsonto run this server directly with Node:{ "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" } } } } -
Make sure the
${API_KEY}variables are accessible in your environment where Cursor can read them.
Usage Example (Pathway 2)
-
Ensure MCP Servers are running (locally or configured via Smithery in
.cursor/mcp.json). -
Create Cursor Rules: Add rule files in
.cursor/rules/to guide the AI (see section below). -
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, andvercel-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)
- Push to GitHub: Ensure your latest code, including
Dockerfileandsmithery.yaml, is pushed to themainbranch on GitHub. - Go to Smithery.ai: Log in and find/add your
chiziuwaga/vercel-ai-sdk-mcp-projectserver. - Deploy: Go to the "Deployments" tab and click "Create Deployment".
- Configure: Provide the required API keys (
openaiApiKey, etc.) when prompted by Smithery. These are stored securely. - Launch: Start the deployment process. Smithery builds the Docker image and runs the container.
Cursor Integration (Deployed)
Once deployed on Smithery:
-
Update your
.cursor/mcp.jsonto use the Smithery CLI runner for your server (this should match the current content):{ "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"}" ] } } } -
Ensure the
${API_KEY}variables referenced in the--configJSON 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.envfor local runs.ANTHROPIC_API_KEY: Optional, for Anthropic models.FIGMA_API_KEY: Required only whenFigmaConnectoris implemented.TWENTY_FIRST_API_KEY: Required only whenMagicMcpConnectoris implemented.
Placeholders & Future Work
- Implement Connectors: The
src/integrations/figma/connector.tsandsrc/integrations/magicMcp/connector.tscontain 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).