Skip to content
VS Code

Enterich for VS Code

dev.interlusion/enterich

A service for ERPNext accounting behind OAuth: fixed tools, drafts only, one agent user's rights

client:VS Code transport:stdio runtime:oci

Install Enterich in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "enterich-resource-url",
      "description": "ENTERICH_RESOURCE_URL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-issuer",
      "description": "ENTERICH_ISSUER",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-jwks-url",
      "description": "ENTERICH_JWKS_URL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-client-id",
      "description": "ENTERICH_CLIENT_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-subject",
      "description": "ENTERICH_SUBJECT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-required-scopes",
      "description": "ENTERICH_REQUIRED_SCOPES",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-token-algorithms",
      "description": "ENTERICH_TOKEN_ALGORITHMS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-clock-leeway",
      "description": "ENTERICH_CLOCK_LEEWAY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-erpnext-url",
      "description": "ENTERICH_ERPNEXT_URL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-erpnext-host",
      "description": "ENTERICH_ERPNEXT_HOST",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-erpnext-public-url",
      "description": "ENTERICH_ERPNEXT_PUBLIC_URL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-erpnext-api-key",
      "description": "ENTERICH_ERPNEXT_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-erpnext-api-secret",
      "description": "ENTERICH_ERPNEXT_API_SECRET",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-company",
      "description": "ENTERICH_COMPANY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-tools",
      "description": "ENTERICH_TOOLS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-max-drafts-per-hour",
      "description": "ENTERICH_MAX_DRAFTS_PER_HOUR",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-timezone",
      "description": "ENTERICH_TIMEZONE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-host",
      "description": "ENTERICH_HOST",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-port",
      "description": "ENTERICH_PORT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "enterich-log-level",
      "description": "ENTERICH_LOG_LEVEL",
      "password": true
    }
  ],
  "servers": {
    "enterich": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/interlusion/enterich:0.5.0"
      ],
      "env": {
        "ENTERICH_RESOURCE_URL": "${input:enterich-resource-url}",
        "ENTERICH_ISSUER": "${input:enterich-issuer}",
        "ENTERICH_JWKS_URL": "${input:enterich-jwks-url}",
        "ENTERICH_CLIENT_ID": "${input:enterich-client-id}",
        "ENTERICH_SUBJECT": "${input:enterich-subject}",
        "ENTERICH_REQUIRED_SCOPES": "${input:enterich-required-scopes}",
        "ENTERICH_TOKEN_ALGORITHMS": "${input:enterich-token-algorithms}",
        "ENTERICH_CLOCK_LEEWAY": "${input:enterich-clock-leeway}",
        "ENTERICH_ERPNEXT_URL": "${input:enterich-erpnext-url}",
        "ENTERICH_ERPNEXT_HOST": "${input:enterich-erpnext-host}",
        "ENTERICH_ERPNEXT_PUBLIC_URL": "${input:enterich-erpnext-public-url}",
        "ENTERICH_ERPNEXT_API_KEY": "${input:enterich-erpnext-api-key}",
        "ENTERICH_ERPNEXT_API_SECRET": "${input:enterich-erpnext-api-secret}",
        "ENTERICH_COMPANY": "${input:enterich-company}",
        "ENTERICH_TOOLS": "${input:enterich-tools}",
        "ENTERICH_MAX_DRAFTS_PER_HOUR": "${input:enterich-max-drafts-per-hour}",
        "ENTERICH_TIMEZONE": "${input:enterich-timezone}",
        "ENTERICH_HOST": "${input:enterich-host}",
        "ENTERICH_PORT": "${input:enterich-port}",
        "ENTERICH_LOG_LEVEL": "${input:enterich-log-level}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

Enterich in other clients