Skip to main content
Glama
nesirat

MCP Vulnerability Management System

by nesirat
models.py2.46 kB
from sqlalchemy import Column, Integer, String, DateTime, Float, ForeignKey, Text, Enum, Boolean from sqlalchemy.orm import relationship from sqlalchemy.sql import func import enum from .database import Base from datetime import datetime class SeverityLevel(enum.Enum): CRITICAL = "critical" HIGH = "high" MEDIUM = "medium" LOW = "low" INFO = "info" class Vulnerability(Base): __tablename__ = "vulnerabilities" id = Column(Integer, primary_key=True, index=True) cve_id = Column(String, unique=True, index=True) title = Column(String) description = Column(Text) severity = Column(Enum(SeverityLevel)) cvss_score = Column(Float) published_date = Column(DateTime) last_modified_date = Column(DateTime) source = Column(String) # e.g., "BSI", "NVD", etc. references = Column(Text) # JSON string of references created_at = Column(DateTime(timezone=True), server_default=func.now()) updated_at = Column(DateTime(timezone=True), onupdate=func.now()) class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) email = Column(String, unique=True, index=True) hashed_password = Column(String) is_active = Column(Boolean, default=True) is_admin = Column(Boolean, default=False) created_at = Column(DateTime(timezone=True), server_default=func.now()) last_login = Column(DateTime(timezone=True)) api_keys = relationship("APIKey", back_populates="user") class APIKeyUsage(Base): __tablename__ = "api_key_usage" id = Column(Integer, primary_key=True, index=True) key_id = Column(Integer, ForeignKey("api_keys.id")) endpoint = Column(String) timestamp = Column(DateTime, default=datetime.utcnow) status_code = Column(Integer) response_time = Column(Float) api_key = relationship("APIKey", back_populates="usage") class APIKey(Base): __tablename__ = "api_keys" id = Column(Integer, primary_key=True, index=True) user_id = Column(Integer, ForeignKey("users.id")) name = Column(String) description = Column(String, nullable=True) key = Column(String, unique=True, index=True) is_active = Column(Boolean, default=True) created_at = Column(DateTime, default=datetime.utcnow) last_used = Column(DateTime, nullable=True) user = relationship("User", back_populates="api_keys") usage = relationship("APIKeyUsage", back_populates="api_key")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nesirat/MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server