# thingctx

Превращает описания API и устройств W3C WoT в инструменты для ИИ-агентов. Позволяет вызывать операции без передачи ключей модели и контролировать доступ к каждой команде.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 16
- Автор: thingctx
- Лицензия: Apache-2.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/thingctx/thingctx
- Обновлён: 2026-10-13
- HTML: https://affpapa.org/nevibecode/mcp/thingctx

## Что делает

thingctx преобразует спецификации W3C Thing Description или файлы OpenAPI 3.x в функции вида `<thing>__<action>`. Агент получает понятную схему действий, а запросы уходят через протоколы целевой системы: HTTP, MQTT или локальные вызовы. Транспорты система выбирает сама.

Ключи доступа к сервисам остаются на стороне среды исполнения. Модель их не видит. Сервер разрешает вызовы поштучно, поэтому чтение данных можно открыть, а запись на том же ресурсе заблокировать. Встроенный транспорт `exec` изначально заперт и отклоняет системные вызовы без явного белого списка команд.

Для работы требуется Python 3.10 или новее. Базовый пакет содержит только локальный и `exec` транспорты. Для подключения Redis или конвертации спецификаций OpenAPI понадобятся отдельные расширения пакета.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `THINGCTX_POLICY`, `THINGCTX_APPROVE_WHEN`, `THINGCTX_FS_ROOT` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env THINGCTX_POLICY=<THINGCTX_POLICY> --env THINGCTX_APPROVE_WHEN=<THINGCTX_APPROVE_WHEN> --env THINGCTX_FS_ROOT=<THINGCTX_FS_ROOT> --transport stdio thingctx -- uvx thingctx
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from thingctx <команда>

### Codex

**Командой платформы**
```bash
codex mcp add thingctx --env THINGCTX_POLICY=<THINGCTX_POLICY> --env THINGCTX_APPROVE_WHEN=<THINGCTX_APPROVE_WHEN> --env THINGCTX_FS_ROOT=<THINGCTX_FS_ROOT> -- uvx thingctx
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from thingctx <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "thingctx": {
            "command": "uvx",
            "args": [
                "thingctx"
            ],
            "env": {
                "THINGCTX_POLICY": "<THINGCTX_POLICY>",
                "THINGCTX_APPROVE_WHEN": "<THINGCTX_APPROVE_WHEN>",
                "THINGCTX_FS_ROOT": "<THINGCTX_FS_ROOT>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from thingctx <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "thingctx": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "thingctx"
            ],
            "env": {
                "THINGCTX_POLICY": "<THINGCTX_POLICY>",
                "THINGCTX_APPROVE_WHEN": "<THINGCTX_APPROVE_WHEN>",
                "THINGCTX_FS_ROOT": "<THINGCTX_FS_ROOT>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from thingctx <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e THINGCTX_POLICY=<THINGCTX_POLICY> -e THINGCTX_APPROVE_WHEN=<THINGCTX_APPROVE_WHEN> -e THINGCTX_FS_ROOT=<THINGCTX_FS_ROOT> thingctx uvx thingctx
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from thingctx <команда>

## Когда брать
- преобразовать спецификацию OpenAPI или манифест W3C WoT в инструменты агента
- исключить передачу секретных API-ключей в контекст языковой модели
- разрешить только подтверждённые системные команды через транспорт `exec`
- объединить вызовы через HTTP, MQTT и локальные процессы в одну схему

## Примеры запросов агенту
- Сконвертируй спецификацию `openapi.json` в манифест Thing Description для thingctx.
- Вызови инструмент `weather__forecast` с координатами нужного города.
- Покажи доступные действия для устройства из описания `pump.td.json`.

## Похожие
- [REA](https://affpapa.org/nevibecode/mcp/rea.md) — MCP-сервер · ★ 392262
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33989
- [Netdata](https://affpapa.org/nevibecode/mcp/netdata.md) — MCP-сервер · ★ 81163
- [browser-use](https://affpapa.org/nevibecode/mcp/browser-use.md) — MCP-сервер · ★ 119231
- [Codebase Memory](https://affpapa.org/nevibecode/mcp/codebase-memory.md) — MCP-сервер · ★ 47577
- [mcp-server](https://affpapa.org/nevibecode/mcp/mcp-server.md) — MCP-сервер · ★ 43902

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
