GitHub
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Official Openapi® MCP server: Italian company data, PEC, SMS, vehicles, geocoding and more APIs.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
Authorizationค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน
พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http openapi https://mcp.openapi.com/ --header 'Authorization: Bearer {token}'เติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"openapi": {
"url": "https://mcp.openapi.com/",
"headers": {
"Authorization": "Bearer {token}"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"openapi": {
"type": "http",
"url": "https://mcp.openapi.com/",
"headers": {
"Authorization": "Bearer {token}"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
Authorization ความลับ จำเป็น HTTP headerค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ชื่อและคำอธิบายเครื่องมือตามที่ server ตอบมาเมื่อ 8 พ.ย. 2569 ผู้ทำเป็นคนเขียน ไม่ใช่เรา แสดงเป็นข้อความล้วน
check_async_statusShow the last status of an async request Args: request_id: required, returned by an async downgraded request to the mcp server
get_company_IT_fullReturns the complete and detailed profile of an Italian company given a VAT number or Tax Code. - Company Data (Name, VAT Number, Tax Code, CCIAA, and REA) - Managers - Registered Office and other types of offices - Activity Classifications (New ATECO 2025, ATECO history since 20
get_company_IT_advancedReturns taxCode, companyName, vatCode,address,activityStatus,reaCode,cciaa,atecoClassification,detailedLegalForm,startDate,registrationDate,endDate,pec,taxCodeCeased,taxCodeCeasedTimestamp,vatGroup,sdiCode,sdiCodeTimestamp,balanceSheets (turnover,employee,networt,staffCost,totalA
get_company_IT_startReturns taxCode,companyName,vatCode,address,activityStatus,sdiCode,registrationDate of an italian company from vatCode or taxCode. Args: vat_or_taxCode: vatCode or taxCode of an italian company
get_company_IT_searchReturns a list of italian companies based on the search criteria. Use this tool if you don't know the VAT number of a company. Use this tool with dryRun=1 and no limit parameter to get the count of available results for the matching criterias Use this tool if you need to extract
get_company_WW_topReturns companyName,nativeCompanyName,companySize,address,gps,activityStatus,incorporationDate,contacts,nace,nationalClassification,balanceSheets data like employees,netWorth,operatingRevenue,equity,totalAssets . Args: vat_or_taxCode: vatCode or taxCode of a company country_code:
get_company_IT_legal_forms_listObtain all the updated legalFormsCodes and descriptions available in italy. Usefull with get_company_IT_search. "EI"="ENTE IMPRESA","EL"="ENTE SOCIALE","OO"="COOPERATIVA SOCIALE","OS"="SOCIETA' CONSORTILE COOPERATIVA A RESPONSABILITA' LIMITATA","RC"="CONTRATTO DI RETE DOTATO DI S
get_company_EU_startReturns basic company information for a company in the specified country. Returns: companyName, vatCode, address, activityStatus, and other basic details. Args: vatCode: VAT code or company registration number (e.g., DE123456789, FR12345678901234) country_code: Two-letter country
get_company_EU_advancedReturns advanced company information for a company in the specified country. Returns: Detailed company data including financial highlights or extended registry info where available. Args: vatCode: VAT code or company registration number country_code: Two-letter country code (e.g.
get_company_WW_startReturns basic company information for a company worldwide. Args: vatCode: VAT code or company registration number country_code: Two-letter country code of the country
get_company_WW_advancedReturns advanced company information for a company worldwide. Args: vatCode: VAT code or company registration number country_code: Two-letter country code of the country
get_company_FR_searchReturns a list of French companies based on the search criteria. Args: companyName: The name or part of it of a French company (optional). provinceCode: The department code or region to restrict search (optional). skip: The number of records to skip for pagination (optional). lim
get_IT_regions_listReturns the list of Italian regions
get_IT_provinces_listReturns the list of Italian provinces
get_IT_metropolitan_cities_listReturns the list of Italian metropolitan cities
get_suppressed_italian_municipalitiesReturns the list of suppressed or merged Italian municipalities
find_IT_istat_by_comune_nameSearches for the ISTAT code associated with a given Italian municipality.
find_IT_municipality_by_istatRetrieves detailed data about an Italian municipality using the ISTAT code: - istat:istatCode - comune:municipalityName - regione:regionName - provincia:provinceName - prefisso:telephoneLocalPrefix - cod_fisco:cadastralCodeor BelfioreCode of town, - superficie:surfaceArea - num_r
find_IT_municipalities_by_zipRetrieves the list of Italian municipalities and their ISTAT code based on the ZIP code.
check_email_startRetrieves detailed information about an email address (spf, dmark, disposability, frauds) Args: email: the email to check
check_email_advancedRetrieves advanced information about an email address (spfDetails, dmarcDetails, createdAt, updatedAt, state, message, success, valid, disposable, smtpScore, overallScore, firstName, generic, common, dnsValid, honeypot, deliverability, frequentComplainer, spamTrapScore, catchAll,
check_mobile_startRetrieves basic information about a mobile number (requestedNumber, formattedNumber, numberType, isPossible, isValid, regionCode, isValidNumberForRegion, network, originalNetwork, roaming, ported, country, countryPrefix, details) Args: mobile: with international prefix es +39
check_mobile_advancedRetrieves advanced information about a mobile number (requestedNumber, formattedNumber, createdAt, updatedAt, state, message, success, valid, active, localFormat, fraudScore, recentAbuse, voip, prepaid, risky, name, identityData, carrier, lineType, country, region, city, accurate
check_ip_advancedRetrieves advanced information about an ip address (ip, createdAt, updatedAt, state, requestedIp, message, success, proxy, host, isp, organization, asn, countryCode, city, region, timezone, latitude, longitude, zipCode, isCrawler, connectionType, recentAbuse, abuseVelocity, botSt
check_url_advancedRetrieves advanced information about an url address (url, createdAt, updatedAt, state, requestedUrl, message, success, unsafe, domain, ipAddress, countryCode, languageCode, server, contentType, statusCode, pageSize, domainRank, dnsValid, parking, pageTitle, shortLinkRedirect, hos
get_italian_company_official_documents_listRecupera un elenco di endpoint di visure camerali disponibili per una azienda da usare con il tool get_italian_company_official_document fornendo la sua Partita IVA o il suo Codice Fiscale. Args: vat_or_taxCode: vatCode or taxCode of an italian company
get_italian_company_official_documentRecupera una visura camerale di una azienda fornendo la sua Partita IVA o il suo Codice Fiscale. Args: document_url: url of the requested document vat_or_taxCode: vatCode or taxCode of an italian company
download_italian_company_official_documentDownload a document when the "stato_richiesta" of a get_italian_company_official_document call is "Dati disponibili" Response is a json containing one or more files with attributes: file_name, file_size, download_link, content, expire. Args: document_id: the value id in return of
send_smsSend an SMS to a mobile number using minus sign to separate international prefix from the number Args: sender: optional, can be a 11 char long string body: the body of the message string mobile: the recipient mobile number. Eg.:"+39-1234567890"
post_risk_WW_kyc_fullThis endpoint allows you to create a full kyc request on a subject (politically exposed person, adverse media, local politicians, legal enforcement, sanctions, whitelists) use name for entityType L,W,VE,AC,NA or firstName/lastName for entityType I Args: firstName: first name of t
get_risk_IT_creditscore_topReturns Operational credit limits, Rating evaluations, Risk score history, Public ratings, Financial positions and profiles of an italian company from vatCode or taxCode. Args: vat_or_taxCode: vatCode or taxCode of an italian company
check_IT_fiscal_codeCheck if an Italian Fiscal Code is real and existent in the official database. Args: fiscalCode: fiscal code of an italian person
geocodeRetrieve informations about a place supplying address. To improve success of results, please specify an address conforming to the following format: [street], [city] [postal code] [country] Args: address: string
reverse_geocodeGet place information from ID or latitude/longitude: To obtain infos via ID make sure to pass the following format: {"type": "id", "id": " "} To obtain infos via lat/long, make sure to provide the following format: {"type": "coordinates", "lat": " ", "long": " "} Args: type: requ
check_license_plateRetrieve informations about type=car,bike,insurance,mot from a countryCode=IT,FR,UK,DE,PT,ES and a licensePlate. Available Combinations: IT-car, IT-bike, IT-insurance,FR-car,FR-bike,UK-car,UK-bike,UK-mot,PT-car,PT-insurance,ES-car,ES-bike Args: countryCode: required, 2 digit coun
get_today_exchange_ratesObtain daily world exchange rate based on USD value
check_pecChecks if a specific PEC (Certified Email) address is available for purchase Use this tool when the user asks if a PEC address is avaible Args: pec: the pec address to check
get_docuengine_servicesReturns the list of all available DocuEngine services with their required parameters.
get_docuengine_request_statusReturns the details and status of a specific DocuEngine request.
get_docuengine_documentsReturns the download links for the documents produced by a request.
docuengine_visura_camerale_ordinaria_societa_di_capitaleDirect tool for DocuEngine service: Visura Camerale Ordinaria - Societa' Di Capitale (ID: 663df75d19a52195e23e315c). [Camerali] Visura Camerale Ordinaria - Societa' Di Capitale 💰 Price: €4.90 📋 Required: reaCode, cciaa
docuengine_visura_camerale_ordinaria_societa_di_personeDirect tool for DocuEngine service: Visura Camerale Ordinaria - Societa' Di Persone (ID: 6671a5549e6f0e447bc2659d). [Camerali] Visura Camerale Ordinaria - Societa' Di Persone 💰 Price: €3.40 📋 Required: reaCode, cciaa
docuengine_visura_camerale_ordinaria_impresa_individualeDirect tool for DocuEngine service: Visura Camerale Ordinaria - Impresa Individuale (ID: 6671a5719e6f0e447bc2659e). [Camerali] Visura Camerale Ordinaria - Impresa Individuale 💰 Price: €2.90 📋 Required: reaCode, cciaa
docuengine_visura_camerale_storica_societa_di_capitaleDirect tool for DocuEngine service: Visura Camerale Storica - Societa' Di Capitale (ID: 6671a5a29e6f0e447bc2659f). [Camerali] Visura Camerale Storica - Societa' Di Capitale 💰 Price: €5.90 📋 Required: reaCode, cciaa
docuengine_visura_camerale_storica_societa_di_personeDirect tool for DocuEngine service: Visura Camerale Storica - Societa' Di Persone (ID: 6671a5bf9e6f0e447bc265a0). [Camerali] Visura Camerale Storica - Societa' Di Persone 💰 Price: €4.40 📋 Required: reaCode, cciaa
docuengine_visura_camerale_storica_impresa_individualeDirect tool for DocuEngine service: Visura Camerale Storica - Impresa Individuale (ID: 6671a5d69e6f0e447bc265a1). [Camerali] Visura Camerale Storica - Impresa Individuale 💰 Price: €3.90 📋 Required: reaCode, cciaa
docuengine_bilancio_otticoDirect tool for DocuEngine service: Bilancio Ottico (ID: 667443c29e6f0e447bc265aa). [Camerali] Bilancio Ottico 💰 Price: €4.50 (search: €0.10, document: €4.40) 📋 Required: taxCode 🔍 Two-step process: This returns search results. Use 'patch_docuengine_bilancio_ottico' to select
patch_docuengine_bilancio_otticoFinalize selection for DocuEngine service: Bilancio Ottico. Use this AFTER calling 'docuengine_bilancio_ottico' when it returns a list of options. Provide the 'id' from your chosen option, and 'year' if applicable (e.g., for balance sheets). Example: If the search returned option
docuengine_bilancio_xbrlDirect tool for DocuEngine service: Bilancio XBRL (ID: 667c131a9e6f0e447bc265c1). [Camerali] Bilancio XBRL 💰 Price: €4.50 (search: €0.10, document: €4.40) 📋 Required: taxCode 🔍 Two-step process: This returns search results. Use 'patch_docuengine_bilancio_xbrl' to select and fi
patch_docuengine_bilancio_xbrlFinalize selection for DocuEngine service: Bilancio XBRL. Use this AFTER calling 'docuengine_bilancio_xbrl' when it returns a list of options. Provide the 'id' from your chosen option, and 'year' if applicable (e.g., for balance sheets). Example: If the search returned options wi
docuengine_visura_camerale_ingleseDirect tool for DocuEngine service: Visura Camerale Inglese (ID: 66840ce41a241a5d1be0f9e5). [Camerali] Visura Camerale Inglese 💰 Price: €6.50 📋 Required: taxCode
docuengine_atto_otticoDirect tool for DocuEngine service: Atto Ottico (ID: 6687eea71a241a5d1be0f9f9). [Camerali] Atto Ottico 💰 Price: €5.50 (search: €0.60, document: €4.90) 📋 Required: taxCode 🔍 Two-step process: This returns search results. Use 'patch_docuengine_atto_ottico' to select and finalize
patch_docuengine_atto_otticoFinalize selection for DocuEngine service: Atto Ottico. Use this AFTER calling 'docuengine_atto_ottico' when it returns a list of options. Provide the 'id' from your chosen option, and 'year' if applicable (e.g., for balance sheets). Example: If the search returned options with '
docuengine_statutoDirect tool for DocuEngine service: Statuto (ID: 6687eed51a241a5d1be0f9fa). [Camerali] Statuto 💰 Price: €4.90 📋 Required: taxCode
docuengine_bilancio_riclassificatoDirect tool for DocuEngine service: Bilancio Riclassificato (ID: 669533fe6d4f51cbde8da353). [Camerali] Bilancio Riclassificato 💰 Price: €5.00 (search: €0.10, document: €4.90) 📋 Required: taxCode 🔍 Two-step process: This returns search results. Use 'patch_docuengine_bilancio_ri
patch_docuengine_bilancio_riclassificatoFinalize selection for DocuEngine service: Bilancio Riclassificato. Use this AFTER calling 'docuengine_bilancio_riclassificato' when it returns a list of options. Provide the 'id' from your chosen option, and 'year' if applicable (e.g., for balance sheets). Example: If the search
docuengine_certificato_di_iscrizioneDirect tool for DocuEngine service: Certificato Di Iscrizione (ID: 689c99942d09c0a9bcb946e8). [Camerali] Certificato Di Iscrizione 💰 Price: €13.70 📋 Required: taxCode
docuengine_certificato_artigianoDirect tool for DocuEngine service: Certificato Artigiano (ID: 689cb8852d09c0a9bcb946f3). [Camerali] Certificato Artigiano 💰 Price: €13.70 📋 Required: taxCode
docuengine_certificato_storicoDirect tool for DocuEngine service: Certificato Storico (ID: 689cb8972d09c0a9bcb946f5). [Camerali] Certificato Storico 💰 Price: €16.70 📋 Required: taxCode
docuengine_soci_attivi_aziendaDirect tool for DocuEngine service: Soci Attivi Azienda (ID: 6932c9602a2ea4883e6ebba9). [Camerali] Soci Attivi Azienda 💰 Price: €2.30 📋 Required: taxCode
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub openapi ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตอบกลับใน 226 ms (HTTP 200)
ไม่ต้องล็อกอิน
อ่านคำอธิบายเครื่องมือ 60 ตัวแล้ว ไม่พบคำสั่งแอบแฝงถึง AI
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: Authorization
รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.3.1) เข้า registry 22 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
🔐 Openapi® MCP The official Python MCP SDK and ready-to-run MCP server for Openapi®
Welcome to `openapi-mcp-sdk`, this is the official openapi.com MCP SDK. It ships as a Python package on PyPI and can be used in two ways:
openapi_mcp_sdk in your own project to build a custom MCP server that wraps openapi.com APIs with your own logic, tools, or auth layer on top.All configuration is done through environment variables. None are required to start the server — defaults are suitable for local use.
| Variable | Default | Description | ||
|---|---|---|---|---|
MCP_PORT | 8080 | HTTP port the server listens on | ||
MCP_ENV | production | Runtime environment: dev \ | staging \ | production |
MCP_BASE_URL | http://localhost:8080 | Public URL of this server (used to build callback and file download URLs) | ||
MCP_CALLBACK_URL | $MCP_BASE_URL/callbacks | Explicit callback URL sent to async APIs | ||
MCP_OPENAPI_ENV | _(empty)_ | Openapi environment: dev, test, sandbox (alias of test), or empty for production |
The server needs to store files for APIs that return binary documents (e.g. company official documents). The storage backend is configurable:
| Variable | Default | Description | ||
|---|---|---|---|---|
MCP_STORAGE_BACKEND | local | local \ | gcs \ | s3 |
MCP_STORAGE_PATH | ./openapi_storage | Local path for local backend | ||
MCP_STORAGE_BUCKET | _(required for cloud)_ | Bucket name for gcs or s3 | ||
MCP_STORAGE_REGION | _(required for s3)_ | AWS region for the S3 bucket |
Used to share async callback results across multiple server instances.
| Variable | Default | Description | ||
|---|---|---|---|---|
MCP_CACHE_BACKEND | none | none (in-process dict) \ | memcached \ | redis |
MCP_CACHE_URL | _(none)_ | Redis connection URL (MCP_CACHE_BACKEND=redis), e.g. redis://host:6379 | ||
MCP_CACHE_HOST | _(none)_ | Memcached host (MCP_CACHE_BACKEND=memcached) | ||
MCP_CACHE_PORT | 11211 | Memcached port |
See docs/env/ for per-environment configuration guides (local, Docker, AWS, GCP, Kubernetes).
/apis/.mcp_core.py.No cloning, no virtual environment. Start the server in one command:
uvx openapi-mcp-sdk server
The server starts immediately at http://localhost:8080.
# pipx (ephemeral run, no install needed — similar to uvx)
pipx run openapi-mcp-sdk server
pip install openapi-mcp-sdk && openapi-mcp-sdk server
pip3 install openapi-mcp-sdk && openapi-mcp-sdk server
openapi-mcp-sdk <command>
Commands: server Start the MCP server (HTTP/SSE, default port 8080) ping Ping the openapi.com APIs and report latency [coming soon] token Generate or inspect an openapi.com Bearer token [coming soon]
The project ships a single compose.yml with the mcp service.
# Build and start (production-like image)
docker compose up --build
docker compose up --build -d
docker compose logs -f mcp
The server will be accessible at http://localhost:8080.
The fastest iteration loop runs the server directly with uvicorn:
make start
This sets PYTHONPATH=src and starts uvicorn with auto-reload disabled. The server listens on http://0.0.0.0:8080.
To test endpoints manually:
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:8080
The server prints request headers and parameters to stdout — no extra configuration needed.
The repository is pre-configured for a single-click debug experience. No manual steps, no editing compose files, no terminal commands.
| File | Role |
|---|---|
docker/dev/Dockerfile | Debug image — adds debugpy, exposes port 5678 |
compose.yml | Compose config — dev image, debug ports, bind mount |
.vscode/tasks.json | VS Code tasks — starts/stops the container automatically |
.vscode/launch.json | Launch config — ties everything together under F5 |
src/.Ctrl+Shift+D / ⌘+Shift+D).VS Code will:
docker/dev/Dockerfile) if needed.compose.yml (debug image + bind mount).debugpy is accepting connections on port 5678.debugpy — your breakpoints are now live.When you press ⇧F5 (Stop), VS Code detaches and tears down the container.
Keep the container alive after detaching?
Remove the
"postDebugTask"line from.vscode/launch.json. You can then
re-attach at any time by pressing F5 again without rebuilding.
compose.yml bind-mounts ./src into /app/src inside the container. Edits to files under src/ are reflected immediately — no image rebuild required. Just send a new request and the updated code runs.
| Host | Container | |
|---|---|---|
| Source code | ./src | /app/src |
| MCP server | localhost:8080 | 0.0.0.0:8080 |
| debugpy listener | localhost:5678 | 0.0.0.0:5678 |
The server accepts the Bearer token in two ways:
Pass the token as a standard HTTP header:
Authorization: Bearer YOUR_TOKEN
?token= query parameterSome MCP clients or environments do not support custom HTTP headers. In that case the token can be embedded directly in the server URL as a query parameter:
http://YOUR_SERVER_IP:8080/?token=YOUR_TOKEN
The server automatically promotes it to an Authorization: Bearer header before the request reaches the MCP layer, so the behaviour is identical.
When to use `?token=`: Claude Desktop (as of mid-2025), some browser-based
MCP playgrounds, and any client whose configuration only accepts a plain URL
without a headers field.
With header (recommended):
{
"servers": { "openapi.com": { "type": "http", "url": "http://YOUR_SERVER_IP:8080/", "headers": { "Authorization": "Bearer YOUR_TOKEN" } } } }
With `?token=` query parameter (for clients that do not support custom headers):
{
"servers": { "openapi.com": { "type": "http", "url": "http://YOUR_SERVER_IP:8080/?token=YOUR_TOKEN" } } }
@workspace.Some openapi.com APIs (e.g. visure camerali — Italian official company documents) return large binary files (ZIP archives, PDFs) that cannot be embedded inline in the MCP stream. The server downloads these files, stores them, and serves them via a separate HTTP endpoint (GET /status/{id}/files/{filename}).
By default (MCP_STORAGE_BACKEND=local) files are written to ./openapi_storage relative to the directory from which the server is started:
./openapi_storage/
└── / ├── document.pdf └── attachments.zip
Override the path with the MCP_STORAGE_PATH environment variable:
export MCP_STORAGE_PATH=/var/data/openapi_storage
uvx openapi-mcp-sdk server
The directory is created automatically on first use. For the download links to
work correctly,
MCP_BASE_URLmust point to the public address of the server
(default:
http://localhost:8080).
MCP_STORAGE_BACKEND | Additional variables | Notes |
|---|---|---|
local | MCP_STORAGE_PATH (default ./openapi_storage) | Default — local disk or mounted volume |
gcs | MCP_STORAGE_BUCKET | Google Cloud Storage |
s3 | MCP_STORAGE_BUCKET, MCP_STORAGE_REGION | AWS S3 or any S3-compatible service |
See docs/env/ for full per-environment configuration guides.
| Environment | Guide |
|---|---|
| Local machine (default) | docs/env/local.md |
| Docker / Docker Compose | docs/env/docker.md |
| Google Cloud Platform | docs/env/gcp.md |
| Amazon Web Services | docs/env/aws.md |
| Kubernetes | docs/env/kubernetes.md |
src/openapi_mcp_sdk/main.py: FastAPI + MCP server entry point.src/openapi_mcp_sdk/mcp_core.py: MCP initialization, API call helpers, error handling.src/openapi_mcp_sdk/apis/](src/openapi_mcp_sตัดมาแค่ช่วงต้น อ่านต่อใน repo