folderr mcp server

Local 2025-08-31 23:14:04 0

A Model Context Protocol (MCP) server that provides tools to interact with Folderr's API, specifically for managing and communicating with [Folderr](https://www.folderr.com/) Assistants.


A Model Context Protocol (MCP) server that provides tools to interact with Folderr's API, specifically for managing and communicating with Folderr Assistants.

Installation

Add to your MCP Settings

{
  "mcpServers": {
    "folderr": {
      "command": "npx",
      "args": ["-y", "@folderr/folderr-mcp-server"]
    }
  }
}

Features

The server provides the following tools:

Authentication

Two methods of authentication are supported:

  1. Login with Email/Password

    {
      "name": "login",
      "arguments": {
        "email": "[email protected]",
        "password": "your-password"
      }
    }

  2. API Token Authentication

    {
      "name": "set_api_token",
      "arguments": {
        "token": "your-api-token"
      }
    }
    API tokens can be generated from the Folderr developers section. This method is recommended for automated or long-running processes.

Assistant Management

  1. List Assistants

    {
      "name": "list_assistants",
      "arguments": {}
    }
    Returns a list of all available assistants for the authenticated user.

  2. Ask Assistant

    {
      "name": "ask_assistant",
      "arguments": {
        "assistant_id": "assistant-id",
        "question": "Your question here"
      }
    }
    Send a question to a specific assistant and receive their response.

Configuration

The server stores its configuration in a config.json file, which includes: - Base URL for the Folderr API - Authentication token (from login or API key)

Error Handling

The server provides detailed error messages for common scenarios: - Authentication failures - Invalid requests - API errors - Network issues

Development

To build the server:

npm install
npm run build

Usage in MCP Settings

Add the following to your MCP settings configuration:

{
  "mcpServers": {
    "folderr": {
      "command": "node",
      "args": ["/path/to/folderr-server/build/index.js"]
    }
  }
}

Authentication Flow

  1. Either:
  2. Use the login tool with email and password
  3. Use the set_api_token tool with an API token from Folderr's developers section
  4. The authentication token is automatically saved and used for subsequent requests
  5. All assistant-related tools require authentication before use

Error Messages

Common error messages and their meanings: - "Not logged in": No authentication token is set - "Login failed": Invalid credentials - "Failed to list assistants": Error retrieving assistant list - "Failed to ask assistant": Error sending question to assistant

[
  {
    "description": "Set an API token for authentication (alternative to login)",
    "inputSchema": {
      "properties": {
        "token": {
          "description": "API token generated from Folderr developers section",
          "type": "string"
        }
      },
      "required": [
        "token"
      ],
      "type": "object"
    },
    "name": "set_api_token"
  },
  {
    "description": "Login to Folderr with email and password",
    "inputSchema": {
      "properties": {
        "email": {
          "description": "User email",
          "type": "string"
        },
        "password": {
          "description": "User password",
          "type": "string"
        }
      },
      "required": [
        "email",
        "password"
      ],
      "type": "object"
    },
    "name": "login"
  },
  {
    "description": "List all available assistants",
    "inputSchema": {
      "properties": {},
      "required": [],
      "type": "object"
    },
    "name": "list_assistants"
  },
  {
    "description": "Ask a question to a specific assistant",
    "inputSchema": {
      "properties": {
        "assistant_id": {
          "description": "ID of the assistant to ask",
          "type": "string"
        },
        "question": {
          "description": "Question to ask the assistant",
          "type": "string"
        }
      },
      "required": [
        "assistant_id",
        "question"
      ],
      "type": "object"
    },
    "name": "ask_assistant"
  },
  {
    "description": "List all available workflows",
    "inputSchema": {
      "properties": {},
      "required": [],
      "type": "object"
    },
    "name": "list_workflows"
  },
  {
    "description": "Get the required inputs for a workflow",
    "inputSchema": {
      "properties": {
        "workflow_id": {
          "description": "ID of the workflow",
          "type": "string"
        }
      },
      "required": [
        "workflow_id"
      ],
      "type": "object"
    },
    "name": "get_workflow_inputs"
  },
  {
    "description": "Execute a workflow with the required inputs",
    "inputSchema": {
      "properties": {
        "inputs": {
          "additionalProperties": true,
          "description": "Input values required by the workflow",
          "type": "object"
        },
        "workflow_id": {
          "description": "ID of the workflow",
          "type": "string"
        }
      },
      "required": [
        "workflow_id",
        "inputs"
      ],
      "type": "object"
    },
    "name": "execute_workflow"
  }
]