github Python analyzed dc232d7

artificemachine/obsidian-semantic-mcp

github

MCP server for Obsidian with semantic search, vector embeddings via pgvector, and Claude Code integration

maintainer
artificemachine
license
Apache-2.0
first seen
2026-06-25
last seen
2026-07-22
releases · 30d
28
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution in artificemachine/obsidian-semantic-mcp
capabilities 0 tools
transport stdio counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit dc232d7 · analyzer v28 · 1d ago

skills & prompt files 3

danger signals1

code evidence vv0.16.3 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 29

filesystem 6

  • fs artificemachine-obsidian-semantic-mcp-dc232d7/obsidian_semantic_mcp.py :12 from pathlib import Path
  • fs artificemachine-obsidian-semantic-mcp-dc232d7/osm_init.py :23 import shutil
  • fs artificemachine-obsidian-semantic-mcp-dc232d7/src/config.py :10 from pathlib import Path
  • fs artificemachine-obsidian-semantic-mcp-dc232d7/src/dashboard.py :22 from pathlib import Path
  • fs artificemachine-obsidian-semantic-mcp-dc232d7/src/launcher.py :24 from pathlib import Path
  • fs artificemachine-obsidian-semantic-mcp-dc232d7/src/server.py :45 from pathlib import Path

shell / exec 4

  • shell artificemachine-obsidian-semantic-mcp-dc232d7/osm_init.py :24 import subprocess
  • shell artificemachine-obsidian-semantic-mcp-dc232d7/src/dashboard.py :18 import subprocess
  • shell artificemachine-obsidian-semantic-mcp-dc232d7/src/launcher.py :22 import subprocess
  • shell artificemachine-obsidian-semantic-mcp-dc232d7/src/server.py :1161 import subprocess

network 3

  • net artificemachine-obsidian-semantic-mcp-dc232d7/osm_init.py :22 import requests
  • net artificemachine-obsidian-semantic-mcp-dc232d7/src/dashboard.py :23 from urllib.parse import urlparse, parse_qs
  • net artificemachine-obsidian-semantic-mcp-dc232d7/src/server.py :50 import requests

secrets 3

  • secrets artificemachine-obsidian-semantic-mcp-dc232d7/osm_init.py :877 if env_token := os.environ.get("DASHBOARD_TOKEN"):
  • secrets artificemachine-obsidian-semantic-mcp-dc232d7/src/config.py :40 pw = os.environ.get("POSTGRES_PASSWORD", "")
  • secrets artificemachine-obsidian-semantic-mcp-dc232d7/src/launcher.py :60 if not os.environ.get("DATABASE_URL") and not os.environ.get("POSTGRES_PASSWORD"):

database 2

  • db artificemachine-obsidian-semantic-mcp-dc232d7/src/migrations.py :35 from psycopg2 import sql
  • db artificemachine-obsidian-semantic-mcp-dc232d7/src/server.py :48 import psycopg2

declared dependencies 8

  • mcp@==1.28.1
  • psycopg2-binary@==2.9.12
  • watchdog@==6.0.0
  • requests@==2.34.2
  • pyjwt@==2.13.0
  • httpx@==0.28.1
  • python-dotenv@==1.2.2
  • pyyaml@==6.0.3