Unofficial AmiAmi API — Python library and local MCP server for Japan's largest hobby retailer
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 3 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
find_by_jan
-
item
-
search
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed v0.1.0 · analyzer v33 · 2w ago
danger signals1
- dynamic code execution __import__() amiami_api-0.1.0/tests/test_transport_and_urls.py :312
source = __import__(
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 20
filesystem 3
- fs amiami_api-0.1.0/src/amiami_api/cache.py :14
from pathlib import Path - fs (weak) amiami_api-0.1.0/tests/conftest.py :9
from pathlib import Path - fs (weak) amiami_api-0.1.0/tests/test_transport_and_urls.py :315
text = open(source, encoding="utf-8").read()
network 4
- net amiami_api-0.1.0/src/amiami_api/transport.py :42
from curl_cffi import requests as curl_requests - net amiami_api-0.1.0/src/amiami_api/urls.py :15
from urllib.parse import urlencode - net (weak) amiami_api-0.1.0/tests/test_live.py :17
from curl_cffi import requests as curl_requests - net (weak) amiami_api-0.1.0/tests/test_transport_and_urls.py :316
for banned in ("import httpx", "import requests", "curl_cffi", "urllib.request"):
secrets 1
- secrets amiami_api-0.1.0/src/amiami_api/server.py :33
user_key=os.environ.get("AMIAMI_API_USER_KEY", DEFAULT_USER_KEY),
tool registrations 3
- search amiami_api-0.1.0/src/amiami_api/server.py :50
- item amiami_api-0.1.0/src/amiami_api/server.py :110
- find_by_jan amiami_api-0.1.0/src/amiami_api/server.py :129
declared dependencies 4
- mcp@>=1.2
- curl_cffi@>=0.7
- pydantic@>=2.0
- pytest@>=8.0