Dziennik zmian
Każda zmiana w serwerze MCP pod /mcp - narzędzia, parametry wejściowe, wyniki, klucze i limity - od najnowszych. To, co uznajemy za zmianę łamiącą zgodność, opisują jego polityki.
Odpowiedź 401 z /mcp zawiera teraz WWW-Authenticate: ApiKey realm="mcp" zamiast Bearer realm="mcp", error="invalid_token", przez który niektórzy klienci zaczynali szukać serwera OAuth. Klucze są nadal akceptowane jako Authorization: Bearer lub X-API-Key.
Udane wywołania narzędzi zwracają structuredContent obok niezmienionego tekstu JSON, a tools/list publikuje outputSchema dla każdego narzędzia, którego odpowiedź jest opisana w kontrakcie OpenAPI. Błędy pozostają zwykłym tekstem isError.
tools/list zwracał 15 narzędzi na stronę z nextCursor, więc klienci ignorujący kursor nigdy nie widzieli get_coin_markets, get_coin_technicals, get_liquidations_summary ani calculate_dca. Teraz wszystkie 19 narzędzi przychodzi na jednej stronie.
get_exchange i get_exchange_trust_score od startu zwracały błąd wewnętrzny dla każdej giełdy. Teraz oba odpowiadają; parametry wejściowe i pola wyniku pozostają bez zmian.
Od 6 września wyłączone narzędzie odpowiadało server_error (HTTP 500). Teraz ponownie zwraca endpoint_unavailable (HTTP 503): This endpoint is temporarily unavailable.
Dla days ogłaszano wartość domyślną i minimalną 0, ale 0 było zawsze odrzucane. Teraz zakres to 1-365 bez wartości domyślnej; aby uzyskać bieżący odczyt, pomiń parametr. Opis get_global_history podaje teraz kształt punktu ({time, marketcap} lub {time, volume}).
Nowy, niewymagający uwierzytelnienia /.well-known/mcp/server-card.json z serverInfo i pełnymi definicjami narzędzi, buforowany przez godzinę, dla rejestrów, które nie mogą skanować serwera wymagającego klucza. Zarówno on, jak i /.well-known/mcp.json mogą być teraz odczytywane z innych domen (cross-origin).
/mcp akceptuje teraz także klucz MCP jako X-API-Key: YOUR_API_KEY - dla klientów i bramek, które rezerwują Authorization na własne logowanie. Gdy ten nagłówek zostanie wysłany, sprawdzany jest tylko klucz z niego, a wklejony prefiks Bearer jest tolerowany.
Nieudane uwierzytelnienie było wcześniej ograniczone do 30 prób na minutę na IP, po czym każdy klucz za tym IP był odrzucany. Teraz jeden klucz może zawieść 30 razy na minutę z jednego IP, a jedno IP - 300 razy, a klucze, które uwierzytelniły się mniej więcej w ciągu ostatnich 15 minut, nie są blokowane przez limit IP.
get_fear_greed (główny odczyt i każdy interwał) i get_global_market (fear_greed) zawierają teraz index - indeks 0-100 pokazywany na Bitculator - obok surowego score, a opisy narzędzi każą modelowi cytować index.
get_coin zwracał w pełni rozwodnioną wycenę 0 dla monet bez ograniczonej maksymalnej podaży. Teraz używa podaży całkowitej i ma wartość null, gdy żadna z nich nie jest znana.
get_top_movers szereguje teraz według samej zmiany (wcześniej w praktyce według kapitalizacji rynkowej), a jego losers pomijają monety stojące na poziomie 0,00. get_prices z symbols zwraca jedną monetę na symbol - aktywną o najwyższym rankingu, a get_global_market raportuje dominację BTC i ETH jako null zamiast 0, gdy nie ma kapitalizacji rynkowej.
Instrukcje initialize mówią teraz, że kapitalizacje i wolumeny to liczby JSON (wcześniej mówiły o ciągach dziesiętnych), opis sort w list_exchanges podaje rzeczywistą wartość domyślną -volume, a get_exchange_trust_score informuje, że giełda bez rankingu ma ocenę i rozbicie równe null.
Serwer jest wymieniony w /apis.json i /.well-known/api-catalog, /.well-known/mcp.json otrzymał linki status i changelog, a /status.json raportuje komponent mcp.
Zmiana łamiąca zgodność: /mcp akceptuje wyłącznie klucze utworzone w konsoli MCP; klucze Data API i widżetów otrzymują 401. MCP ma własne plany Free (2500 wywołań narzędzi miesięcznie), Starter (50 000) i Pro (250 000) z 2, 5 i 10 slotami na klucze, własne rozliczenia i własne ograniczenia narzędzi według planu, a każde konto zaczyna od planu Free. Błędy limitu i planu wskazują teraz plan MCP.
Każde żądanie JSON-RPC do /mcp - initialize, tools/list, ping i wywołania narzędzi - liczy się teraz do limitu burst planu wynoszącego 30, 60 lub 120 na minutę, a jego przekroczenie zwraca HTTP 429. Do miesięcznego limitu liczą się tylko wywołania narzędzi.
Błędy serwera narzędzi zawierały wewnętrzny komunikat błędu. Teraz brzmią server_error (HTTP 500): Internal server error.
Od startu do tej poprawki każde wywołanie narzędzia na produkcji zwracało server_error, ponieważ serwer odrzucał własne wewnętrzne żądanie danych jako pochodzące z niezaufanego hosta.
/mcp ruszył przez Streamable HTTP (tylko POST) z 19 narzędziami tylko do odczytu dla Claude, Cursor, VS Code i dowolnego klienta MCP - od search_coins i get_coin po calculate_dca - zwracającymi te same dane co REST API. Używał kluczy, planów i limitu Data API, przy czym jedno wywołanie narzędzia liczyło się jako jedno żądanie, a opisywał go /.well-known/mcp.json.
Usunięcie lub zmiana nazwy narzędzia albo parametru wejściowego jest ogłaszana tutaj co najmniej sześć miesięcy wcześniej - zobacz politykę wycofywania. Karta serwera pod /.well-known/mcp.json zawiera link do tego dziennika zmian.