Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Sounding checks proposed decisions and returns structured proceed, revise, or pause assessments.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:
https://aisounding.com/mcp터미널에서 이 명령어를 실행하세요
claude mcp add --transport http sounding https://aisounding.com/mcp프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"sounding": {
"url": "https://aisounding.com/mcp"
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"sounding": {
"type": "http",
"url": "https://aisounding.com/mcp"
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:
https://aisounding.com/mcp메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
아직 이 서버의 도구 목록을 읽지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 Zeromega01 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.16)은 31일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Apify MCP Server
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Sounding is an invited decision check for consequential work. Give it a proposed action, the evidence for and against it, who owns the decision, and the cost of waiting. It recommends proceed, revise, or pause, identifies one question that could change the action, and suggests a bounded next step. It does not approve plans or act on anyone’s behalf.
Changes since 0.1.4, all on October 5 (details in the changelog):
MCP-Protocol-Version header gets HTTP 400.Assessment unavailable (timeout); try again later.Changes 0.1.7 to 0.1.9 came from replaying 57 real decisions from one build through Sounding and comparing its answers with what was actually decided.
The hosted Node runtime reports its version in the MCP serverInfo, at /healthz, and in each assessment result's _meta["com.aisounding/runtime"], together with the configured requested_model and the served_model that OpenAI reports for that call. A live call after deployment reported requested_model and served_model both as gpt-6-sol. The structured assessment itself is unchanged. The Python reference runtimes report the same version but do not add model metadata.
The agent instruction on /start now says what to do when Sounding is unavailable: retry once, then treat the action as unchecked, not approved, and follow the normal approval process.
Evaluation results (repeat-run consistency, one-sided framing, should-pass checks and a comparison with another independent reviewer) are published with every input and output at aisounding.com/evaluation. A public changelog is on /docs.
New responses replace the old confidence field with assessment_support: an object containing level (strong, moderate or tentative) and a short, case-specific explanation. The level rates how settled the underlying decision is on the supplied evidence: strong means the evidence clearly points one way and missing facts are unlikely to change it; moderate means it leans one way but a named assumption could reverse it; tentative means the evidence conflicts, is thin or cannot distinguish the options, so the next step is mainly a way to find out. It is not the probability of eventual success or authorization to act, and it does not rate whether the recommended next step is sensible. A pause pending one decisive fact is usually tentative. The explanation names what would most likely change the level.
The tool remains sounding_decision_check. Decision (or proposed_action) and goal remain the only required inputs; all existing context fields remain optional. This is a response-contract change: clients reading confidence must read assessment_support.level and assessment_support.explanation instead and refresh cached tool definitions. There is no conversion back to confidence. Historical recorded examples retain their original output and are labeled as such.
The original one-call architecture, model default and 1,200-token ceiling remain. This focused change does not adopt the broader V1.1 response layout or the abandoned reviewed-dialogue architecture.
Only a nonempty decision and goal are required. Use decision for a proposed action, options or question; the existing proposed_action name remains accepted. If both are supplied, they must match.
{
"decision": "Try a revised team handoff note next week?", "goal": "Reduce missed handoff information." }
More relevant information generally supports better guidance. Optional means not required to submit, not unnecessary to assess. Include relevant context already available; identify unknowns rather than inventing facts or authority. A calling AI should not turn every optional field into a question for the human. If missing information could change the recommendation, Sounding should identify the uncertainty and give bounded advice or a targeted question. Acceptance of a request is not approval to act.
Optional fields: evidence, constraints and affected_people are arrays of strings (since 0.1.14 the hosted endpoint and the Python CLI, local MCP and HTTP adapters also accept the string arrays evidence_against, alternatives and prior_decisions); reversibility, urgency, decision_owner and task_id are strings. Omit unknown context, rather than guessing or sending null. Empty optional lists/text are accepted and do not assert that no constraints or affected people exist. A supplied task ID must be nonempty; an omitted ID is generated and returned. No substantive facts or permission defaults are generated.
Minimal request and complete compatible request work through the Node endpoint, Python CLI and Python MCP adapters. Reconnect MCP clients to refresh cached tool schemas. The single model call and 1,200-token ceiling remain unchanged; the output now uses Assessment Support. This optional-input release is separate from the broader experimental 1.1/2.0 designs.
Python 3.10+ and an OpenAI API key are required. No third-party Python package is needed.
Set OPENAI_API_KEY in your environment, then:
python3 sounding_bridge.py --input example_request.json
Windows PowerShell, after setting OPENAI_API_KEY in your environment:
py sounding_bridge.py --input example_request.json
An agent can write a request JSON file, invoke the command as a subprocess, and parse one JSON object from standard output. Operational errors go to standard error with a nonzero exit code. The request contract is described above; example_request.json shows a complete optional-context example. The output contains task_id, disposition, reason, material_question, evidence_basis, assumptions_to_check, next_step, and assessment_support. An empty material_question is valid when the plan should proceed.
sounding_mcp.py exposes one stdio MCP tool, sounding_decision_check. Configure an MCP-capable agent to launch it as a local subprocess with Python. Supply decision and goal, plus available optional context, as the tool arguments. A typical client configuration needs a command and arguments like these (the exact settings format varies by client):
{
"command": "py", "args": ["C:\\path\\to\\Sounding\\sounding_mcp.py"] }
Set OPENAI_API_KEY in the environment of the process that launches the MCP server. On Windows, if the host does not pass it through, the adapter reads the saved OPENAI_API_KEY from the current user's Windows environment settings at tool-call time. It does not print or save the key in this repository. The Windows desktop configuration tested locally uses py as the command, the absolute path to sounding_mcp.py as its single argument, the Sounding folder as the working directory, and blank environment fields. Fully restart the client after changing the configuration; a client may keep an older server process alive. The desktop client has also stalled on some otherwise fast calls, so this configuration is not yet a reliability guarantee.
For the fuller private formation context, add --private-prototype and the local prototype directory to the configured arguments. The client cannot set the model or select a private directory through a tool call; SOUNDING_MODEL or --model is a local launch setting. The default model is gpt-6-sol unless overridden; the effective setting of the September live runs was not independently captured. From version 0.1.4 the hosted runtime reports the served model in each result's _meta; a live call on October 4, 2026 reported gpt-6-sol. The server reads newline-delimited JSON-RPC over standard input/output and does not listen on a network port. It makes an OpenAI request only when the tool is invoked, then returns advice to the caller. A model call runs the bridge CLI in a child process with a 60-second deadline, returning a bounded error if it exceeds that limit. A slow call may therefore time out even if the API would eventually complete. The caller remains responsible for reviewing it and deciding what to do.
This is an interface preview. Nine local contract tests cover MCP initialization, tool discovery, validation, response shape, and the bounded timeout. In a private September 28, 2026 demonstration, six fictional public-role requests returned assessments: two through the CLI, three through a desktop Codex MCP client, and one through a direct PowerShell MCP client. Five recommended revise; one recommended proceed. Several other desktop MCP attempts stalled despite model calls completing in roughly seven seconds. The cause of those client stalls remains unresolved. The six fictionalized inputs and recorded outputs are published at aisounding.com/cases. The private evidence records remain outside this repository. These demonstrations show that the interface can work and provide inspectable answers; they do not establish reliable desktop operation or improved real-world decisions.
For local diagnosis, the adapter writes event times, process ID, status, response byte count, and elapsed seconds to %LOCALAPPDATA%\Sounding\mcp-diagnostic.log on Windows (or ~/Sounding/mcp-diagnostic.log otherwise). The log omits case content, model output, and credentials. The MCP response carries the full assessment once in structuredContent and a short text pointer in content; clients should read structuredContent for the full answer. response_serialized, response_written, and response_flushed distinguish stages of the adapter's output. Even response_flushed does not prove the client displayed it. Share only the relevant tail when investigating a stalled call.
The model request uses the Responses API with store: false and a strict JSON schema. Input is sent to the configured model. The tool has no GitHub token, no forum account, no scheduler, and no write access to any external service. The calling agent remains responsible for checking its evidence, applying its own permissions, and deciding whether to act.
sounding_http.py provides a stateless HTTP MCP endpoint at POST /mcp. It uses the same optional-context request contract and public role.md as the local version. It can be deployed from the included Dockerfile on a container host with a public HTTPS URL. The Python service speaks HTTP behind the host's TLS ingress; never expose its port directly to the internet. No GitHub App installation is required for this route. Keep the GitHub repository private if desired.
The Node port in sounding_siteground.mjs is deployed from the private working repository's main branch (this public repository mirrors its source) as a SiteGround Node.js Project on GrowBig. The public MCP address is `https://aisounding.com/mcp`. During the open preview, no token is requi
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요