Kuweka MCP Server Ndani ya Programu ya Laravel
Wakala wa AI (AI agents) wanahitaji zaidi ya UI iliyochambuliwa tu. Wanahitaji njia ya kuita zana mahususi kwa ruhusa zinazofaa. Hili ndilo linalofanywa na Model Context Protocol (MCP).
Hivi karibuni niliunganisha MCP server moja kwa moja kwenye programu ya Laravel. Nataka kushiriki maamuzi ya usanifu (architectural decisions) yaliyotumika kujenga hili kwa usalama.
Mfano wa Mapokezi Fikiria programu yako kama jengo la ofisi.
- Web UI ni sehemu ya mapokezi (lobby) kwa ajili ya binadamu.
- REST API ni lango la wafanyakazi kwa ajili ya mifumo.
- MCP server ni meza ya mapokezi kwa ajili ya wakala wa AI.
Wakala huonyesha kitambulisho (ID) na kuomba kazi mahususi. Mpokezi hampe funguo za jengo. Wanahakiki ruhusa, wanatekeleza kazi moja, na kutoa jibu lenye muundo (structured answer).
Maamuzi Muhimu ya Usanifu
Tumia endpoint moja Usitengeneze njia (routes) nyingi kwa ajili ya zana tofauti. Tumia endpoint moja ya
/mcp. Itifaki (protocol) inashughulikia ugunduzi wa zana kiotomatiki. Uso mmoja ni rahisi zaidi kulinda na kuandika maelezo (document).Unganisha mifumo miwili ya uthibitishaji (dual authentication) Waombaji tofauti wanahitaji mbinu tofauti za usalama:
- Waombaji wa upande wa kwanza (kama vile zana za CLI) hutumia Sanctum personal access tokens.
- Wakala wa upande wa tatu (wanaofanya kazi kwa niaba ya watumiaji) hutumia OAuth 2.1.
Tumia driver-style resolver kushughulikia yote mawili. Kodu ya zana inapaswa kujali tu mtumiaji aliyethibitishwa, si jinsi alivyojiingiza (logged in).
Tekeleza RBAC iliyopo Uthibitishaji (Authentication) unathibitisha tu ni nani mwombaji. Lazima bado uhakiki kile wanachoweza kufanya. Kila zana inapaswa kuunganishwa na uwezo (ability) uliopo. Ikiwa mtumiaji hawezi kuona washiriki kwenye web UI, hapaswi kuweza kufanya hivyo kupitia MCP.
Weka kikomo cha matokeo ya data Usirudishe kamwe modeli kamili ya hifadhidata (database model). Chukulia matokeo ya MCP kama API ya umma. Rudisha tu nyanja (fields) mahususi ambazo wakala anazihitaji. Hii inazuia uvujaji wa data wa bahati mbaya.
Kujaribu kwa ajili ya Usalama Majaribio yako lazima yathibitishe kuwa mfumo unashindwa kwa usahihi. Jaribu kwamba:
- Mtumiaji asiye na ruhusa anapokea kosa la 403 Forbidden.
- Mtumiaji mwenye ruhusa anapokea nyanja (fields) zilizoruhusiwa pekee.
Seti nzuri ya majaribio (test suite) ni ulinzi wako bora dhidi ya uvujaji wa data unapotumia wakala huru (autonomous agents).
Muhtasari Ili kujenga MCP server inayowajibika, fuata sheria hizi tatu:
- Thibitisha kila mwombaji kwa kutumia mfumo sahihi.
- Toa ruhusa kwa kila zana kwa kutumia mfumo wako wa ruhusa uliopo.
- Chukulia kila matokeo ya zana kama rasilimali ya umma yenye kikomo.
