Skip to main content
Glama

StarLine MCP

MCP-сервер для управления автосигнализацией StarLine через ИИ-агента (Claude и др.).

Агент вызывает понятные инструменты (list_devices, get_status, set_engine…), а сервер прячет всю «грязь»: 4-шаговую авторизацию StarLineID, кэш токенов и маппинг команд в облачный API.

AI-агент (Claude) ──tools──► StarLine MCP ──REST──► облако StarLine ──GSM──► блок в машине

Архитектура

Слой

Файл

Ответственность

Конфиг

config.py

учётные данные из .env

Авторизация

auth.py

getCode → getToken → user/login → auth.slid, кэш slnet (24ч)

Клиент API

client.py

список/статус устройств, отправка команд, авто-переавторизация

MCP-сервер

server.py

инструменты для агента

Related MCP server: Smartcar MCP Server

Безопасность

Инструменты разделены на два класса:

  • read-only (list_devices, get_status, get_location) — выполняются свободно.

  • команды управления (set_security, set_engine, set_heater, set_channel) — отказывают без confirm=true. Агент не должен подставлять confirm сам — подтверждение исходит от человека. Рекомендуется дополнительно требовать approval на эти инструменты в настройках хоста (Claude Desktop / Claude Code permissions).

⚠️ Запуск двигателя и снятие с охраны — физические действия с реальной машиной. Относитесь к ним как к необратимым.

Установка

Изолированный venv обязателен: на машине бывает несколько Python, а голый python в конфиге MCP-хоста резолвится непредсказуемо (главная причина «не запускается»).

cd "C:/GIT/StarLine MCP"
py -3.12 -m venv .venv
.venv/Scripts/python.exe -m pip install -e .   # ставит пакет + зависимости в venv
cp .env.example .env                            # затем заполнить

После -e . пакет импортируется из venv — PYTHONPATH задавать не нужно.

Самодиагностика (проверяет импорты и конфиг, печатает в stderr):

.venv/Scripts/python.exe -m starline_mcp.server --healthcheck

.env:

STARLINE_APP_ID=...         # из https://my.starline.ru/developer
STARLINE_APP_SECRET=...
STARLINE_LOGIN=...          # аккаунт my.starline.ru
STARLINE_PASSWORD=...

Проверка доступа

.venv/Scripts/python.exe -m starline_mcp.check_auth

Залогинится и выведет список ваших устройств со статусом. Это лучший первый шаг — убедиться, что API-доступ реально работает, до подключения к агенту.

Запуск MCP-сервера

.venv/Scripts/python.exe -m starline_mcp.server

Подключение к Claude Code: в корне уже лежит .mcp.json с абсолютным путём к venv (не голый python — это принципиально):

{
  "mcpServers": {
    "starline": {
      "command": "C:/GIT/StarLine MCP/.venv/Scripts/python.exe",
      "args": ["-m", "starline_mcp.server"],
      "cwd": "C:/GIT/StarLine MCP",
      "env": { "PYTHONIOENCODING": "utf-8" }
    }
  }
}

Если хост (Hermes/Claude Code) «не видит модуль» — почти всегда это голый python в команде вместо абсолютного пути к .venv/Scripts/python.exe. Не подмешивай PYTHONPATH и не плоди wrapper-скрипты — после pip install -e . это не нужно.

Подключение к Claude Code

В корне лежит .mcp.json — Claude Code подхватит сервер автоматически при запуске в этой папке. Список инструментов появится после подтверждения подключения MCP-сервера.

Рекомендация: в настройках прав потребуй approval на инструменты set_* (команды управления), чтобы каждое физическое действие с машиной подтверждалось вручную.

Статус

  • Авторизация (4 шага) + кэш токенов

  • Чтение: список устройств, статус, GPS, баланс SIM

  • Команды с подтверждением: охрана, двигатель, подогреватель, доп. канал, поиск авто

  • Проверено на живом аккаунте

  • Авто-выбор команды под модель блока (ign vs ign_start/ign_stop)

  • Проверка поддержки команды конкретным блоком (по controls)

  • Кэш списка устройств (TTL 15с)

  • Конфиг .mcp.json для Claude Code

  • Боевая проверка отправки команд (требует согласия владельца — физическое действие)

  • Обработка 2FA в интерактиве (если включится на аккаунте)

Источники

Эндпоинты и алгоритмы сверены по:

Available Tools

8 tools
find_carB

Найти автомобиль — короткий сигнал клаксоном и моргание (poke). Безопасно.

ParametersJSON Schema
NameRequiredDescriptionDefault
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes the physical action (horn and flashing) and claims safety, but doesn't disclose prerequisites, side effects, or permissions. No annotations provided, so description carries full burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise with two sentences, no fluff; front-loaded and directly states purpose and behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description fails to clarify the required parameter and provides no error handling or usage context, making it incomplete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not explain the single parameter device_id beyond the schema field name 'Device Id', and schema coverage is 0%, leaving the agent with no useful information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds a car by performing a short horn and flashing, and distinguishes from siblings which handle status, location, or settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like get_location or list_devices; lacks context for appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_locationC

Координаты GPS устройства.

ParametersJSON Schema
NameRequiredDescriptionDefault
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It only states output (coordinates), but does not mention read-only nature, required permissions, rate limits, or error conditions. The implied read-only action is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one phrase). While not verbose, it is too terse and lacks structure (e.g., no verb or complete sentence). It could benefit from a slightly fuller sentence without becoming long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema (which may detail return format), the description misses other key context: no usage guidance, no parameter semantics, no behavioral traits. For a simple tool, more completeness is expected to ensure correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no meaning to the 'device_id' parameter. Schema coverage is 0%, and the description does not explain what device_id is or how it relates to the result. The agent gets no help understanding this required parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'GPS coordinates of the device' directly states what the tool returns. It is clear and specific, though it lacks an explicit verb. The name 'get_location' reinforces the action. No confusion with siblings, which are mostly about settings or status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'find_car' or 'list_devices'. No prerequisites or exclusions provided, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statusC

Подробный статус устройства: охрана, двигатель, температура, АКБ, GSM, GPS.

ParametersJSON Schema
NameRequiredDescriptionDefault
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist. Description implies a read operation but does not explicitly state it is read-only or disclose any side effects, data freshness, or error behavior. For a status tool, basic transparency is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence in Russian. No superfluous words, but lacks structured breakdown of parameters or return values.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description omits parameter explanation and usage context. With no annotations and minimal description, the agent may struggle to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter device_id has no description in schema (0% coverage). The tool description does not explain the parameter's meaning, valid values, or format, leaving the agent without guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description lists specific status fields (security, engine, temperature, battery, GSM, GPS), clearly indicating the tool returns detailed device status. It distinguishes from siblings like get_location (location only) and set_* (mutations).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., get_location, set_security). Does not mention limitations or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_devicesB

Список автомобилей/устройств StarLine на аккаунте с кратким статусом.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must bear full responsibility. It only mentions listing with brief status, omitting details like authentication, rate limits, or what 'brief status' includes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence efficiently conveys the tool's purpose with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no parameters and an output schema exists, so the description is adequate for a simple list. However, it lacks context about authentication scope and the exact meaning of 'brief status'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no parameters and coverage is 100%. The description adds minimal context about the output (brief status) but does not add parameter-specific meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it lists cars/devices with brief status, which is a specific verb and resource. It distinguishes from siblings like find_car (which likely finds a specific car) but does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_channelA

Включить/выключить дополнительный канал (реле). Требует confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
onYes
confirmNo
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description conveys that the tool requires confirmation, implying potential destructiveness, but lacks details on side effects or outcomes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, focused sentences with no unnecessary words. Efficiently conveys core information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple toggle tool, the description covers purpose and a key requirement, but omits explanation of device_id and the meaning of 'additional channel' in the broader context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description only partially explains parameters: on/off is implied, confirm is mentioned, but device_id is not explained at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (turn on/off), resource (additional channel/relay), and distinguishes from sibling tools like set_engine or set_heater.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly requires confirm=true, which is a usage guideline, but does not provide when-to-use or when-not-to-use compared to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_engineA

Запустить (on=true) или заглушить (on=false) двигатель. Требует confirm=true.

Сам выбирает команду под блок: ign (если поддерживается) либо ign_start/ign_stop (как у части моделей).

ParametersJSON Schema
NameRequiredDescriptionDefault
onYes
confirmNo
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses that it requires confirm and automatically selects between `ign` or `ign_start`/`ign_stop` commands. Does not mention potential effects like engine noise or safety, but sufficient for basic transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. Main action and key requirement upfront, followed by technical detail in second sentence. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values are covered. Description adds behavior for parameter mapping and command selection. Missing description of device_id, but overall complete enough for an engine control tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% with 3 parameters. Description clarifies the 'on' parameter (start/stop) and implies confirm is required, but does not explain 'device_id'. Partial value added, but still leaves one parameter undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool starts/stops the engine (on=true/false), distinguishing it from siblings like set_channel and set_heater. The verb 'запустить/заглушить' exactly describes the action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly requires confirm=true, which guides usage. It also describes automatic command selection but does not provide when-to-use vs alternatives; however, siblings are distinct enough that no confusion arises.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_heaterB

Включить/выключить предпусковой подогреватель (Webasto). Требует confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
onYes
confirmNo
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the burden. It discloses the confirm requirement, which is a behavioral constraint. However, it does not state side effects, safety, or what happens when confirm is false. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the purpose and add a key requirement. No redundant words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is minimal for a tool with 3 parameters and no annotations. It lacks details on output, errors, prerequisites, or when to set confirm. More context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description adds meaning for 'on' (turn on/off) and 'confirm' (requires confirm=true), but does not explain 'device_id'. It partially compensates but is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (turn on/off) and the resource (pre-heater, Webasto). It distinguishes this tool from siblings like set_engine or set_channel by specifying the heater.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It only mentions a requirement (confirm=true), but does not specify contexts, prerequisites, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_securityA

Поставить (on=true) или снять (on=false) автомобиль с охраны. Требует confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
onYes
confirmNo
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral disclosure burden. It explains the on parameter's semantics and the confirmation requirement, but does not disclose potential side effects, authorization needs, or rate limits. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, front-loading the action and key constraint. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (boolean toggle with confirmation), the description covers the essential behavior. An output schema exists (not provided but signaled) which likely documents return values, so the description is adequate. Could mention what happens if confirm is not set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description compensates by explaining that on=true arms and on=false disarms, and that confirm must be true. Device_id is not explained, but the key boolean parameters are well-described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: setting (on=true) or removing (on=false) car security. It provides a specific verb-resource mapping and differentiates from sibling tools like set_engine or set_heater by focusing on security.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool description explicitly states that using the tool requires confirm=true, which is a clear prerequisite. It implies the context (arming/disarming a car) but does not explicitly mention when to avoid using it or compare with alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: locating, status, listing, engine, security, heater, channel, and a find signal. No overlap between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, e.g., find_car, get_location, set_engine. No deviations.

Tool Count5/5

8 tools is an appropriate number for a car control server, covering essential operations without being overwhelming or too sparse.

Completeness4/5

Covers major functions like location, status, engine, security, heater, and channel. Missing door lock/unlock control, which is a common feature, but core workflows are well-covered.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that connects to the Tesla Fleet API, allowing users to control vehicles and retrieve real-time status updates through Claude and other AI assistants. It supports functions such as waking up vehicles, viewing detailed vehicle information, and debugging via both stdio and HTTP/SSE transports.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that exposes Smartcar's vehicle API as tools, enabling AI agents to query vehicle telemetry and send commands using natural language.
  • A
    license
    Not graded
    quality
    C
    maintenance
    Universal MCP server that wraps any CLI tool, enabling AI assistants to run commands via natural language.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Claude Code to interact with OpenClaw AI agents (Daemon, Soren, Ash, etc.) via the gateway API, providing tools to ask agents, list them, and check their status.
    3
    208
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/curlysasha/starline-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server