Wersja zapoznawcza dla deweloperów

Serwer MCP Sandtime.io

Model Context Protocol (MCP) pozwala klientom AI, takim jak Claude Code i Codex, komunikować się bezpośrednio z Sandtime.io. Połącz raz i twórz, przeglądaj oraz raportuj wpisy czasu z narzędzi, których już używasz.

Czym jest MCP?

Model Context Protocol to otwarty standard łączenia asystentów AI z zewnętrznymi narzędziami i danymi. Serwer MCP Sandtime.io udostępnia Twoją przestrzeń śledzenia czasu - aktywności, projekty, raporty, grafiki i więcej - jako zestaw narzędzi, które asystent może wywoływać w Twoim imieniu.

Akcje odczytu zwracają czyste, zmaterializowane dane ze sformatowanymi czasami trwania i czasami lokalnymi. Akcje destrukcyjne, takie jak usunięcie projektu lub członka zespołu, celowo przekazują decyzję człowiekowi, zwracając bezpośredni link do właściwej strony w aplikacji.

Dopiero zaczynasz rejestrować czas z poziomu edytora? Zobacz, jak deweloperzy korzystają z Sandtime.io na co dzień.

Potrzebujesz zwykłego HTTP albo cURL? Zobacz REST API, aby skorzystać z integracji na niższym poziomie.

O co możesz zapytać

Rozmawiaj ze swoim asystentem zwykłym językiem. Sam ustali właściwego użytkownika, projekt i daty, a następnie wywoła za Ciebie odpowiednie narzędzia.

Zarejestruj 8 godzin w projekcie Acme na wczoraj.
Uzupełnij zeszły tydzień moimi zwykłymi godzinami i pomiń święto.
Co zarejestrowałem w tym tygodniu, w podziale na projekty?
Zatrzymaj mój działający stoper.
Zbuduj raport godzin rozliczalnych według klienta za ostatni miesiąc.
Które tygodnie są nadal zablokowane w moim grafiku?

Podłącz asystenta

Każdy z poniższych klientów łączy się z tym samym serwerem, zmienia się tylko miejsce, w które trafia wpis. Zamień YOUR_API_KEY na swój klucz.

Sprawdź swój plan. To, czy MCP jest w ogóle dostępne, zależy od asystenta i wybranego planu, a na to Sandtime.io nie ma wpływu. Jeśli mimo poprawnej konfiguracji nic się nie łączy, zacznij od sprawdzenia, na co pozwala Twój plan.

Najpierw utwórz klucz. Klucze tworzysz w aplikacji, w Settings > Integrations > API albo w Settings > Integrations > MCP. Klucz jest pokazywany tylko raz, przy tworzeniu, i w dowolnym momencie możesz go unieważnić na stronie API.

Claude Desktop

Claude Desktop łączy się z Sandtime.io przez mcp-remote, które npx pobiera na żądanie, więc na komputerze musi być Node. Poza tym wszystko sprowadza się do jednego pliku JSON.

Otwórz plik konfiguracyjny

Claude Desktop otworzy go za Ciebie przez Settings > Developer > Edit Config. Jeśli tego menu nie ma albo plik się nie otwiera, poniżej znajduje się bezpośrednia ścieżka do pliku.

macOS
~/Library/Application Support/Claude/claude_desktop_config.json
Windows
%APPDATA%\Claude\claude_desktop_config.json

Dodaj serwer

W tym pliku są też pozostałe ustawienia Claude Desktop, więc dodaj do niego wpis, zamiast go nadpisywać. To, którego snippetu potrzebujesz, zależy od tego, czy plik ma już blok mcpServers.

Jeśli nie ma jeszcze bloku mcpServers, dodaj ten kod jako nowy klucz obok swoich innych ustawień, z przecinkiem między nimi.

"mcpServers": {
  "sandtime": {
    "command": "npx",
    "args": [
      "mcp-remote",
      "https://mcp.sandtime.io/mcp",
      "--header",
      "Authorization:${AUTH}"
    ],
    "env": { "AUTH": "Bearer YOUR_API_KEY" }
  }
}

Jeśli blok mcpServers już istnieje, wklej ten kod w jego środku, z przecinkiem przed każdym serwerem, który już tam jest.

"sandtime": {
  "command": "npx",
  "args": [
    "mcp-remote",
    "https://mcp.sandtime.io/mcp",
    "--header",
    "Authorization:${AUTH}"
  ],
  "env": { "AUTH": "Bearer YOUR_API_KEY" }
}

Pułapka na Windowsie

Na Windowsie sprawdź linię Authorization:${AUTH} powyżej, czy nie ma w niej zbędnej spacji. Spacja po dwukropku psuje połączenie, a Claude Desktop zwraca wtedy błąd uwierzytelniania (401), z którego trudno się domyślić przyczyny.

Zrestartuj i sprawdź

Serwery MCP wczytują się tylko przy starcie aplikacji i nie są sprawdzane później, więc nowy serwer nie zadziała, dopóki nie zamkniesz aplikacji całkowicie i nie otworzysz jej ponownie, a nie tylko zamkniesz okno. Potem zadaj mu proste pytanie o coś z aplikacji, na przykład o Twoje projekty albo zarejestrowane godziny. Sensowna odpowiedź oznacza, że klucz, adres URL i nagłówek są w porządku.

Sesja Claude Code otwarta w aplikacji desktopowej korzysta z tego samego pliku, więc jeden wpis obejmuje zarówno czat, jak i zakładkę Code. Samodzielne CLI w terminalu już z niego nie korzysta i ma osobną sekcję poniżej.

Claude Code CLI

Dotyczy CLI w terminalu. Sesja Claude Code uruchomiona z poziomu aplikacji desktopowej czyta jej konfigurację, więc w tym przypadku skorzystaj z sekcji Claude Desktop powyżej. Poniższe opcje różni ich zasięg.

Plik projektowy, który trafia do repozytorium, powinien odwoływać się do zmiennej środowiskowej zamiast zawierać literalny klucz. Ustaw SANDTIME_API_KEY lokalnie i użyj Bearer ${SANDTIME_API_KEY} jako Authorization. Prawdziwe klucze nie powinny trafiać do repozytorium, a jeśli już do niego trafią, unieważnij taki klucz i utwórz nowy.

Dla użytkownika

Zapisuje konfigurację w ~/.claude.json (~ to %USERPROFILE% na Windowsie), więc serwer czeka na Ciebie w każdym projekcie otwieranym na tym komputerze.

claude mcp add --transport http --scope user sandtime https://mcp.sandtime.io/mcp --header "Authorization: Bearer YOUR_API_KEY"

Dla projektu

Ta sama komenda z --scope project, która zapisuje .mcp.json w bieżącym katalogu, więc Claude Code znajdzie ją tylko w tym jednym projekcie. Ten plik trafia do repozytorium. Jeśli wolisz, żeby serwer był dostępny wszędzie, wybierz zamiast tego zasięg dla użytkownika.

claude mcp add --transport http --scope project sandtime https://mcp.sandtime.io/mcp --header "Authorization: Bearer YOUR_API_KEY"

Instalacja ręczna

Wpis jest wszędzie taki sam, o zasięgu decyduje wyłącznie plik. Każdy z tych plików zawiera też inne ustawienia, więc dopisz do niego, zamiast go nadpisywać.

Dla użytkownika (macOS, Linux)
~/.claude.json
Dla użytkownika (Windows)
%USERPROFILE%\.claude.json
Dla projektu
.mcp.json

Jeśli nie ma jeszcze bloku mcpServers, dodaj ten kod jako nowy klucz obok swoich innych ustawień, z przecinkiem między nimi.

"mcpServers": {
  "sandtime": {
    "type": "http",
    "url": "https://mcp.sandtime.io/mcp",
    "headers": {
      "Authorization": "Bearer YOUR_API_KEY"
    }
  }
}

Jeśli blok mcpServers już istnieje, wklej ten kod w jego środku, z przecinkiem przed każdym serwerem, który już tam jest.

"sandtime": {
  "type": "http",
  "url": "https://mcp.sandtime.io/mcp",
  "headers": {
    "Authorization": "Bearer YOUR_API_KEY"
  }
}

Jeśli coś nie działa, za pomocą komendy claude mcp list sprawdzisz, czy Claude widzi ten serwer i czy udało się z nim połączyć. To najszybszy sposób, żeby odróżnić odrzucony klucz od błędnego adresu. Komenda claude mcp remove sandtime usuwa wpis.

ChatGPT / Codex

Dotyczy aplikacji desktopowej ChatGPT, Codex CLI i rozszerzenia do IDE, które korzystają ze wspólnej konfiguracji. ChatGPT w przeglądarce nie ma do niej dostępu, więc nic z tego, co tu ustawisz, nie zadziała.

Commitujesz plik projektowy? Użyj bearer_token_env_var z SANDTIME_API_KEY zamiast literalnego nagłówka. Prawdziwe klucze nie powinny trafiać do repozytorium, a jeśli już do niego trafią, unieważnij taki klucz i utwórz nowy.

Dodaj własny serwer MCP

Otwórz Settings > Plugins > MCPs i dodaj niestandardowe MCP, wybierając Streamable HTTP zamiast STDIO. Wpisz URL poniżej w pole adresu, a nazwę i wartość nagłówka razem w sekcji Headers. Na tym ekranie są też pola Bearer token env var i Headers from environment variables, ale przekazują sekrety w inny sposób, więc zostaw je puste.

URL
https://mcp.sandtime.io/mcp
Nazwa nagłówka
Authorization
Wartość nagłówka
Bearer YOUR_API_KEY

Zapisz i włącz

Zapisz, zrestartuj aplikację, a potem włącz wpis na liście. Samo dodanie serwera go nie aktywuje. Ten ekran nie daje wyboru zasięgu, więc wpis zawsze trafia do pliku użytkownika.

W config.toml, dla użytkownika albo dla projektu

Ten sam wpis dodany ręcznie, dopisany do tego, co plik już zawiera. Plik na użytkownika działa tak samo w aplikacji desktopowej, CLI i rozszerzeniu do IDE. Plik projektowy jest węższy: działa wyłącznie w CLI i rozszerzeniu do IDE, wyłącznie w zaufanym projekcie.

Dla użytkownika (macOS, Linux)
~/.codex/config.toml
Dla użytkownika (Windows)
%USERPROFILE%\.codex\config.toml
Dla projektu
.codex/config.toml
[mcp_servers.sandtime]
url = "https://mcp.sandtime.io/mcp"

[mcp_servers.sandtime.http_headers]
Authorization = "Bearer YOUR_API_KEY"

Który plik wygrywa

Pliki projektowe są wczytywane od katalogu głównego repozytorium w dół, aż do katalogu bieżącego, i wygrywa ten najbliższy. Pod nimi wszystkimi jest plik użytkownika. Jeśli ustawiona jest zmienna CODEX_HOME, plik użytkownika znajduje się tam, a nie w katalogu domowym.

Pułapka niezaufanego projektu

Codex czyta pliki projektowe tylko w projekcie oznaczonym jako zaufany; w niezaufanym pomija je bez żadnego komunikatu. Jeśli serwer w ogóle się nie pojawia, sprawdź najpierw, czy projekt jest zaufany, zanim zajrzysz do samej konfiguracji.

Komenda codex mcp add przy takim kluczu nie pomoże. Zapisuje wyłącznie do pliku użytkownika i nie potrafi ustawić statycznego nagłówka, a jedynie nazwę zmiennej środowiskowej, którą odczyta później. Zostają więc dwa sposoby: ekran w aplikacji albo plik.

Jeśli po tym serwer wciąż się nie łączy, może pomóc włączenie Developer mode w ustawieniach ChatGPT.

Każdy inny klient obsługujący MCP przez Streamable HTTP działa tak samo, o ile potrafi wysłać własny nagłówek. Poproś asystenta o listę Twoich projektów: jeśli w odpowiedzi pojawią się prawdziwe nazwy projektów, połączenie działa.

Gdzie to działa

Jeden serwer HTTP dla każdego narzędzia AI, którego używasz. Połącz raz i pracuj stamtąd, gdzie już jesteś.

Claude Code

Dodaj serwer do swojego pliku .mcp.json i rejestruj czas z poziomu terminala, w którym wdrażasz kod.

Claude Desktop

Połącz serwer i poproś aplikację komputerową o śledzenie i raportowanie Twojego czasu.

Codex

Podłącz serwer do Codex i zamień sesje kodowania w czyste zapisy czasu.

Dowolny klient MCP

Połączyć się może każdy klient obsługujący Model Context Protocol oraz serwery HTTP z własnymi nagłówkami.

Dostępne narzędzia

Serwer udostępnia ponad 30 narzędzi obejmujących całą Twoją przestrzeń roboczą. Asystenci łączą je w sekwencje - na przykład ustalając bieżącego użytkownika, sprawdzając kalendarz, a następnie uzupełniając puste dni.

Aktywności

  • list_activitiesWyświetl listę wpisów czasu, filtrowaną według użytkownika, projektu lub całego tygodnia. Zwraca sformatowane czasy trwania i czasy lokalne.
  • get_activityPobierz pełne szczegóły pojedynczego wpisu czasu na podstawie jego identyfikatora.
  • create_activityZarejestruj nowy wpis czasu w projekcie, z automatycznym wykrywaniem nakładania się z istniejącymi wpisami.
  • update_activityEdytuj nazwę, godziny, projekt lub status rozliczalności wpisu czasu albo zatrzymaj i wznów działający stoper.
  • delete_activityTrwale usuń wpis czasu. Wymaga bycia właścicielem lub uprawnień administratora.
  • stop_activityZatrzymaj działający stoper, ustawiając jego czas zakończenia na teraz.

Projekty

  • list_projectsWyświetl listę projektów w Twojej organizacji, opcjonalnie wraz z zarchiwizowanymi.
  • get_projectPobierz szczegółowe informacje o konkretnym projekcie.
  • create_projectUtwórz nowy projekt. Wymaga uprawnień administratora.
  • update_projectZmień nazwę projektu, zmień jego domyślny status rozliczalności, zarchiwizuj go lub edytuj jego notatki.
  • delete_projectZwraca bezpośredni link do ustawień projektu, gdzie człowiek potwierdza usunięcie.

Członkowie projektu

  • list_project_membersWyświetl listę członków przypisanych do konkretnego projektu.
  • add_project_memberZwraca bezpośredni link do sekcji członków projektu, gdzie człowiek dodaje członka.
  • remove_project_memberZwraca bezpośredni link do sekcji członków projektu, gdzie człowiek usuwa członka.

Użytkownicy

  • list_usersWyświetl listę użytkowników w Twojej organizacji.
  • get_userPobierz szczegółowe informacje o konkretnym użytkowniku.
  • get_current_userPobierz identyfikator wywołującego, strefę czasową oraz ustaloną przez serwer bieżącą datę i tydzień. Zwykle pierwsze wywołanie w przepływie pracy.
  • create_userZwraca bezpośredni link do strony zapraszania członków.
  • update_userZwraca bezpośredni link do strony profilu użytkownika.

Organizacja

  • get_organizationPobierz informacje o swojej organizacji, w tym jej ustawienia.
  • update_organizationZwraca bezpośredni link do strony ustawień organizacji.

Kalendarz

  • get_calendarPobierz obliczony po stronie serwera kalendarz z dniami roboczymi, oczekiwanymi godzinami, weekendami i świętami. Źródło prawdy przed rejestrowaniem czasu na przestrzeni dni.

Raporty

  • list_reportsWyświetl listę zapisanych raportów w Twojej organizacji.
  • get_reportPobierz szczegóły konkretnego raportu.
  • create_reportZbuduj zapisany raport z własnymi wymiarami, metrykami, okresami oraz filtrami projektów lub członków zespołu.

Arkusz czasu pracy

  • get_timesheet_statusSprawdź status blokady grafików dla wybranego tygodnia.
  • lock_timesheetZablokuj tygodniowy grafik dla użytkownika. Wymaga uprawnień administratora.
  • unlock_timesheetUsuń istniejącą blokadę grafiku. Wymaga uprawnień administratora.

Żądania

  • list_requestsWyświetl listę żądań do zatwierdzenia, takich jak odblokowania grafików i zmiany ról. Domyślnie pokazuje żądania oczekujące.
  • request_timesheet_unlockPoproś administratora o odblokowanie zablokowanego tygodnia, aby można było edytować grafik.
  • approve_unlock_requestZatwierdź oczekujące żądanie odblokowania, dając użytkownikowi krótki czas na edycję. Wymaga uprawnień administratora.
  • reject_unlock_requestOdrzuć oczekujące żądanie odblokowania. Użytkownik zostanie powiadomiony.

Podsumowanie i analityka

  • get_time_summaryPodsumuj zarejestrowany czas w danym okresie, pogrupowany według dnia, tygodnia, miesiąca, projektu lub użytkownika.

Wypróbuj funkcje AI za darmo

Serwer MCP i Sandbot są bezpłatne dla kwalifikujących się organizacji w okresie wczesnego dostępu. Opowiedz nam o swoim zespole, a my je włączymy.

Zobacz ofertę wczesnego dostępu