MCP server for OpenAI API (chat, image, embeddings) via Ace Data Cloud.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http · sse counts 15 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
openai_chat_completion
-
openai_create_embedding
-
openai_create_response
-
openai_edit_image
-
openai_generate_image
-
openai_get_models
-
openai_get_realtime_connection_info
-
openai_get_task
-
openai_get_usage_guide
-
openai_list_chat_models
-
openai_list_embedding_models
-
openai_list_image_models
-
openai_list_tasks
-
openai_text_to_speech
-
openai_transcribe_audio
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 32517de · analyzer v33 · 23h ago
skills & prompt files 1
- agent-rules AceDataCloud-OpenAIMCP-32517de/CLAUDE.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 40
filesystem 5
- fs AceDataCloud-OpenAIMCP-32517de/core/config.py :5
from pathlib import Path - fs (weak) AceDataCloud-OpenAIMCP-32517de/tests/conftest.py :5
from pathlib import Path - fs (weak) AceDataCloud-OpenAIMCP-32517de/tests/test_deploy_contract.py :1
from pathlib import Path - fs (weak) AceDataCloud-OpenAIMCP-32517de/tests/test_server_card.py :3
from pathlib import Path - fs AceDataCloud-OpenAIMCP-32517de/tools/info_tools.py :409
with open("speech.mp3", "wb") as f:
network 4
- net AceDataCloud-OpenAIMCP-32517de/core/client.py :6
from urllib.parse import urlencode - net AceDataCloud-OpenAIMCP-32517de/core/oauth.py :22
from urllib.parse import urlencode - net (weak) AceDataCloud-OpenAIMCP-32517de/tests/test_client.py :5
import httpx - net AceDataCloud-OpenAIMCP-32517de/tools/audio_tools.py :7
import httpx
secrets 2
- secrets AceDataCloud-OpenAIMCP-32517de/core/config.py :22
api_token: str = field(default_factory=lambda: os.getenv("ACEDATACLOUD_API_TOKEN", "")) - secrets (weak) AceDataCloud-OpenAIMCP-32517de/tests/conftest.py :25
token = os.environ.get("ACEDATACLOUD_API_TOKEN", "")
tool registrations 15
- openai_text_to_speech AceDataCloud-OpenAIMCP-32517de/tools/audio_tools.py :28
- openai_transcribe_audio AceDataCloud-OpenAIMCP-32517de/tools/audio_tools.py :120
- openai_chat_completion AceDataCloud-OpenAIMCP-32517de/tools/chat_tools.py :19
- openai_create_embedding AceDataCloud-OpenAIMCP-32517de/tools/embedding_tools.py :20
- openai_generate_image AceDataCloud-OpenAIMCP-32517de/tools/image_tools.py :32
- openai_edit_image AceDataCloud-OpenAIMCP-32517de/tools/image_tools.py :215
- openai_get_models AceDataCloud-OpenAIMCP-32517de/tools/info_tools.py :33
- openai_get_realtime_connection_info AceDataCloud-OpenAIMCP-32517de/tools/info_tools.py :51
- openai_list_chat_models AceDataCloud-OpenAIMCP-32517de/tools/info_tools.py :79
- openai_list_image_models AceDataCloud-OpenAIMCP-32517de/tools/info_tools.py :157
- openai_list_embedding_models AceDataCloud-OpenAIMCP-32517de/tools/info_tools.py :225
- openai_get_usage_guide AceDataCloud-OpenAIMCP-32517de/tools/info_tools.py :256
show 3 more
- openai_create_response AceDataCloud-OpenAIMCP-32517de/tools/responses_tools.py :17
- openai_get_task AceDataCloud-OpenAIMCP-32517de/tools/tasks_tools.py :25
- openai_list_tasks AceDataCloud-OpenAIMCP-32517de/tools/tasks_tools.py :104
declared dependencies 15
- mcp@>=1.2.0,<2
- httpx@>=0.27.0
- python-dotenv@>=1.0.0
- pydantic@>=2.0.0
- loguru@>=0.7.0
- ruff@>=0.4.0
- mypy@>=1.10.0
- pre-commit@>=3.7.0
- pytest@>=8.0.0
- pytest-asyncio@>=0.23.0
- pytest-cov@>=5.0.0
- respx@>=0.21.0
show 3 more
- build@>=1.2.0
- twine@>=5.0.0
- mcp-openai@*
jetbrains-plugin 1
- opaque (low) AceDataCloud-OpenAIMCP-32517de/jetbrains/src/main/resources/META-INF/plugin.xml
bundled JetBrains plugin "OpenAI MCP" (AceDataCloud-OpenAIMCP-32517de/jetbrains/src/main/resources/META-INF/plugin.xml) — presence-detected; review the plugin descriptor
transport_posture 1
- binds all interfaces (0.0.0.0) AceDataCloud-OpenAIMCP-32517de/main.py :196
uvicorn.run(app, host="0.0.0.0", port=args.port)