# vikunja_batch_import

Import tasks in bulk from CSV or JSON formats with error handling and dry-run support

Agent View of the PolicyLayer registry record for `vikunja_batch_import`. HTML page: https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-batch-import

## Facts

- Tool: `vikunja_batch_import`
- Server: Vikunja MCP Server (`democratize-technology/vikunja-mcp`) — https://policylayer.com/tools/democratize-technology-vikunja-mcp.md
- Homepage: https://github.com/democratize-technology/vikunja-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "vikunja_batch_import",
    "arguments": {}
  }
}
```

## Why vikunja_batch_import is rated Medium

This tool creates or modifies data (tasks) in a reversible manner, fitting the Write category. Severity is high because bulk imports can affect many tasks simultaneously and incorrect data could corrupt task state, though the damage is reversible. The dry-run support mentioned slightly mitigates risk but does not change the primary effect when executed without dry-run.

From the tool's own definition: "Tool description states 'Import tasks in bulk from CSV or JSON formats' - import operations create or modify data (tasks) in the Vikunja instance. The bulk nature and file-based input increase the blast radius."

Risk signals: Bulk/mass operation — affects multiple targets

## Use case

AI agents use vikunja_batch_import to create or update resources in Vikunja MCP Server, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Vikunja MCP Server environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Vikunja MCP Server:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "vikunja_batch_import": {
      "limits": [
        {
          "counter": "vikunja_batch_import_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Vikunja MCP Server (22)

- `vikunja_projects_crud` — Destructive — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-projects-crud.md
- `vikunja_task_bulk` — Destructive — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-task-bulk.md
- `vikunja_task_crud` — Destructive — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-task-crud.md
- `vikunja_tasks` — Destructive — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-tasks.md
- `vikunja_request_user_export` — Execute — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-request-user-export.md
- `vikunja_download_user_export` — Read — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-download-user-export.md
- `vikunja_export_project` — Read — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-export-project.md
- `vikunja_filters` — Read — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-filters.md
- `vikunja_auth` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-auth.md
- `vikunja_labels` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-labels.md
- `vikunja_projects` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-projects.md
- `vikunja_projects_hierarchy` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-projects-hierarchy.md
- `vikunja_projects_sharing` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-projects-sharing.md
- `vikunja_task_assignees` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-task-assignees.md
- `vikunja_task_comments` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-task-comments.md
- `vikunja_task_labels` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-task-labels.md
- `vikunja_task_relations` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-task-relations.md
- `vikunja_task_reminders` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-task-reminders.md
- `vikunja_teams` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-teams.md
- `vikunja_templates` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-templates.md
- `vikunja_users` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-users.md
- `vikunja_webhooks` — Write — https://policylayer.com/tools/democratize-technology-vikunja-mcp/vikunja-webhooks.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=democratize-technology-vikunja-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/democratize-technology-vikunja-mcp
