Przejdź do głównej zawartości

Integracje z systemem (poczta, kalendarz, przypomnienia, notatki)

Dzięki integracjom z systemem Speedwave może pracować z aplikacjami, które masz na komputerze, zamiast tych w chmurze: z Kalendarzem, Przypomnieniami, Pocztą i Notatkami. Wystarczy, że włączysz jedną z nich w projekcie, a Speedwave pokaże twoje przypomnienia, zajrzy do kalendarza, przeczyta i wyśle pocztę albo poszuka czegoś w notatkach, zupełnie tak, jak zrobiłbyś to sam w danej aplikacji. Każda z czterech integracji ma własny przełącznik, więc sam decydujesz, do których aplikacji Speedwave ma dostęp.

Całość opiera się na procesie hosta o nazwie mcp-os. Wszystkie pozostałe integracje Speedwave chodzą wewnątrz odizolowanego kontenera, ale Kalendarz, Przypomnienia, Poczta i Notatki udostępniają swoje interfejsy API tylko na poziomie hosta i żaden kontener się do nich nie dobierze. Dlatego mcp-os uruchamia się wprost na twoim komputerze. Nasłuchuje jedynie na pętli zwrotnej hosta i nigdy nie wychodzi do twojej sieci.

Na macOS mcp-os steruje czterema natywnymi pomocnikami, po jednym na każdą usługę: calendar-cli oraz reminders-cli opierają się na frameworku EventKit od Apple, a mail-cli i notes-cli sterują aplikacjami Mail.app i Notes.app za pomocą automatyzacji AppleScript. Speedwave nie trzyma przy tym żadnych danych logowania. Zapamiętuje tylko tyle, czy w danym projekcie przełącznik jest włączony, czy nie. Samym uprawnieniem zajmuje się macOS.

Speedwave nigdy nie rozmawia z mcp-os wprost. Każde żądanie idzie przez ten sam MCP Hub, który kieruje ruchem wszystkich pozostałych wywołań narzędzi, a ten podaje je dalej do procesu hosta. Następnie mcp-os uruchamia właściwego natywnego pomocnika, a ten sięga po EventKit albo Apple Events, żeby dotrzeć do aplikacji.

Zanim integracja się włączy, najpierw sprawdzane jest uprawnienie. Kiedy macOS odmówi, Speedwave cofa przełącznik do pozycji wyłączonej i wyświetla błąd, dzięki czemu jego stan zawsze pokrywa się z tym, na co faktycznie zgodził się macOS. Przy każdym starcie Speedwave na nowo weryfikuje każdą włączoną integrację z aktualnym stanem uprawnień w macOS. Jeśli od poprzedniego uruchomienia odebrałeś któreś uprawnienie, dana integracja zostaje wyłączona, a na ekranie pojawia się baner z nazwą usługi, która straciła dostęp. Ta weryfikacja odbywa się tylko raz, przy starcie, więc cofnięcie uprawnienia w trakcie pracy nie odświeży banera, dopóki nie uruchomisz aplikacji ponownie.

Wszystkie cztery integracje, czyli Kalendarz, Przypomnienia, Poczta i Notatki, już teraz działają na macOS. To na razie jedyna platforma, która je obsługuje.

Poniżej znajdziesz wszystko, po co Speedwave może sięgnąć, kiedy dana integracja jest włączona. Działania, które coś kasują lub zmieniają nieodwracalnie, są oznaczone. Wysłanie wiadomości i odpowiedź na nią zawsze wymagają jawnej flagi potwierdzenia.

NarzędzieCo robi
listCalendarsPokazuje kalendarze dostępne na tym urządzeniu.
listEventsPokazuje wydarzenia z kalendarza w zadanym przedziale dat.
getEventZwraca pojedyncze wydarzenie z kalendarza wskazane po ID.
createEventZakłada wydarzenie w kalendarzu.
updateEventZmienia istniejące wydarzenie w kalendarzu.
deleteEventKasuje wydarzenie z kalendarza. Nieodwracalne.
listReminderListsPokazuje listy przypomnień wraz z ich grupami.
listRemindersPokazuje przypomnienia, w razie potrzeby zawężone do wybranej listy.
getReminderZwraca pojedyncze przypomnienie wskazane po ID.
createReminderZakłada przypomnienie, z opcjonalnym terminem, priorytetem i tagami.
completeReminderOdhacza przypomnienie jako zrobione.
detectMailClientsRozpoznaje dostępne programy pocztowe (Apple Mail, Outlook i tak dalej).
listMailboxesPokazuje konta pocztowe i ich foldery.
listEmailsPokazuje wiadomości ze skrzynki, ze stronicowaniem.
getEmailZwraca pojedynczą wiadomość wskazaną po ID, razem z całą treścią.
searchEmailsWyszukuje wiadomości po temacie, treści lub nadawcy.
sendEmailWysyła nową wiadomość. Wymaga jawnej flagi potwierdzenia. Nieodwracalne.
replyToEmailOdpowiada na wiadomość, w razie potrzeby do wszystkich adresatów. Wymaga jawnej flagi potwierdzenia. Nieodwracalne.
listNoteFoldersPokazuje foldery notatek i notatniki.
listNotesPokazuje notatki, w razie potrzeby zawężone do wybranego folderu.
getNoteZwraca pojedynczą notatkę wskazaną po ID, razem z całą treścią.
searchNotesWyszukuje notatki po tytule lub treści.
createNoteZakłada notatkę.
updateNoteZmienia tytuł lub treść istniejącej notatki.
deleteNoteKasuje notatkę. Nieodwracalne.

Zanim cokolwiek z tego dotrze do Kalendarza, Przypomnień, Poczty czy Notatek, wywołanie narzędzia przechodzi kontrolę: wymagane pola muszą być wypełnione, tekst ma ograniczoną długość, liczby muszą trzymać się dozwolonego zakresu, a daty muszą być poprawnym zapisem ISO 8601. Błędne dane od razu wywalają się z czytelnym kodem błędu i nie dotykają aplikacji, co ułatwia odróżnienie błędu kontroli od błędu uprawnień, gdy Speedwave zgłasza, że coś się nie udało. O błędach uprawnień przeczytasz na stronie Rozwiązywanie problemów.

Integracje z systemem obejdą się bez konta i bez klucza API: zgodę trzyma macOS, a Speedwave zapamiętuje jedynie to, czy przełącznik jest włączony.

  1. Wejdź na ekran integracji w swoim projekcie.

  2. Przełącz na włączone tę integrację, której potrzebujesz: Przypomnienia, Kalendarz, Pocztę albo Notatki.

  3. Potwierdź monit, który wyświetli macOS. Przy Przypomnieniach i Kalendarzu zobaczysz okno Privacy & Security. Przy Poczcie i Notatkach pojawi się okno Automation, bo te działają przez automatyzację AppleScript, a nie przez osobny framework.

Jeśli integracji nie da się utrzymać włączonej albo sama się wyłączyła i wyświetliła baner, to znak, że macOS akurat nie przyznaje uprawnienia. Poradzisz sobie tak samo: opisaną wyżej drogą przez Ustawienia systemowe. Odrzucone monity, które trzeba naprawić przez tccutil reset, oraz komunikat „app is not running” z Poczty lub Notatek omawia strona Rozwiązywanie problemów.

Integracje z systemem nie posługują się żadnymi tokenami: zgodę trzyma macOS w swoim własnym systemie uprawnień, a Speedwave pamięta tylko tyle, czy w danym projekcie przełącznik jest włączony. Tym różnią się od pozostałych integracji, z którymi łączy się Speedwave, bo tam token musi gdzieś leżeć na dysku. Pełniejszy obraz znajdziesz na stronie Jak przechowywane są dane logowania.