Prehľad
TPsoftMCP je môj súkromný server pre Model Context Protocol. Prepája AI asistenta s nástrojmi, ktoré používam pri vývoji a každodennej práci: repozitármi v Gitea, prípravou e-mailových konceptov a Telegramom.
Projekt vznikol ako vlastná infraštruktúra pre internú automatizáciu. Jeho nástroje používam aj pri práci s repozitármi počas tvorby tohto portfólia.
Zadanie
AI asistent potrebuje pri práci kontext z konkrétnych projektov a možnosť vykonať jasne definované operácie. Ručné kopírovanie súborov a prenášanie výsledkov medzi službami zbytočne prerušuje pracovný postup.
Cieľom bolo sprístupniť vlastné služby cez spoločné rozhranie s autentifikáciou a predvídateľnými vstupmi a výstupmi.
Riešenie
Server poskytuje nástroje na prezeranie repozitárov, čítanie a sťahovanie súborov aj zápis zmien do Gitea. Každý úspešný zápis vytvára commit; pri aktualizácii alebo zmazaní sa kontroluje SHA súboru, aby sa neprepísala novšia verzia.
Ďalšia časť pripravuje e-mailové koncepty a ukladá ich cez IMAP. Koncept zostáva pripravený na kontrolu a odoslanie v e-mailovom klientovi. Server zahŕňa aj nástroje pre Telegram.
Moja úloha
Navrhol a implementoval som server, integrácie jednotlivých služieb, autentifikáciu a spracovanie výsledkov. Súčasťou práce je aj diagnostika komunikácie s MCP klientmi a overovanie nástrojov cez skutočný transport.
Technická realizácia
Riešenie je postavené na PHP a mcp/sdk. Podporuje vzdialené pripojenie cez Streamable HTTP aj lokálny konzolový režim STDIO.
- OAuth Authorization Code s PKCE a rotáciou obnovovacích tokenov pre HTTP prístup.
- Integrácia Gitea API pre textové súbory, commity a binárne prílohy.
- Obrázky a ďalšie súbory v štandardných obsahových blokoch MCP, spolu so štruktúrovanými metadátami.
- Príprava e-mailových konceptov pomocou Symfony Mime a ukladanie cez IMAP.
- Kontrola vstupov, limity veľkosti súborov a testy integrácií.
Výsledok
Získal som funkčné prepojenie AI asistenta s vlastnou pracovnou infraštruktúrou. Asistent môže pracovať s aktuálnymi súbormi projektu a pripraviť výsledky v službách, ktoré už používam.
Ide o interný nástroj so súkromným zdrojovým kódom. Verejný opis predstavuje jeho účel a architektúru.