specif ai mcp server

Local 2025-08-31 23:19:47 0

A CLI tool that runs a Model Context Protocol server over stdio, enabling interaction with specification documents like business requirements, product requirements, and user stories for the Specif-ai platform.


A CLI tool that runs an MCP (Model Context Protocol) server over stdio for Specif-ai.

Installation & Usage Overview

graph TD
    A[Installation Options]

    A --> B[Direct Binary Installation]
    A --> C[Package Manager Installation]

    B --> D[Unix Script]
    B --> E[Windows PowerShell]

    C --> F[NPM Global]
    C --> G[Bun Global]

    B --> H1[When to Use Binary Installation]
    H1 --> I1[System-wide installation]
    H1 --> I2[No Node.js required]
    H1 --> I3[Minimal dependencies]

    C --> H2[When to Use Package Manager]
    H2 --> J1[Already using Node.js/Bun]
    H2 --> J2[Need automatic updates]
    H2 --> J3[Project-specific versions]

    K[Usage Methods]
    K --> L[Direct CLI]
    K --> M[NPX]
    K --> N[BunX]

    L --> O1[Installed globally]
    L --> O2[Fastest startup]

    M --> P1[No installation needed]
    M --> P2[Version flexibility]

    N --> Q1[Bun runtime users]
    N --> Q2[Better performance]

Installation

You can install the binary directly using our installation script:

# Unix (macOS/Linux)
curl -fsSL https://raw.githubusercontent.com/vj-presidio/specif-ai-mcp-server/main/install.sh | sh

# Install specific version
curl -fsSL https://raw.githubusercontent.com/vj-presidio/specif-ai-mcp-server/main/install.sh | sh -s -- -v 1.2.3
# Windows (PowerShell)
iwr -useb https://raw.githubusercontent.com/vj-presidio/specif-ai-mcp-server/main/install.ps1 | iex

# Install specific version
iwr -useb https://raw.githubusercontent.com/vj-presidio/specif-ai-mcp-server/main/install.ps1 | iex -v 1.2.3

or manually download the binary for your platform from the Releases page.

Package Manager Installation

You can install globally using npm:

# Latest version
npm install -g @vj-presidio/specif-ai-mcp-server@latest
# Specific version
npm install -g @vj-presidio/[email protected]

Or using bun:

# Latest version
bun install -g @vj-presidio/specif-ai-mcp-server@latest
# Specific version
bun install -g @vj-presidio/[email protected]

Updates

To check for updates:

# Unix (macOS/Linux)
curl -fsSL https://raw.githubusercontent.com/vj-presidio/specif-ai-mcp-server/main/update.sh | sh -s -- -c

# Windows (PowerShell)
iwr -useb https://raw.githubusercontent.com/vj-presidio/specif-ai-mcp-server/main/update.ps1 | iex -c

To update to the latest version:

# Unix (macOS/Linux)
curl -fsSL https://raw.githubusercontent.com/vj-presidio/specif-ai-mcp-server/main/update.sh | sh

# Windows (PowerShell)
iwr -useb https://raw.githubusercontent.com/vj-presidio/specif-ai-mcp-server/main/update.ps1 | iex

To update to a specific version:

# Unix (macOS/Linux)
curl -fsSL https://raw.githubusercontent.com/vj-presidio/specif-ai-mcp-server/main/update.sh | sh -s -- -v 1.2.3

# Windows (PowerShell)
iwr -useb https://raw.githubusercontent.com/vj-presidio/specif-ai-mcp-server/main/update.ps1 | iex -v 1.2.3

Example MCP Client Configuration

with npx with latest version:

{
  "specif-ai": {
    "command": "npx",
    "args": ["--yes", "@vj-presidio/specif-ai-mcp-server@latest"],
    "disabled": false,
    "autoApprove": []
  }
}

with npx with specific version:

{
  "specif-ai": {
    "command": "npx",
    "args": ["--yes", "@vj-presidio/[email protected]"],
    "disabled": false,
    "autoApprove": []
  }
}

with bunx with latest version:

{
  "specif-ai": {
    "command": "bunx",
    "args": ["@vj-presidio/specif-ai-mcp-server@latest"],
    "disabled": false,
    "autoApprove": []
  }
}

with bunx with specific version:

{
  "specif-ai": {
    "command": "bunx",
    "args": ["@vj-presidio/[email protected]"],
    "disabled": false,
    "autoApprove": []
  }
}

with direct binary or package manager global installation:

{
  "specif-ai": {
    "command": "specif-ai-mcp-server",
    "args": [],
    "disabled": false,
    "autoApprove": []
  }
}

Options

  • --help, -h: Display help information
  • --version: Display version information

See the setup instructions for each

  1. Cline
  2. Cursor

Setting Project Path

Once the server is running, you can set the project path using the set-project-path tool. This tool accepts a path to the directory containing your specification files. After setting the path, the server will load all documents from that directory.

Example tool usage:

{
  "name": "set-project-path",
  "arguments": {
    "path": "./path/to/project"
  }
}

Available Tools

The server provides several tools for interacting with your specification documents:

Tool Name Description
set-project-path Set or change the project directory path
get-brds Get Business Requirement Documents
get-prds Get Product Requirement Documents
get-nfrs Get Non-Functional Requirements
get-uirs Get User Interface Requirements
get-bps Get Business Process Documents
get-user-stories Get User Stories for a specific PRD
get-tasks Get Tasks for a specific User Story
get-task Get details of a specific Task

Requirements

For binary installation:

  • curl (Unix) or PowerShell (Windows)
  • sudo access (Unix, for system-wide installation)

For package manager installation:

  • Node.js >= 16.0.0
  • Bun >= 1.0.0 (if using Bun runtime)

License

MIT

[
  {
    "description": "Set the project path and reload the solution, use this tool only when we not automatically able to infer the project path or asked by the user or us., we will try to auto infer it from the environment first.",
    "inputSchema": {
      "properties": {
        "path": {
          "description": "The absolute path to the project directory containing specification files",
          "type": "string"
        }
      },
      "required": [
        "path"
      ],
      "type": "object"
    },
    "name": "set-project-path"
  },
  {
    "description": "Get Business Requirement Documents for this project",
    "inputSchema": {
      "properties": {
        "cwd": {
          "description": "Absolute path where the tool is called from to auto-infer the project path. This path will be current working directory (cwd) from where the tool is called.",
          "type": "string"
        }
      },
      "required": [
        "cwd"
      ],
      "type": "object"
    },
    "name": "get-brds"
  },
  {
    "description": "Get Product Requirement Documents for this project",
    "inputSchema": {
      "properties": {
        "cwd": {
          "description": "Absolute path where the tool is called from to auto-infer the project path. This path will be current working directory (cwd) from where the tool is called.",
          "type": "string"
        }
      },
      "required": [
        "cwd"
      ],
      "type": "object"
    },
    "name": "get-prds"
  },
  {
    "description": "Get Non-Functional Requirement Documents for this project",
    "inputSchema": {
      "properties": {
        "cwd": {
          "description": "Absolute path where the tool is called from to auto-infer the project path. This path will be current working directory (cwd) from where the tool is called.",
          "type": "string"
        }
      },
      "required": [
        "cwd"
      ],
      "type": "object"
    },
    "name": "get-nfrs"
  },
  {
    "description": "Get User Interface Requirement Documents for this project",
    "inputSchema": {
      "properties": {
        "cwd": {
          "description": "Absolute path where the tool is called from to auto-infer the project path. This path will be current working directory (cwd) from where the tool is called.",
          "type": "string"
        }
      },
      "required": [
        "cwd"
      ],
      "type": "object"
    },
    "name": "get-uirs"
  },
  {
    "description": "Get Business Process Documents for this project",
    "inputSchema": {
      "properties": {
        "cwd": {
          "description": "Absolute path where the tool is called from to auto-infer the project path. This path will be current working directory (cwd) from where the tool is called.",
          "type": "string"
        }
      },
      "required": [
        "cwd"
      ],
      "type": "object"
    },
    "name": "get-bps"
  },
  {
    "description": "Get User Stories for a particular PRD",
    "inputSchema": {
      "properties": {
        "cwd": {
          "description": "Absolute path where the tool is called from to auto-infer the project path. This path will be current working directory (cwd) from where the tool is called.",
          "type": "string"
        },
        "prdId": {
          "description": "The ID of the PRD to get user stories for",
          "type": "string"
        }
      },
      "required": [
        "prdId",
        "cwd"
      ],
      "type": "object"
    },
    "name": "get-user-stories"
  },
  {
    "description": "Get Tasks for a particular User Story",
    "inputSchema": {
      "properties": {
        "cwd": {
          "description": "Absolute path where the tool is called from to auto-infer the project path. This path will be current working directory (cwd) from where the tool is called.",
          "type": "string"
        },
        "prdId": {
          "description": "The ID of the PRD to get user stories for",
          "type": "string"
        },
        "userStoryId": {
          "description": "The ID of the User Story to get tasks for",
          "type": "string"
        }
      },
      "required": [
        "prdId",
        "userStoryId",
        "cwd"
      ],
      "type": "object"
    },
    "name": "get-tasks"
  },
  {
    "description": "Get a Task for a particular User Story in a particular PRD",
    "inputSchema": {
      "properties": {
        "cwd": {
          "description": "Absolute path where the tool is called from to auto-infer the project path. This path will be current working directory (cwd) from where the tool is called.",
          "type": "string"
        },
        "prdId": {
          "description": "The ID of the PRD to get user stories for",
          "type": "string"
        },
        "taskId": {
          "description": "The ID of the Task to get",
          "type": "string"
        },
        "userStoryId": {
          "description": "The ID of the User Story to get tasks for",
          "type": "string"
        }
      },
      "required": [
        "prdId",
        "userStoryId",
        "taskId",
        "cwd"
      ],
      "type": "object"
    },
    "name": "get-task"
  }
]