Skip to main content
Glama

circle-mcp

MCP-сервер (stdio), предоставляющий доступ только для чтения к данным родительского контроля Circle (Meetcircle/Aura): семейные профили и использование интернета по каждому профилю.

Извлечено из провайдера Circle в airstream-dashboard, откуда взяты API-клиент и его поток аутентификации. Клиент только на стандартной библиотеке; единственная зависимость — SDK mcp.

Инструменты

Инструмент

Назначение

list_profiles

Семейные профили (pid, имя, тип)

get_usage

Детальное использование для профиля (day=дней назад, ndays=диапазон)

get_usage_categories

Использование по категориям (игры, соцсети, видео, ...)

get_circle_status

Статус устройства/аккаунта Circle

Related MCP server: mcp-paypal

Настройка

python3 -m venv .venv
.venv/bin/pip install -e .

Конфигурация

Переменные окружения имеют приоритет; файл секретов заполняет остальное:

Переменная окружения

Ключ файла секретов

Назначение

CIRCLE_USERNAME

circle.username

Email аккаунта

CIRCLE_PASSWORD

circle.password

Пароль аккаунта

CIRCLE_DEVICE_ID

circle.device_id

Стабильный идентификатор устройства (любая уникальная строка)

CIRCLE_AURA_PUBLIC_KEY

circle.aura_public_key

Ключ клиента Aura API (circle_mobile_auth:...)

CIRCLE_ADMIN_TOKEN

circle.admin_token

Необязательный предварительно аутентифицированный токен (обходит вход)

CIRCLE_PROFILE_PID

circle.profile_pid

Необязательный профиль по умолчанию для инструментов использования

CIRCLE_SECRETS_FILE указывает на файл конфигурации со строками circle.<ключ> = <значение>, что позволяет не хранить учётные данные в конфигурации вашего MCP-клиента.

Регистрация в Claude Code: скопируйте .mcp.json.example в .mcp.json и заполните свои учётные данные (или укажите CIRCLE_SECRETS_FILE на файл конфигурации, содержащий их). .mcp.json находится в .gitignore, так как обычно содержит учётные данные или пути, специфичные для машины.

Заметки по API (2026-08)

Поток аутентификации:

  1. POST https://api.aurasvc.io/auth/session/signin с заголовком Authorization: Public <aura_public_key> и телом {"alias": <email>, "password": ...}access_token + refresh_token (обновление через /auth/session/refresh_token)

  2. POST https://auth.meetcircle-blue.co/api/v2/grant/admin с {"deviceid": <device_id>, "jwt": <access_token>} → admin token

  3. Конечные точки данных на https://vc.meetcircle-blue.co с Authorization: Bearer <admin_token>:

    • /api/LOGS/usage/categories?user=<pid>&day=<d>&ndays=<n> (проверено вживую)

    • /api/LOGS/usage?user=<pid>&day=<d>&ndays=<n>

    • /api/QUERY/users, /api/QUERY/circleinfo (не проверено)

Семантика ошибок при входе:

  • 401 {"message": "NoCredential"} — отсутствует/неверный заголовок Authorization: Public <key>

  • 401 {"message": "InvalidCredentials"} — ключ принят, имя пользователя/пароль отклонены

Available Tools

4 tools
get_circle_statusB

Get Circle device/account status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the disclosure burden. 'Get' clearly signals a read-only operation, but the description does not state what the status contains, whether it is device-level or account-level, or what the response looks like. Adequate but minimal.

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 a single, front-loaded sentence with no filler. Every word contributes to the meaning, making it appropriately concise for such a simple tool.

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 is simple with no parameters, and the description names the operation clearly. However, there is no output schema and no detail about what 'status' includes or when this tool is preferable to siblings, leaving some gaps for a no-annotation tool.

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?

The tool has zero parameters, so the schema fully covers the input surface. A baseline of 4 is appropriate because there is no parameter information for the description to add.

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 uses a clear verb ('Get') and a specific resource ('Circle device/account status'), so an agent understands the operation. It does not explicitly differentiate from siblings like list_profiles or get_usage, but the 'status' focus is distinct enough by context.

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?

There is no guidance about when to use this tool versus the sibling tools. No conditions, exclusions, or alternative suggestions are provided, so the agent must infer appropriateness from the name alone.

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

get_usageB

Get detailed internet usage for a profile.

Args: profile_pid: Profile ID from list_profiles (falls back to configured profile_pid) day: Days ago to start (0 = today) ndays: Number of days to include

ParametersJSON Schema
NameRequiredDescriptionDefault
dayNo0
ndaysNo1
profile_pidNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only explains the arguments and does not disclose return format, pagination, rate limits, or any side effects. While 'Get' implies a read, it does not explicitly confirm read-only behavior or describe what 'detailed' means in practice.

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?

The description is concise and well-structured, starting with a one-line purpose followed by an Args section that cleanly explains parameters. There is no fluff; each sentence serves a purpose.

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?

Given three optional parameters, no output schema, and no annotations, the description explains parameters but does not state what the tool returns (e.g., a summary, a list, or a breakdown). It also omits any error conditions or prerequisites beyond profile_pid. This leaves some ambiguity for an agent calling the tool for the first time.

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 description coverage is 0%, so the description must compensate. It fully explains each parameter: profile_pid (with context), day (days ago to start), and ndays (number of days). This adds significant meaning beyond the bare schema definitions.

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 a clear verb+resource: 'Get detailed internet usage for a profile.' It distinguishes itself from list_profiles by referencing it as a source for profile IDs, but does not explicitly differentiate from get_usage_categories, leaving some ambiguity about which usage tool to use.

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 implies usage by explaining the profile_pid parameter as coming from list_profiles and noting a fallback to a configured profile. However, it does not provide explicit when-to-use/when-not-to-use guidance relative to siblings like get_usage_categories, leaving the selection to inference.

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

get_usage_categoriesA

Get internet usage broken down by category (e.g. games, social, video) for a profile.

Args: profile_pid: Profile ID from list_profiles (falls back to configured profile_pid) day: Days ago to start (0 = today) ndays: Number of days to include

ParametersJSON Schema
NameRequiredDescriptionDefault
dayNo0
ndaysNo1
profile_pidNo

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations present, the description carries the full disclosure burden. It does add meaningful behavioral context—the profile_pid fallback to a 'configured profile_pid' and the semantics of day ('0 = today') and ndays. However, it remains silent on output volume, error conditions, or data freshness, which a read tool could disclose.

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?

The content is efficiently structured: a single one-sentence opener followed by a scannable Args list with consistent 'name: meaning' lines. It front-loads the core purpose and wastes no words, with only the slightly awkward 'Days ago to start' phrasing preventing a 5.

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?

For a read-only tool with a non-trivial date-window semantics and an external profile dependency, the description provides the essential contract: source of profile ID, window start, and window length. The only gap is the lack of a return-value sketch, but that's a minor omission for a category-breakdown tool.

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?

Since schema description coverage is 0%, the description fully shoulders the documentation load by explaining all three parameters with provenance (profile_pid from list_profiles) and units (days ago, window size). This is a strong compensation for an empty schema, though the parameter meanings could have been more richly detailed (e.g., timezone handling for 'today').

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 uses a specific verb+resource ('Get internet usage broken down by category') with concrete examples (games, social, video). It's clear this returns categorized usage per profile, which conveys the tool's differentiating function, though it never explicitly contrasts itself with the sibling get_usage.

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 intended use is implied well by context—get category-level usage rather than totals—and the docs point the agent to list_profiles for the profile_pid, establishing an implicit dependency. However, there is no explicit when-to-use guidance or mention of alternatives (e.g., get_usage for aggregate totals), leaving the routing decision to inference.

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

list_profilesA

List Circle family profiles (pid, name, type). Use the pid with the usage tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It says 'List' which implies a read-only operation, and it names the returned fields. It does not discuss errors or edge cases, but for a simple listing tool this is sufficient.

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 two sentences, directly stating the purpose and the follow-up action. It is concise, front-loaded, and contains no fluff.

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?

It explains the output fields and the next step (using pid with usage tools). Since there is no output schema, this gives enough context. It lacks details like pagination or filtering, but for a simple list it is adequate.

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?

There are zero parameters, so schema coverage is trivially 100%. The description adds no input parameter meaning beyond the schema (there is nothing to document). The baseline score of 3 applies per the rubric.

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 lists Circle profiles and explicitly mentions the output fields (pid, name, type). It distinguishes itself from sibling tools (usage, status) by focusing on profile data, making its purpose unambiguous.

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?

It provides a direct usage hint: 'Use the pid with the usage tools,' indicating when this tool is needed (to obtain a pid for subsequent usage calls). It does not explicitly contrast with siblings but implies the workflow, so guidance is adequate.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv0.1.0
    • First observedget_circle_status
    • First observedget_usage
    • First observedget_usage_categories
    • First observedlist_profiles

TDQS

A3.7/5.0
Disambiguation4/5

The tools are mostly distinct: list_profiles is the discovery tool, get_usage provides raw usage, get_usage_categories provides categorized breakdown, and get_circle_status handles device health. get_usage and get_usage_categories could be confused at first, but their descriptions clearly separate raw totals from category breakdowns.

Naming Consistency4/5

Tool names follow a consistent verb_noun pattern with snake_case: list_profiles, get_usage, get_usage_categories, get_circle_status. The only minor inconsistency is mixing list_ and get_ as the leading verb, but both clearly signal read operations.

Tool Count5/5

Four tools is well-scoped for a focused read-only Circle internet usage server. Each tool covers a meaningful piece of functionality without unnecessary surface area.

Completeness4/5

The server provides profile discovery, raw usage lookup, category-level usage breakdown, and overall device status, which covers the main read-only workflows for a Circle usage monitor. Minor gaps such as per-device usage details or historical filtering beyond day/ndays could exist, but the core domain is well covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

  • F
    license
    B
    quality
    D
    maintenance
    Enables read-only access to FileMaker databases through the Data API, allowing users to retrieve records, analyze metadata, search across layouts, and infer relationships while maintaining data security.
    16
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables read-only access to PayPal transactions, orders, invoices, and disputes for auditing cash flow and tracking billing.
    15
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables read-only access to a Nightscout instance for glucose readings, treatments, and deterministic server-side aggregates, allowing users to discuss their diabetes data with an AI assistant without write permissions.
    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/TechBlueprints/circle-mcp'

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