amnesic

v0.1.17 suspicious
6.0
Medium Risk

The MCP server with the most ironic name in the registry — persistent semantic memory for your SQL databases

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package exhibits significant network and shell execution risks, raising concerns about its safety and potential for misuse.

  • High network risk due to suspicious network connections
  • High shell risk from use of subprocess.run for command execution
Per-check LLM notes
  • Network: The presence of network connection attempts is suspicious and may indicate unauthorized data transfer or command and control activity.
  • Shell: Executing commands via subprocess.run can be used to perform arbitrary actions on the system, which is highly risky if not properly controlled and documented.
  • Obfuscation: No obfuscation patterns detected, indicating low risk of malicious obfuscation.
  • Credentials: No credential harvesting patterns detected, indicating low risk of malicious credential theft.
  • Metadata: The repository's low engagement and lack of maintainer information suggest potential risks, but there are no clear signs of typosquatting or malicious intent.

📦 Package Quality Overall: Medium (5.6/10)

✦ High Test Suite 9.0

Test suite present — 10 test file(s) found

  • 10 test file(s) detected (e.g. test_config.py)
◈ Medium Documentation 5.0

Some documentation present

  • Detailed PyPI description (20386 chars)
○ Low Contributing Guide 4.0

No contributing guide or governance files found

  • Development Status classifier >= Beta
◈ Medium Type Annotations 5.0

Partial type annotation coverage

  • 88 type-annotated function signatures detected in source
◈ Medium Multiple Contributors 5.0

Limited contributor diversity

  • 1 unique contributor(s) across 30 commits in SurajKGoyal/amnesic
  • Single author but highly active (30 commits)

🔬 Heuristic Checks

Outbound Network Calls score 1.5

Found 1 network call pattern(s)

  • achable try: with socket.create_connection((conn.server, conn.port), timeout=2): return #
Code Obfuscation

No obfuscation patterns detected

Shell / Subprocess Execution score 2.0

Found 1 shell execution pattern(s)

  • ipt try: result = subprocess.run( cmd, capture_output=True,
Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

Email domain looks legitimate: gmail.com>

Suspicious Page Links

All external links appear legitimate

Git Repository History score 2.5

Git history flags: Repository has zero stars and zero forks

  • Repository has zero stars and zero forks
Maintainer History score 4.0

2 maintainer concern(s) found

  • Author name is missing or very short
  • Author "" appears to have only 1 package on PyPI (new or inactive account)
Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with amnesic
Create a mini-application called 'MemoryMender' that leverages the 'amnesic' package to enhance the semantic memory of a SQL database. This application will serve as a tool for users to annotate and query their database records with natural language descriptions, making it easier to retrieve information based on context rather than just raw data.

Step 1: Set up the environment
- Install Python and necessary libraries including 'amnesic', 'sqlalchemy' for database connectivity, and 'flask' for the web interface.
- Configure a local SQLite database or connect to an existing SQL database.

Step 2: Design the Database Schema
- Define the schema for the main table(s) where data will be stored.
- Create additional tables if needed to store annotations and metadata.

Step 3: Implement Semantic Annotation
- Use 'amnesic' to enable users to add semantic tags or natural language descriptions to each record.
- Ensure that these annotations are searchable and can be linked back to specific database entries.

Step 4: Develop Query Capabilities
- Integrate search functionality that allows users to query the database using natural language.
- Utilize 'amnesic' to interpret user queries and return relevant results based on both data content and associated annotations.

Step 5: Build the Web Interface
- Use Flask to create a simple web application that allows users to view, edit, and annotate database records.
- Provide forms for adding new records, editing existing ones, and searching the database using natural language queries.

Suggested Features:
- User authentication to secure access to the database.
- Real-time updates when new annotations are added or existing ones modified.
- Visualization tools to help users understand the relationships between annotated data points.
- Export capabilities to download annotated datasets in various formats such as CSV or JSON.

How 'amnesic' is utilized:
- 'amnesic' will be used to manage and interpret the semantic annotations attached to each database record. It will handle the storage, retrieval, and querying of these annotations to provide a richer, more contextual search experience.