Serwer
- Adres serwera
https://app.musael.com/api/mcp?lang=pl- Transport
- Streamable HTTP, bezstanowe odpowiedzi JSON. Wysyłaj wiadomości JSON-RPC przez POST; GET i DELETE odpowiadają 405.
- Nazwa serwera
musael
Uwierzytelnianie
Każde żądanie wymaga nagłówka Authorization: Bearer <token>. Bez tokenu albo z unieważnionym, wygasłym lub błędnym serwer odpowiada 401 z nagłówkiem WWW-Authenticate wskazującym jego metadane OAuth.
Logowanie OAuth
Dla ChatGPT, Claude, Cursor, VS Code i innych klientów łączących się przez logowanie. Klient odkrywa wszystko z odpowiedzi 401, zgodnie ze specyfikacją autoryzacji MCP:
- Metadane chronionego zasobu (RFC 9728):
https://app.musael.com/.well-known/oauth-protected-resource/api/mcp - Metadane serwera autoryzacji (RFC 8414):
https://app.musael.com/.well-known/oauth-authorization-server - Dynamiczna rejestracja klienta (RFC 7591): tylko klienci publiczni, bez sekretu; adresy przekierowań w HTTPS, HTTP tylko na loopback albo schemat aplikacji.
- Kod autoryzacji z PKCE (tylko S256). Osoba pisząca loguje się, wybiera Tylko odczyt albo Odczyt i dodawanie oraz projekty, potem zezwala lub anuluje.
- Tokeny dostępu trwają godzinę; tokeny odświeżania 90 dni i zmieniają się przy każdym użyciu.
- Zakresy: read i suggest (pokazywane osobie piszącej jako Odczyt i dodawanie).
Osobisty token dostępu
Dla klientów konfigurowanych ręcznie, jak Codex, Claude Code lub skrypt. Osoba pisząca tworzy token w Musael w Ustawieniach → Połączone aplikacje, wybierając nazwę, projekty, dostęp i wygaśnięcie.
- Tokeny zaczynają się od sti_ i są pokazywane raz; Musael zachowuje tylko ich skrót.
- Konto może mieć do 20 aktywnych tokenów. Unieważnienie wyłącza token natychmiast.
- Wyślij go w nagłówku Authorization. Nigdy nie umieszczaj go w adresie URL.
Dostęp i limity
- Każde wywołanie działa jako osoba, która się połączyła, w ramach jej dostępu w danej chwili, na projektach wybranych dla połączenia.
- Żadne narzędzie nie zmienia ani nie usuwa tekstu osoby piszącej. Narzędzia dodające tworzą nowe akty, rozdziały, sceny lub wpisy Świata; suggest_edit zostawia propozycję, którą osoba pisząca przyjmuje lub odrzuca w Musael.
- Każde narzędzie jest zawsze wymienione. Narzędzie niedozwolone przez plan lub połączenie odpowiada powodem i nic nie robi.
- Do 300 wywołań na pięć minut na token. Odpowiedzi dłuższe niż 200 000 znaków są ucinane, z notatką, by czytać jeden rozdział lub scenę naraz.
Narzędzia
Narzędzia: 15. Czytanie tekstu książki i proponowanie zmian są w planie Press.
| Narzędzie | Co robi | Plan | Dostęp |
|---|---|---|---|
list_projects | Projekty widoczne dla tego połączenia, z przestrzenią roboczą, rolą osoby piszącej, scenami i ostatnią zmianą. Użyj go najpierw: każde inne narzędzie potrzebuje id projektu. | Każdy plan | Odczyt |
get_profile | Połączone konto Musael: niezmienne id, nazwa i e-mail. | Każdy plan | Odczyt |
get_outline | Struktura projektu: książki, akty, rozdziały ze streszczeniem, sceny w kolejności czytania ze statusem, punktem widzenia i słowami oraz otwarte zadania. | Każdy plan | Odczyt |
create_project | Nowy projekt z pomysłu, z aktami, rozdziałami, pustymi scenami ze streszczeniem i wpisami Świata. | Każdy plan | Odczyt i dodawanie |
add_to_plan | Nowe akty, rozdziały i sceny w istniejącym projekcie. | Każdy plan | Odczyt i dodawanie |
add_world_entries | Nowe postacie, miejsca, przedmioty i frakcje. Istniejąca nazwa zostaje bez zmian. | Każdy plan | Odczyt i dodawanie |
read_scene | Jedna scena jako Markdown, z rozdziałem, statusem, punktem widzenia, miejscem i streszczeniem. | Press | Odczyt |
read_chapter | Wszystkie sceny rozdziału, w kolejności, jako Markdown. | Press | Odczyt |
search_project | Słowa w scenach i Świecie, z krótkimi fragmentami. | Press | Odczyt |
list_world | Wpisy Świata według rodzaju, z innymi nazwami, tagami i początkiem notatek. | Press | Odczyt |
get_world_entry | Jeden wpis Świata w całości: notatki, relacje, zapisane fakty i sceny, które go wspominają. | Press | Odczyt |
get_timeline | Wydarzenia Świata w kolejności historii ze sceną pokazującą każde, z zaznaczeniem opowiedzianych poza kolejnością. | Press | Odczyt |
get_style_report | Raport stylu aplikacji dla sceny, tworzony stałymi regułami bez AI. | Press | Odczyt |
get_reader_stats | Czytelnicy opublikowanej książki rozdział po rozdziale, dla właściciela i redaktorów. | Press | Odczyt |
suggest_edit | Propozycja zamiany fragmentu albo komentarz do niego. Tekst zmienia się tylko wtedy, gdy osoba pisząca ją przyjmie. | Press | Odczyt i dodawanie |
Przewiń na bok, aby zobaczyć całą tabelę.
Przykłady
Ustaw MUSAEL_TOKEN na osobisty token dostępu. Po initialize wyślij notifications/initialized, potem wylistuj lub wywołaj narzędzia.
Initialize
curl https://app.musael.com/api/mcp?lang=pl \
-H "Authorization: Bearer $MUSAEL_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"example","version":"1.0.0"}}}'Wylistuj narzędzia
curl https://app.musael.com/api/mcp?lang=pl \
-H "Authorization: Bearer $MUSAEL_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"notifications/initialized"}'
curl https://app.musael.com/api/mcp?lang=pl \
-H "Authorization: Bearer $MUSAEL_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'Wywołaj narzędzie
curl https://app.musael.com/api/mcp?lang=pl \
-H "Authorization: Bearer $MUSAEL_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"list_projects","arguments":{}}}'Codex
# ~/.codex/config.toml
[mcp_servers.musael]
url = "https://app.musael.com/api/mcp?lang=pl"
bearer_token_env_var = "MUSAEL_TOKEN"Claude Code
claude mcp add --transport http --scope user musael https://app.musael.com/api/mcp?lang=pl --header "Authorization: Bearer $MUSAEL_TOKEN"Bez tokenu
HTTP/2 401
www-authenticate: Bearer realm="Musael", resource_metadata="https://app.musael.com/.well-known/oauth-protected-resource/api/mcp"
{"error":"TOKEN_INVALID"}
