Добавить memory_server.py
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import asyncio
|
||||
from fastmcp import FastMCP
|
||||
from typing import Any
|
||||
|
||||
# Внутреннее хранилище памяти
|
||||
memory_store: dict[str, Any] = {}
|
||||
namespace_store: dict[str, dict[str, Any]] = {}
|
||||
|
||||
mcp = FastMCP("memory_server")
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def save(key: str, value: str) -> str:
|
||||
"""Сохраняет значение по ключу."""
|
||||
memory_store[key] = value
|
||||
return f"Значение сохранено под ключом '{key}'."
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def get(key: str) -> str | None:
|
||||
"""Возвращает значение по ключу. Если ключ не найден, возвращает None."""
|
||||
return memory_store.get(key)
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def delete(key: str) -> str:
|
||||
"""Удаляет значение по ключу."""
|
||||
if key in memory_store:
|
||||
del memory_store[key]
|
||||
return f"Ключ '{key}' удалён."
|
||||
return f"Ключ '{key}' не найден."
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def list_keys() -> dict[str, list[str]]:
|
||||
"""Возвращает список всех сохранённых ключей."""
|
||||
return {"keys": list(memory_store.keys())}
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def save_with_namespace(namespace: str, key: str, value: str) -> str:
|
||||
"""Сохраняет значение в указанном пространстве имён."""
|
||||
ns = namespace_store.setdefault(namespace, {})
|
||||
ns[key] = value
|
||||
return f"Значение сохранено под ключом '{key}' в пространстве имён '{namespace}'."
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def get_by_namespace(namespace: str, key: str) -> str | None:
|
||||
"""Получает значение из указанного пространства имён."""
|
||||
ns = namespace_store.get(namespace, {})
|
||||
return ns.get(key)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
mcp.run()
|
||||
Reference in New Issue
Block a user