• Jordan Retro
  • Jordan 12 Taxi
  • Lebron Soldier 7
  • Jordan Retro
  • Jordan 12 Taxi
  • Lebron Soldier 7
  • Category Archives: Agenti Ai

    Serverele MCP in era inteligentei artificiale

    Ce este un server MCP ?

    Server MCP (Model Context Protocol)

    1. Definiție

    Un server MCP (Model Context Protocol) este un server specializat care implementează și gestionează protocolul MCP, destinat să faciliteze interacțiunea dintre modele de inteligență artificială (AI) și aplicații sau utilizatori. Acest protocol definește modul în care contextul, datele și comenzile sunt transmise și procesate între client și modelul AI.

    2. Rolul și funcțiile unui server MCP

    a. Gestionarea contextului

    • Serverul MCP menține și actualizează contextul conversațional sau de lucru, astfel încât modelele AI să poată răspunde coerent și relevant la cererile utilizatorilor.
    • Contextul poate include istoricul conversației, preferințele utilizatorului, datele de intrare anterioare etc.

    b. Interfațarea cu modele AI

    • Serverul MCP acționează ca un intermediar între utilizatori/aplicații și modelele AI (de exemplu, modele de limbaj, modele de viziune computerizată etc.).
    • Primește cereri, le structurează conform protocolului MCP și le transmite către modelul AI.

    c. Procesarea și livrarea rezultatelor

    • Primește răspunsurile generate de modelul AI, le adaptează la contextul curent și le livrează utilizatorului sau aplicației care a făcut cererea.

    d. Securitate și control

    • Asigură securitatea datelor transmise și procesate.
    • Poate implementa politici de acces, autentificare și logare a activităților.

    3. Utilizare în era inteligenței artificiale

    Serverele MCP sunt esențiale pentru:

    • Aplicații conversaționale (chatbot-uri, asistenți virtuali)
    • Sisteme de recomandare care personalizează răspunsurile pe baza contextului utilizatorului
    • Integrarea AI în aplicații enterprise unde contextul și istoricul interacțiunilor sunt critice
    • Automatizarea proceselor care necesită adaptare la contextul dinamic al utilizatorului sau al mediului

    4. Avantaje ale serverelor MCP

    • Coerență și personalizare: Răspunsurile AI sunt adaptate la contextul specific fiecărui utilizator sau aplicație.
    • Scalabilitate: Pot gestiona simultan mai multe sesiuni și contexte.
    • Flexibilitate: Pot fi integrate cu diverse modele AI și aplicații.
    • Securitate: Protocolul MCP poate include măsuri avansate de securitate și control al accesului.

    5. Exemplu de flux de lucru

    1. Utilizatorul trimite o cerere (ex: întrebare sau comandă) către serverul MCP.
    2. Serverul MCP adaugă cererea la contextul conversațional.
    3. Cererea și contextul sunt transmise modelului AI.
    4. Modelul AI generează un răspuns, ținând cont de context.
    5. Serverul MCP preia răspunsul, îl adaptează dacă este necesar și îl trimite utilizatorului.

    Rezumat

    Un server MCP (Model Context Protocol) este o componentă esențială în arhitectura aplicațiilor moderne de inteligență artificială, permițând gestionarea contextului și facilitând interacțiuni inteligente, personalizate și sigure între utilizatori și modele AI.

    Dacă ai nevoie de exemple concrete de implementare sau de detalii tehnice despre protocolul MCP, te rog să conectezi fișierul la chatbot folosind Document Retrieval settings pentru a putea extrage informații direct din documentul tău.

    Ai vrea să continui cu detalii despre arhitectura unui server MCP sau despre avantajele sale în comparație cu alte tipuri de servere AI?

    Cum configurez un server MCP (Model Context Protocol)?

    1. Cerințe preliminare

    Înainte de a începe configurarea, asigură-te că ai:

    • Un server fizic sau virtual (Linux/Windows, în funcție de cerințele MCP)
    • Acces la pachetul software MCP sau la sursa de implementare (de exemplu, un repository GitHub, un installer, etc.)
    • Acces la modelele AI pe care vrei să le integrezi (local sau cloud)
    • Permisiuni administrative pe server

    2. Instalarea software-ului MCP

    a. Obținerea software-ului

    • Descarcă pachetul MCP de pe site-ul oficial sau din repository-ul furnizat de dezvoltator.
    • Dacă MCP este open-source, clonează repository-ul:

    git clone https://github.com/organizatie/mcp-server.git

    b. Instalarea dependențelor

    • Instalează dependențele necesare (de exemplu, Python, Node.js, Docker, etc.):

    sudo apt update sudo apt install python3 python3-pip pip3 install -r requirements.txt

    c. Configurarea fișierelor de configurare

    • Editează fișierul de configurare (ex: config.yaml, .env, settings.json) pentru a seta:
      • Portul pe care va rula serverul MCP
      • Cheile de acces/API pentru modelele AI
      • Setările de securitate (autentificare, criptare)
      • Parametrii de context (dimensiunea contextului, timeout-uri, etc.)

    Exemplu de secțiune într-un fișier YAML:

    server:   host: 0.0.0.0   port: 8080 ai_model:   provider: openai   api_key: „API_KEY” context:   max_length: 2048 security:   enable_auth: true   auth_token: „TOKEN_SECRET”

    3. Pornirea serverului MCP

    • Rulează serverul folosind comanda specifică (exemple):

    python3 mcp_server.py # sau npm start # sau docker-compose up -d

    • Verifică logurile pentru eventuale erori:

    tail -f logs/server.log

    4. Testarea funcționalității

    • Folosește un client (CLI, Postman, browser) pentru a trimite o cerere de test către endpoint-ul MCP:

    curl -X POST http://localhost:8080/mcp -d ‘{„input”: „Salut, ce poți face?”}’

    • Verifică dacă serverul răspunde corect și dacă contextul este gestionat corespunzător.

    5. Integrarea cu aplicații externe

    • Configurează aplicațiile client să trimită cereri către serverul MCP, folosind protocolul și endpoint-urile definite.
    • Asigură-te că autentificarea și securitatea sunt active, mai ales în medii de producție.

    6. Monitorizare și mentenanță

    • Monitorizează performanța serverului (CPU, memorie, latență răspuns).
    • Actualizează periodic software-ul MCP și modelele AI.
    • Fă backup la fișierele de context și la loguri.

    7. Exemplu de arhitectură simplificată

    graph TD     Client –>|Cerere MCP| ServerMCP     ServerMCP –>|Context + Input| ModelAI     ModelAI –>|Răspuns| ServerMCP     ServerMCP –>|Răspuns final| Client

    Rezumat

    Configurarea unui server MCP implică:

    1. Instalarea software-ului și a dependențelor
    2. Configurarea fișierelor de setări pentru context, securitate și integrare AI
    3. Pornirea și testarea serverului
    4. Integrarea cu aplicații client și monitorizarea continuă

    sursa: mcpservers.ro

    MCP – Golden Key pentru automatizarea AI?

    Ce este MCP? Cum se acceseaza LLM-urile prin MCP? Cum funcționează autorizarea MCP? și alte aspecte

    MCP arată ca o cheie de Aur pentru a debloca întregul potențial al LLM-urilor. De la Google la Microsoft (MCP pe Windows 11) și multe între ele. Model Context Protocol — MCP atrage mult hype și pare supra-licitat. Are deja câteva starturi false, cum ar fi SSE (care este depreciat în favoarea HTTP Streaming din cauza costului de găzduire în cloud).

    Cu toate acestea, MCP umple un gol pentru integrarea LLM cu apeluri API și este suficient de popular pentru a deveni singurul standard care le guvernează pe toate. Este pur și simplu o modalitate de a vă publica API-urile, cum ar fi prin Swagger, astfel încât LLM-urile să le poată înțelege și să poată genera invocări ale API-ului cu argumente; aproape ca REST; doar că acesta este prin JSON-RPC și este independent de transport, spre deosebire de REST sau Protobuf/gRPC, care se bazează pe HTTP.

    Cu toate acestea, toate serverele MCP de la distanță sunt bazate pe HTTP, în timp ce cele locale comunică prin conducte numite de intrare/ieșire standard STDIO.

    MCP cu un exemplu de simplu Calculator MCP Server

    Modelele de limbaj mari (LLM-uri) sunt foarte puternice – dar nu sunt concepute pentru a fi calculatoare. Ele se luptă adesea cu operații aritmetice precise sau logice grele.

    Deci, dacă în loc să-i forțăm să calculeze, le-am oferi instrumentul potrivit ori de câte ori se confruntă cu o sarcină de calcul?

    Această idee nu este nouă. A fost deja implementat în multe feluri. Pornind de la codul generat de LLM pentru a face calculele și apoi extragerea acelui cod și rularea acestuia într-un sandbox python și oferirea rezultatului; sau LLM generând URL-ul sau JSON pentru apelarea unui alt serviciu prin REST sau GRPC și apoi extragerea URL-ului sau JSON și invocarea serviciului și obținerea rezultatului; sau poate într-un alt mod mai complicat de atat.

    Cu MCP, acest apel de instrument este standardizat. Se bazează pe JSON-RPC.

    Are două variante; (1) uneltele locale pot fi apelate prin STDIO (pipes). (2) Unelte de la distanță prin HTTP.

    Un mod simplificat de a gândi MCP prin HTTP este că este aproape ca in cazul REST API. Dar cea mai mare diferență este că REST este stateless, în timp ce MCP este stateful. Și asta influentează o mulțime de decizii de proiectare.

    MCP este un concept simplu pe care chiar și oamenii non-tehnici îl pot înțelege.

    Am găzduit un server MCP simplu în Python în mod liber prin HuggingFace Spaces folosind Docker. Specificația MCP este complexă și aveți nevoie de un framework precum FastMCP pentru a construi serverul pentru Python.

    from fastmcp import FastMCP
    mcp = FastMCP()
    # Să presupunem că acesta este instrumentul pe care doriți să-l expuneți
    # Treceti toate tipurile și descrierea lor
    @mcp.tool()
    def add(a: int, b: int) -> int:
        """Add two numbers"""
        return a + b
    if __name__ == "__main__":
        # take host and port from command line
        import argparse
        parser = argparse.ArgumentParser(description="Run FastMCP server")
        parser.add_argument("--host", type=str, default="0.0.0.0", help="Host address (default: 0.0.0.0)")
        parser.add_argument("--port", type=int, default=7860, help="Port number (default: 7860)")
        args = parser.parse_args()
        mcp.run(
            transport="streamable-http", # https://github.com/modelcontextprotocol/python-sdk/?tab=readme-ov-file#streamable-http-transport
            host=args.host,
            port=args.port,
            path="/mcp",
            log_level="debug",
        )

    Se expune metoda add

    Am facut si un client MCP găzduit prin Colab, pe care ar trebui să-l puteți rula și testa.

    Este mai ușor de inteles fluxul pe partea de client. În primul rând, ne conectăm la serverul MCP și îi cerem să listeze instrumentele.

    async with Client("https://alexcpn-mcpserver-demo.hf.space/mcp/") as client:
            await client.ping()
            # List available tools
            tools = await client.list_tools()
            print("Available tools:", tools)
            tool_result = await client.call_tool("add", {"a": "1", "b": "2"})
            print("Tool result:", tool_result)
    
    Rezultatul este următorul.
    
    Available tools: [Tool(name='add', description='Add two numbers', inputSchema={'properties': {'a': {'title': 'A', 'type': 'integer'}, 'b': {'title': 'B', 'type': 'integer'}}, 'required': ['a', 'b'], 'type': 'object'}, annotations=None)]

    Fără un framework, acesta este modul în care expunem detaliile instrumentului pe server și este posibil să fi observat că asta este ceea ce primește Clientul. Framework-uri precum FastMCP deduc acest lucru din tipul informațiilor.

    @app.list_tools()
    async def list_tools() -> list[types.Tool]:
        return [
            types.Tool(
                name="add",
                description=(
                    "add two numbers and return the result. "
                    
                ),
                inputSchema={
                    "type": "object",
                    "required": ["a", "b"],
                    "properties": {
                        "a": {
                            "type": "integer",
                            "description": "The first number to add",
                        },
                        "b": {
                            "type": "integer",
                            "description": "The second number to add",
    ...
    
    

    Apoi, dăm această ieșire „tool_result” LLM-ului și îi cerem să genereze o ieșire JSON adecvată pentru apelul instrumentului cu argumentele relevante.

    a = 123124522
    b= 865734234
    question = f"Using the tools available {tool_result} frame the JSON RPC call to the tool add with a={a} and b={b}, do not add anything else to the output" + \
        "here is the JSON RPC call format {{\"method\": \"<method name>\", \"params\": {{\"<param 1 name>\": {<param 1 value>}, \"<param 2 name>\": {<param 2 value>} etc }}}}"
    
    
    # Use a simple model like gpt-3.5-turbo
      completion = openai_client.chat.completions.create(
          model="gpt-3.5-turbo", messages=[
             {"role": "user", "content":question }
          ]
      )
      # Print the response
      print("LLM response:", tool_call)
      print(tool_call["method"], tool_call["params"])
    
    

    Am obtinut JSON-ul de mai jos:

    LLM response: {'method': 'add', 'params': {'a': 123124522, 'b': 865734234}}
    add {'a': 123124522, 'b': 865734234}

    Trimitem acest JSON către serverul LLM prin API-ul de apel al instrumentului MCP Client.

    tool_result = await client.call_tool(tool_call["method"], tool_call["params"])
    print("Tool result:", tool_result)
    

    Rezultatul de la serverul MCP este mai jos.

    Tool result: [TextContent(type='text', text='988858756', annotations=None)]
    

    Simplu si corect – LLM apelează un instrument – mai degrabă LLM obține informații despre un instrument și generează semnătura de apel în format JSON, iar programul nostru folosește clientul MCP pentru a apela efectiv serverul MCP.

    Autorizarea în MCP

    MCP utilizează fluxul OAuth2 pentru autorizare. Aceasta înseamnă că nu trebuie să vă partajați numele de utilizator și/sau parola cu niciun client MCP. MCP Client vă redirecționează către serverul de resurse, să zicem un magazin foto sau Gmail sau orice alt serviciu, și vă conectați la server cu datele de conectare.

    1. Client MCP –> să spunem Gmail MCP Server (stabiliți o conexiune nesigură)
    2. Solicitați login(), serverul MCP trimite un link pentru a face clic cu sessionid-ul de mai sus
    3. Utilizatorul face clic pe link (sau browserul se deschide cu linkul) la serverul Gmail
    4. Utilizatorul introduce acreditările Gmail și i se arată că este conectat
    5. Intern, serverele Gmail apelează serverul Gmail MCP cu ID-ul sesiunii (roșu și îi spune serverului MCP că ID-ul sesiunii este autentificat
    6. Acum MCP Client –> sesiunea MCP Server este autentificată
    7. Alte apeluri care au nevoie de autentificare nu au nevoie de niciun token sau cheie secretă, clientul MCP poate solicita utilizatorilor e-mailuri etc

    Odată autentificat, serverul MCP primește un apel invers de la serverul de resurse, să zicem Gmail, prin adresa URL de redirecționare și marchează intern că sesiunea SSE sau HTTP Streaming este autentificată. Restul apelurilor pot fi apoi procesate fiind autentificate.

    sursa: https://blog.mersi.ai/2025/06/06/mcp-golden-key-pentru-automatizarea-ai/