Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Send a prompt to ChatGPT anonymously and get the answer with its web sources, as JSON.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
HASDATA_API_KEY, x-api-key비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"chatgpt": {
"command": "npx",
"args": [
"-y",
"@hasdata/chatgpt-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add --transport http chatgpt 'https://mcp.hasdata.com/mcp?apis=chatgpt' --header 'x-api-key: your-value'claude mcp add chatgpt --env HASDATA_API_KEY=your-value -- npx -y @hasdata/chatgpt-mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"chatgpt": {
"url": "https://mcp.hasdata.com/mcp?apis=chatgpt",
"headers": {
"x-api-key": "your-value"
}
}
}
}프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"chatgpt": {
"command": "npx",
"args": [
"-y",
"@hasdata/chatgpt-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"chatgpt": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=chatgpt",
"headers": {
"x-api-key": "your-value"
}
}
}
}프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"chatgpt": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hasdata/chatgpt-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
x-api-key 비밀 필수 HTTP header이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
아직 이 서버의 도구 목록을 읽지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 도메인 hasdata.com 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: HASDATA_API_KEY, x-api-key
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.0.0)은 32일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Tools MCP
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ 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.
Web production tools for AI agents: contrast, JP text, WebP, JSON-LD, slugs, dates and 40+ more
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
A hosted ChatGPT MCP server that gives Claude, Cursor, Windsurf and any other MCP client one ChatGPT tool. Send a prompt anonymously and get the answer back as markdown together with the web pages ChatGPT consulted, as structured JSON, with no OpenAI account and no API key of your own.
1,000 free credits every month, no card required, which is 100 prompts.
https://mcp.hasdata.com/mcp?apis=chatgpt
An MCP client and a HasData API key from the dashboard, free to create with no card, and the free tier covers 100 calls a month at the 10-credit rate. This is a remote server, so the simplest path is a URL and an x-api-key header, with no container to run and no OpenAI billing anywhere in the flow. A client that only speaks stdio reaches it through a thin launcher, published as @hasdata/chatgpt-mcp on npm and hasdata-chatgpt-mcp on PyPI, shown below.
The server URL is the same for every client. We run it hands-on in Claude Code and Claude Desktop. The other blocks follow each client's own documented format for a remote server.
| Field | Value |
|---|---|
| URL | https://mcp.hasdata.com/mcp?apis=chatgpt |
| Transport | HTTP, streamable |
| Auth header | x-api-key: HASDATA_API_KEY |
Clients with OAuth support can add the same URL as a connector and sign in without putting a key in a config file.
Claude Code
claude mcp add --transport http chatgpt "https://mcp.hasdata.com/mcp?apis=chatgpt" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
{
"mcpServers": { "chatgpt": { "type": "http", "url": "https://mcp.hasdata.com/mcp?apis=chatgpt", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Cursor
{
"mcpServers": { "chatgpt": { "type": "streamable-http", "url": "https://mcp.hasdata.com/mcp?apis=chatgpt", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
VS Code
{
"servers": { "chatgpt": { "type": "http", "url": "https://mcp.hasdata.com/mcp?apis=chatgpt", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Prompts, not code. Paste one in and the agent picks the tool itself. Each is annotated with the calls it takes, because every successful call costs 10 credits.
Ask ChatGPT what the current state of the Artemis program is, and list the sources it used.
*One call, 10 credits. The answer and the sources come back together.*
Ask ChatGPT the same question in German.
*One call, 10 credits. The answer follows the language of the prompt, so write the prompt in the language you want back.*
Ask ChatGPT what happened in AI this week, with Berlin as the current date.
*One call, 10 credits. timezone is what fixes the meaning of "this week".*
Put the same question to ChatGPT three times and show where the answers differ.
*Three calls, 30 credits. Each request is a fresh conversation, so there is no carry-over between them.*
| Tool | What it returns |
|---|---|
hasdata_chatgpt_chat_getChatgptAnswer | The answer as markdown, the web sources ChatGPT consulted with their domain and title, the conversation title it generated, the model that answered, and whether a web search was used. 10 credits a call |
One tool, 10 credits per successful call.
hasdata_chatgpt_chat_getChatgptAnswer
| Parameter | Type | Required | Notes |
|---|---|---|---|
prompt | string | yes | The question or instruction, up to 8000 characters |
timezone | string | IANA zone name such as Europe/Berlin. It sets what ChatGPT treats as today |
Everything lands under conversation. The answer is in answer as markdown, with title holding the name ChatGPT generated for the thread, model the model that answered, and usedWebSearch saying whether it went to the web at all. finishReason and complete tell a truncated answer from a finished one.
{
"conversation": { "answer": "As of October 5, 2026, NASA's Artemis program has made substantial progress…", "title": "Artemis developments cited", "model": "gpt-5-6", "usedWebSearch": true, "finishReason": "stop", "complete": true, "sources": [ { "title": "Artemis News - NASA", "url": "https://www.nasa.gov/artemis-news/", "domain": "www.nasa.gov" } ] } }
Your client almost never sees an HTTP error code from a tool call. The MCP layer answers 200 and puts the failure inside the result, with isError set to true and the reason as text.
`sources` is uneven, and partly absent. In a measured answer carrying twenty sources, every one had title, url and domain, eleven had publishedDate and only five had snippet. Read each field defensively rather than assuming the shape of the first element holds for the rest.
No web search means no sources. usedWebSearch is false when ChatGPT answers from the model alone, and sources is then empty or missing. A prompt about a stable fact often takes that path, so ask for current information when citations are the point.
Every call is a fresh conversation. There is no memory between requests, so a follow-up has to carry its own context in the prompt. conversationId identifies the thread that answered, not a thread you can continue.
A truncated answer still succeeds. Check complete and finishReason before treating answer as the whole response.
Each successful call spends credits from the connected account. A call that fails validation is not billed.
The ChatGPT tool costs 10 credits per successful call. Answer length does not change the price.
The free tier is 1,000 credits every month with no card, which is 100 prompts.
Paid plans start at $59 a month for 200,000 credits, which is 20,000 calls. The unit price falls on larger plans. Current numbers are on the plans page.
| OpenAI API | This server | |
|---|---|---|
| Account | Your own OpenAI account and billing | One HasData key |
| What you get | The model's answer | The answer plus the web sources behind it |
| Web search | A separate tool you wire up | Included, with usedWebSearch reporting whether it ran |
| Output | Your own schema | Parsed JSON with the sources already split out |
The two are not substitutes. The OpenAI API is the right call when you need system prompts, tools, streaming and conversation state. This server is the right call when you want what ChatGPT publicly answers, with its citations, and no account of your own.
No. The server answers anonymously through HasData, and the only credential involved is your HasData key.
Whichever ChatGPT serves anonymously at the time. The response reports it in model, so read it rather than assuming. A measured call returned gpt-5-6.
No. Each request is a fresh thread with no memory of earlier ones. Carry the context in the prompt instead.
The language of the prompt. Ask in German and the answer comes back in German, or ask explicitly for a language in the prompt.
No. HasData is an independent web data provider and is not affiliated with, endorsed by or sponsored by OpenAI. All trademarks belong to their owners.
The server reads what ChatGPT answers publicly to an anonymous visitor. It does not log in, and it does not reach private conversations or account data.
| Product page and request builder | ChatGPT Scraper API |
| Endpoint documentation | ChatGPT Scraper API docs |
| Server documentation | MCP server docs |
| Every tool in one server | HasData/hasdata-mcp |
| Client walkthroughs | MCP clients and integrations |
| Plans and credit costs | Plans and credit costs |
npm install
npm test
The tests in test/ assert the tool contract, the part that can break without a commit here. They check that ?apis=chatgpt returns the one expected tool, that its name and required parameter have not changed, that it carries a description, and that a real call still puts the answer under conversation.
The parameter table and the sample above were read from the live schema and from real calls rather than from documentation. A correction is welcome when a field or a failure mode has changed. Open an issue with the response you saw.
MIT