Cursor Setup

Cursor Setup for Jedify (Builder Mode)

This guide covers setting up Jedify MCP with Cursor IDE for Builder Mode - dashboard development with semantic functions and the TypeScript SDK.

Note: For data analysis (Asker Mode), see the Claude Desktop Installation guide.

Prerequisites

Before beginning, ensure you have:

  • Cursor IDE installed (latest version) - Download Cursor
  • Node.js v18.0.0 or higher
  • NPM 9.0.0 or higher
  • Active Jedify account with Builder access permissions
  • TypeScript/JavaScript development environment (for dashboard development)

What You'll Build

With Cursor + Jedify MCP Builder Mode:

  • Browse semantic functions - Explore your organization's data functions
  • Generate dashboard code - AI-assisted React/Next.js dashboard creation
  • Fast queries - Pre-built functions execute in under 500ms (no LLM latency)
  • Type-safe development - Full TypeScript SDK with schemas
  • Production-ready - Deterministic execution for deployed apps

Installation Steps

Step 1: Locate Cursor Configuration

Cursor's MCP configuration is stored in:

  • macOS/Linux: ~/.cursor/mcp.json
  • Windows: %APPDATA%\Cursor\mcp.json

Access via Cursor:

  1. Open Cursor
  2. Press Cmd+Shift+P (macOS) or Ctrl+Shift+P (Windows/Linux)
  3. Type "MCP Settings"
  4. Select "Open MCP Settings"

If the file doesn't exist, create it.

Step 2: Add Jedify MCP Configuration

Add the following to your mcp.json:

{
  "mcpServers": {
    "jedify-builder": {
      "command": "npx",
      "args": [
        "-y",
        "@jedify/mcp-auth@latest"
      ],
      "env": {
        "JEDIFY_REMOTE_MCP_URL": "https://be.jedify.com/mcp?mode=builder",
        "DESCOPE_PROJECT_ID": "P2fGtsAm5ziAZr0swDyMDO7Tce87"
      }
    }
  }
}

Critical Configuration Details:

ParameterValueDescription
JEDIFY_REMOTE_MCP_URLhttps://be.jedify.com/mcp?mode=builderNote the ?mode=builder parameter - this is critical!
DESCOPE_PROJECT_IDP2fGtsAm5ziAZr0swDyMDO7Tce87Provided by your Jedify administrator

Important: The ?mode=builder query parameter is required - it switches the MCP server to Builder mode, providing semantic function tools instead of questioning tools.

Step 3: Restart Cursor

  1. Completely quit Cursor (Cmd+Q on macOS, Alt+F4 on Windows)
  2. Relaunch Cursor

Step 4: First-Time Authentication

On first use with Jedify MCP:

  1. Trigger MCP - Open Cursor chat and mention Jedify
  2. Browser opens automatically to your organization's login page
  3. Complete login using organizational credentials
  4. Success confirmation appears in browser
  5. Return to Cursor - now authenticated

Authentication persists across sessions with automatic refresh.

Step 5: Verify Installation

In Cursor's chat interface, ask:

List available semantic functions in Jedify

Expected Response: Cursor should return a list of your organization's semantic functions with names, descriptions, and parameters.

Using Builder Mode

Phase 1: Explore Semantic Functions

Discover available functions:

Show me all available semantic functions related to sales

Get function details:

What are the parameters and output schema for _REVENUE_BY_PRODUCT?

Phase 2: Generate Dashboard Code

Request dashboard generation:

Create a React dashboard that shows revenue by product over time using _REVENUE_BY_PRODUCT.
Include:
- Date range selector
- Bar chart visualization
- Table view with sorting
- Export to CSV button

Cursor will generate:

  • React component code
  • TypeScript SDK integration
  • Data fetching logic
  • Visualization components
  • Error handling

Phase 3: Install SDK and Deploy

Install Jedify SDK:

npm install @jedify/sdk

Configure environment:

# .env.local
JEDIFY_API_KEY=your-api-key-here
JEDIFY_BASE_URL=https://be-prod.jedify.com

Example generated code:

import { Jedify } from '@jedify/sdk';

const jedify = new Jedify({
  apiKey: process.env.JEDIFY_API_KEY!,
  baseUrl: process.env.JEDIFY_BASE_URL
});

export default function RevenueDashboard() {
  const [data, setData] = useState([]);

  useEffect(() => {
    async function fetchData() {
      const result = await jedify.call('_REVENUE_BY_PRODUCT', {
        start_date: '2025-01-01',
        end_date: '2025-12-31'
      });
      setData(result);
    }
    fetchData();
  }, []);

  return (
    <div>
      {data.map(row => (
        <div key={row.MONTH}>
          {row.PRODUCT_CATEGORY}: ${row.TOTAL_REVENUE}
        </div>
      ))}
    </div>
  );
}

Available Tools in Builder Mode

Once connected, you have access to Builder-specific tools:

Function Management:

  • list_semantic_functions - Browse all available functions
  • get_function_schema - Get detailed function specification
  • call_semantic_function - Test function execution
  • create_semantic_function - Convert inquiry to function

Development:

  • get_sdk_info - SDK documentation and examples
  • process_verification - Review and approve functions

Shared Tools:

  • Semantic layer tools (entity discovery)
  • Account information

See the Tools Reference for complete documentation.