joongna-mcp
Integrates Zyte's proxy extraction API to avoid IP blocking when scraping Joongna listings.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@joongna-mcpshow me the market price for Nintendo Switch"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
⚠️ Important Notices
이 프로젝트는중고나라 공식 Open API가 아닌 공개 웹 페이지를 파싱합니다. 사이트 구조가 바뀌면 일부 기능이 깨질 수 있습니다. 개인·비상업적 용도를 권장합니다.
과도한 요청은 중고나라에서 차단될 수 있습니다. 차단이 잦으면ZYTE_API_KEY 환경 변수로 Zyte 프록시를 켤 수 있습니다.
Related MCP server: Mercari MCP Server
✨ Features
🔍 매물 검색 | 키워드·카테고리 기반 중고나라 검색 |
📦 상세 조회 | 상품 상세 · 판매 정보 조회 |
📉 시세 확인 | search-price 기반 시세 범위 · 추이 · 요약 |
🔌 stdio MCP | Cursor, Claude, Codex 등 로컬 클라이언트 지원 |
📦 Zero setup |
|
🚀 Quick Start
git clone https://github.com/iamkw0n/joongna-mcp.git
cd joongna-mcp
npm install
npm start공통 실행 명령:
node dist/index.js🛠 Tools
Tool | Description |
| 키워드 매물 검색 |
| 상품 상세 · 판매 정보 |
| 시세 범위 · 최근 추이 |
| 검색 결과 기반 시세 요약 |
| 카테고리 목록 |
| 프록시 상태 확인 |
💬 One-Click Install Prompt
Cursor / Claude Code / Codex에서 아래 프롬프트를 붙여넣으면 MCP 설치를 요청할 수 있습니다.
Github에서 iamkw0n/joongna-mcp 를 가져와서 MCP 서버 설치를 해줘.🔧 Client Setup
Client | Config file | stdio |
Cursor |
| ✅ |
Claude Code |
| ✅ |
Claude Desktop |
| ✅ |
Codex |
| ✅ |
ChatGPT | Connector URL | ❌ |
Cursor
프로젝트 루트에 .cursor/mcp.json:
{
"mcpServers": {
"joongna-mcp": {
"command": "node",
"args": ["./dist/index.js"],
"cwd": "${workspaceFolder}"
}
}
}Claude Code
프로젝트 루트에 .mcp.json:
{
"mcpServers": {
"joongna-mcp": {
"type": "stdio",
"command": "node",
"args": ["./dist/index.js"]
}
}
}CLI:
claude mcp add joongna-mcp -s project -- node ./dist/index.jsClaude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"joongna-mcp": {
"command": "node",
"args": ["/absolute/path/to/joongna-mcp/dist/index.js"],
"cwd": "/absolute/path/to/joongna-mcp"
}
}
}Claude Desktop은${workspaceFolder}를 지원하지 않습니다. 절대 경로를 사용하세요.
OpenAI Codex
프로젝트 .codex/config.toml 또는 ~/.codex/config.toml:
[mcp_servers.joongna-mcp]
command = "node"
args = ["./dist/index.js"]
cwd = "/absolute/path/to/joongna-mcp"
enabled = trueCLI:
codex mcp add joongna-mcp -- node ./dist/index.js연결 확인: Codex 세션에서 /mcp
ChatGPT
ChatGPT 커넥터는HTTPS MCP 엔드포인트만 지원합니다. 이 레포는 로컬 stdio 서버이므로 ChatGPT에 직접 연결할 수 없습니다.
💡 Examples
갤럭시북 중고나라 검색해줘아이폰 15 최근 매물 찾아줘229401708 상품 상세 보여줘맥북 시세 요약해줘노트북 카테고리 ID 찾아줘프록시 상태 확인해줘⚙️ How It Works
flowchart LR
A[MCP Client] -->|stdio| B[joongna-mcp]
B --> C[web.joongna.com/search]
B --> D[web.joongna.com/product]
B --> E[web.joongna.com/search-price]
B --> F[api.zyte.com/v1/extract]Endpoint | Usage |
| 매물 검색 |
| 상품 상세 |
| 시세 조회 |
| 차단 대응용 프록시 |
📄 License
MIT © iamkw0n
Available Tools
6 toolsget_listing_detailB
중고나라 상품 상세 정보를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | 중고나라 상품 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that the tool 'retrieves' information, implying a read-only operation, but does not mention any potential side effects, required permissions, rate limits, or data scope. For a tool with no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the tool's purpose with no unnecessary words. It is front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description is minimal. It does not explain what 'detailed information' includes, what the return structure looks like, or any behavioral considerations. The agent would have incomplete context for correctly invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema coverage is 100% (one parameter, productId, fully described). The description adds no additional meaning beyond the schema—it only repeats the tool's action. Thus, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves detailed information about a Junggonara product. It uses a specific verb ('조회합니다' meaning 'retrieves') and identifies the resource ('중고나라 상품 상세 정보'). This distinguishes it from sibling tools like get_market_price (market price), list_categories (categories), proxy_status (proxy status), search_listings (search), and summarize_search_market (summary).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or specific contexts. The description only states the action, leaving the agent to infer usage from the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_priceC
중고나라 시세조회(search-price) 결과를 바탕으로 시세 범위와 추이를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 시세를 볼 검색 키워드 | |
| sampleLimit | No | 함께 보여줄 최근 매물 수 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the tool returns price range and trend but omits behavioral details such as data freshness, rate limits, auth requirements, or any side effects. For a read-only data tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundancy. It efficiently conveys the core function, though minor structural improvements (e.g., bullet points) could enhance readability for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 simple parameters, no output schema, and no annotations, the description provides the essential purpose. However, it lacks details on return format, pagination, or error conditions, leaving gaps for an agent to fully understand behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description adds the concept of 'price range and trend' which is output-related, not parameter semantics. Baseline of 3 is appropriate as the description does not enhance parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves market price range and trend based on search-price results. The verb '조회합니다' (inquires) and noun '시세 범위와 추이' (price range and trend) define the purpose. It is distinct from siblings like search_listings, but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like summarize_search_market. The description lacks context about prerequisites or conditions, leaving the agent to infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesB
중고나라 카테고리 목록을 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 최대 결과 수 | |
| keyword | No | 카테고리명 필터 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It only states that the tool retrieves a list, omitting details like pagination via 'limit', filtering behavior, response structure, or whether it returns a flat or hierarchical list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is appropriately concise, though it could be slightly more informative without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a simple task, the description is too sparse. It does not explain what the category list contains (e.g., ID, name, parent-child relationships) or how limit/keyword affect results, leaving gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions. The tool description adds no additional meaning beyond what the schema already provides, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '조회합니다' (retrieves) and the resource '중고나라 카테고리 목록' (category list from Junggonara). It is specific and distinguishes this tool from siblings, which focus on listings and market data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs. alternatives, such as search_listings or get_market_price. The description lacks context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proxy_statusA
중고나라 요청의 차단 상태와 Zyte 프록시 사용 여부를 확인합니다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states a read operation but lacks details on what 'blocking status' means or what the tool returns. Adequate given simplicity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, directly conveys purpose. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema and does not describe return value. For a simple check tool, description is adequate but incomplete without output details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, baseline 4 as per calibration. The description adds no parameter info, but there are none to describe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks 'blocking status' and 'Zyte proxy usage', which are specific resources. It distinguishes from sibling tools that deal with listings, prices, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description only states what it does, not when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_listingsC
중고나라에서 상품을 검색합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | 정렬 기준 | recommend |
| limit | No | 최대 결과 수 | |
| query | Yes | 검색 키워드 | |
| maxPrice | No | 최대 가격 | |
| minPrice | No | 최소 가격 | |
| categoryId | No | 중고나라 카테고리 ID | |
| freeShippingOnly | No | 무료배송 매물만 볼지 여부 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states 'search for products.' It omits critical behavioral traits such as authentication requirements, rate limits, or side effects. No behavioral context is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence, which is good for front-loading, but it sacrifices important operational details. It is not overly verbose, but the brevity leaves gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters and no output schema or annotations, the description is insufficient. It does not explain the platform context, return values, or how filters combine. The agent lacks enough context to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter has a clear description in the schema. The tool description adds no extra meaning beyond the schema, so baseline 3 is appropriate. No additional semantic guidance is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for products on Junggonara (Korean market). It provides a specific verb and resource, but does not differentiate from sibling tools like get_listing_detail or summarize_search_market. The purpose is clear but lacks contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives, nor does it specify prerequisites or scenarios. This leaves the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_search_marketC
중고나라 검색 결과를 바탕으로 간단한 시세 요약을 만듭니다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 분석할 최대 결과 수 | |
| query | Yes | 검색 키워드 | |
| maxPrice | No | 최대 가격 | |
| minPrice | No | 최소 가격 | |
| categoryId | No | 중고나라 카테고리 ID | |
| freeShippingOnly | No | 무료배송 매물만 볼지 여부 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It only states it creates a summary but does not disclose side effects, permissions, or whether it is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no wasted words. Efficiently conveys the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, low complexity of tool is not fully addressed. Description lacks details on what the summary includes (e.g., average, range) and how aggregation works.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for all parameters. Description adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'create a simple market price summary based on search results' with specific verb and resource. However, it does not explicitly differentiate from siblings like 'get_market_price' or 'search_listings'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.1.0- First observed
get_listing_detail - First observed
get_market_price - First observed
list_categories - First observed
proxy_status - First observed
search_listings - First observed
summarize_search_market
TDQS
Scored across 6 tools
Each tool targets a distinct function: listing detail, market price, categories, proxy status, search, and market summary. There is no functional overlap.
Most tools use a consistent verb_noun pattern (e.g., get_listing_detail, search_listings). 'proxy_status' deviates slightly as a noun_noun, but it still conveys its purpose clearly.
With six tools, the server covers the essential operations for browsing and analyzing the marketplace without being unwieldy or sparse.
The tool set covers search, detail, categories, market price, and summary. Missing user actions like posting or deleting listings, but for a consumer-focused interface, it is reasonably complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for IT hardware parts research: normalize PNs, search listings, get subs/comps.
Public MCP server for discovering open jobs. Search, filter, and get application links.
MCP server for real-time product search by barcode (EAN, UPC, GTIN) or keyword on ean-search.org
Related MCP Servers
- AlicenseBqualityBmaintenanceAn MCP server that enables searching various content types (news, blogs, shopping, images, etc.) through Naver's search API.1919884MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that enables users to search for products on the Mercari marketplace using keywords, categories, and specific filters like price and condition. It provides comprehensive tools for retrieving item details and browsing search results via standard or SSE protocols.-
- AlicenseNot gradedqualityCmaintenanceMCP server to search Mercari Japan listings with query, price range, and exclude keywords.14MIT
- AlicenseAqualityAmaintenanceMCP server for searching Korean public procurement bid notices (나라장터) using natural language.1076MIT