modelcontextprotocol / modelcontextprotocol/java-sdk

I would like to maintain MCP server state persisted (sessionId)

Ouverte
#738 2 commentaires 3 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

enhancement feature/session-storage P2
Langage dominant
Java
Étoiles
3.7k
Forks
1.1k
Merge moyen
1 j 15 h
PR mergées (30 j)
9

Description

Now the session id is maintained in memory in a map. But since I have my MCP server multiple pods running, I would like the state to be persisted in redis or in a DB.

I would like to override the session Validator as a parameter in the HttpServletStreamableServerTransportProvider

Current Behavior

Currently only the session creation can be customised but not maintaining the state fully.

Context

I am not able to implement stateful session in a distributed setup

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par HttpServletStreamableServerTransportProvider et examinez la manière dont sont gérées la création et la validation des sessions, ainsi que la map des sessions en mémoire. Définissez un point d’extension pour la validation et la persistance personnalisées des sessions, qui fonctionne sur plusieurs pods, avec Redis ou une base de données comme cible ; le travail sera considéré comme terminé lorsque les sessions avec état ne dépendront plus d’un seul processus.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java, redis
Domaine
backend, distributed-systems
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.