MMSP skills

Два скилла учат агента писать код на SDK MMSP: единый клиент для моделей разных провайдеров на Python и TypeScript.

  • 124 ★ репозитория
  • Последний коммит
  • Apache-2.0
Скилл

Минимальный доступ

Почему такой уровень

  • Скиллы дают только инструкции и сами ничего не запускают, но код по ним обращается к API моделей с вашими ключами.
Все причины и проверки

prism-shadow/model-message-stream-protocol

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/mmsp-skills

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Минимальный доступИнструмент ничего не запускает и не ходит в сеть.

  • Скиллы дают только инструкции и сами ничего не запускают, но код по ним обращается к API моделей с вашими ключами.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

В папке `skills/` репозитория лежат два скилла: `mmsp-python` и `mmsp-typescript`. Они объясняют агенту, как пользоваться SDK MMSP (Model Message Stream Protocol), когда он пишет код для работы с разными LLM. Скилл срабатывает, если пользователь упоминает MMSP, просит `mmsp` или `@prismshadow/mmsp` либо уже импортирует пакет. SDK дает единый формат сообщений и потоковую грамматику для провайдеров. Клиент `AutoLLMClient` переключает модели без правок кода, обрабатывает чередующееся мышление при цепочках вызовов инструментов и добавляет трассировку по параметру `trace_id`. Скиллы содержат пример вызова инструмента с погодой, а выбор моделей, ключей и адресов вынесен в справочник `reference/models.md`.

Для кого. Разработчикам агентов, которые вызывают модели нескольких провайдеров и хотят, чтобы Claude Code или Codex писали вызовы по правилам SDK.

Подходит, если

  • Агент должен переключаться между Claude, GPT и Gemini, не переписывая клиентский код.
  • Цепочка вызовов инструментов с чередующимся мышлением ломается на смене провайдера.
  • Запросы к модели нужно разобрать по одному параметру `trace_id` без базы данных.
  • Проект на Python или TypeScript уже импортирует `mmsp`, а агент путает форматы сообщений.

Не подходит, если

  • Работа идет с одним провайдером через его родной SDK, и общий слой не нужен.
  • Код написан не на Python и не на TypeScript.
  • Нужны готовые подсказки по стилю кода: скиллы описывают только SDK MMSP.

Пример запроса к агенту

Напиши на Python клиент на MMSP, который вызывает инструмент get_weather и отправляет результат обратно модели в потоковом режиме.

Ограничения

Скиллы объясняют работу SDK и не заменяют ключи провайдеров: каждый клиент читает свою переменную вроде `OPENAI_API_KEY` или `ANTHROPIC_API_KEY`. Список моделей и клиентов быстро меняется, актуальный выдает `list_supported_models()`. Установка скиллов ручная: README не дает для них команды. Рекомендуется stateful-интерфейс. SDK ставят отдельно, `uv add mmsp` или `pip install mmsp` для Python, `npm install @prismshadow/mmsp` для TypeScript.

Как отключить. Удалите папки `mmsp-python` и `mmsp-typescript` из каталога скиллов клиента и откройте новую сессию.

Частые вопросы

Какие скиллы лежат в репозитории?

Два: `skills/mmsp-python/SKILL.md` и `skills/mmsp-typescript/SKILL.md`. Первый для пакета `mmsp`, второй для `@prismshadow/mmsp`.

Как поставить сам SDK?

Для Python выполните `uv add mmsp` или `pip install mmsp`, для TypeScript `npm install @prismshadow/mmsp`. Скиллы SDK не устанавливают.

Что делает `AutoLLMClient`?

Он принимает идентификатор модели и тип клиента, а для известных семейств (`gpt-`, `claude-`, `gemini-` и других) определяет клиента сам. Смена модели не требует правок кода.

Как включить трассировку?

Передайте один параметр `trace_id`. База данных для аудита вызовов не нужна, по описанию проекта.

Какие модели поддерживает SDK?

Среди них Claude, GPT, Gemini, Kimi, DeepSeek, GLM, MiniMax и Qwen через официальные API и шлюзы вроде OpenRouter. Актуальный список выдает `list_supported_models()`.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Meta Skill (ms)

Meta Skill

Meta Skill (ms) хранит скиллы локально в SQLite и Git, ищет по ним гибридным поиском и отдает агентам через MCP под бюджет токенов

CLIРасширенный доступ213Звезды репозитория
Официальный

Реестр скиллов для команд с проверкой безопасности и версиями: MCP-сервер ищет и ставит скиллы по запросу агента.

MCP-серверРасширенный доступ78Звезды репозитория

Мета-навык делит задачу на этапы, подбирает профиль и ведет мультиагентную работу в Codex и Claude Code.

СкиллРасширенный доступ59Звезды репозитория

Десять скиллов для LLM-инференса: сравнение SGLang и vLLM на одной нагрузке, разбор профайлера, расчет памяти и история PR.

СкиллМинимальный доступ1,2 тыс.Звезды репозитория

CLI и MCP-сервер для Agent Skills: проверка по спецификации, установка из GitHub и подгрузка нужного скилла по запросу

CLIРасширенный доступ421Звезды репозитория

Скилл, который дает зрение текстовым моделям: изображение по пути или из вставки превращается в структурированный JSON с распознанным текстом, разметкой и смысл

СкиллРасширенный доступ4,9 тыс.Звезды репозитория

Коротко о README

README представляет SDK, таблицу поддерживаемых моделей и типов клиентов, установку для Python и TypeScript, методы `AutoLLMClient` и базовые примеры. Раздел Agent Skills указывает на два скилла.

Бейдж для README

Исходный SKILL.md

---
name: mmsp-python
description: Guidance for using the MMSP Python SDK (`mmsp`). Use when developing agents that call different LLM APIs, need a unified interface for LLM providers, mention MMSP, request `mmsp`, or already import it.
---

# MMSP Python

MMSP is a unified SDK for calling LLMs across providers with shared data models, tool calling, tracing, and playground support.

## Installation

```bash
uv add mmsp
# or
pip install mmsp
```

For model IDs, API keys, and base URLs, see [Model selection](reference/models.md).

## Basic Usage

This example asks GPT to call a weather tool, runs the tool, then sends the result back.

```python
import asyncio
from mmsp import AutoLLMClient


def get_weather(location: str) -> str:
    return f"Temperature in {location}: 22 C"


# Map tool names to their implementations so calls can be dispatched by name.
TOOLS = {"get_weather": get_weather}


async def main():
    weather_function = {
        "name": "get_weather",
        "description": "Gets the current weather for a given location.",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {
                    "type": "string",
                    "description": "The city name"
                }
            },
            "required": ["location"]
        }

Сообщить о проблеме