ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Openapi®

โดย openapiรุ่น 0.3.1i★ –iรันบนคลาวด์
ชื่อใน registryio.github.openapi/mcp-server

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Official Openapi® MCP server: Italian company data, PEC, SMS, vehicles, geocoding and more APIs.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนคลาวด์
  • ช่องทาง (transport): Streamable HTTP
  • หมวด: เครื่องมือนักพัฒนา
  • ต้องใส่ค่าเหล่านี้: Authorization

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • รันบนคลาวด์ไม่ต้องลงโปรแกรมเพิ่ม ต่อผ่านอินเทอร์เน็ตได้เลย

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add --transport http openapi https://mcp.openapi.com/ --header 'Authorization: Bearer {token}'

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "openapi": {
      "url": "https://mcp.openapi.com/",
      "headers": {
        "Authorization": "Bearer {token}"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .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
    Openapi® Bearer token, created at https://console.openapi.com/oauth with the scopes you need

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

ชื่อและคำอธิบายเครื่องมือตามที่ server ตอบมาเมื่อ 8 พ.ย. 2569 ผู้ทำเป็นคนเขียน ไม่ใช่เรา แสดงเป็นข้อความล้วน

  • check_async_status

    Show the last status of an async request Args: request_id: required, returned by an async downgraded request to the mcp server

  • get_company_IT_full

    Returns 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_advanced

    Returns 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_start

    Returns 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_search

    Returns 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_top

    Returns 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_list

    Obtain 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_start

    Returns 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_advanced

    Returns 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_start

    Returns 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_advanced

    Returns 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_search

    Returns 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_list

    Returns the list of Italian regions

  • get_IT_provinces_list

    Returns the list of Italian provinces

  • get_IT_metropolitan_cities_list

    Returns the list of Italian metropolitan cities

  • get_suppressed_italian_municipalities

    Returns the list of suppressed or merged Italian municipalities

  • find_IT_istat_by_comune_name

    Searches for the ISTAT code associated with a given Italian municipality.

  • find_IT_municipality_by_istat

    Retrieves 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_zip

    Retrieves the list of Italian municipalities and their ISTAT code based on the ZIP code.

  • check_email_start

    Retrieves detailed information about an email address (spf, dmark, disposability, frauds) Args: email: the email to check

  • check_email_advanced

    Retrieves 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_start

    Retrieves 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_advanced

    Retrieves 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_advanced

    Retrieves 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_advanced

    Retrieves 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_list

    Recupera 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_document

    Recupera 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_document

    Download 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_sms

    Send 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_full

    This 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_top

    Returns 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_code

    Check if an Italian Fiscal Code is real and existent in the official database. Args: fiscalCode: fiscal code of an italian person

  • geocode

    Retrieve 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_geocode

    Get 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_plate

    Retrieve 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_rates

    Obtain daily world exchange rate based on USD value

  • check_pec

    Checks 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_services

    Returns the list of all available DocuEngine services with their required parameters.

  • get_docuengine_request_status

    Returns the details and status of a specific DocuEngine request.

  • get_docuengine_documents

    Returns the download links for the documents produced by a request.

  • docuengine_visura_camerale_ordinaria_societa_di_capitale

    Direct 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_persone

    Direct 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_individuale

    Direct 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_capitale

    Direct 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_persone

    Direct 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_individuale

    Direct 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_ottico

    Direct 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_ottico

    Finalize 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_xbrl

    Direct 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_xbrl

    Finalize 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_inglese

    Direct tool for DocuEngine service: Visura Camerale Inglese (ID: 66840ce41a241a5d1be0f9e5). [Camerali] Visura Camerale Inglese 💰 Price: €6.50 📋 Required: taxCode

  • docuengine_atto_ottico

    Direct 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_ottico

    Finalize 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_statuto

    Direct tool for DocuEngine service: Statuto (ID: 6687eed51a241a5d1be0f9fa). [Camerali] Statuto 💰 Price: €4.90 📋 Required: taxCode

  • docuengine_bilancio_riclassificato

    Direct 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_riclassificato

    Finalize 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_iscrizione

    Direct tool for DocuEngine service: Certificato Di Iscrizione (ID: 689c99942d09c0a9bcb946e8). [Camerali] Certificato Di Iscrizione 💰 Price: €13.70 📋 Required: taxCode

  • docuengine_certificato_artigiano

    Direct tool for DocuEngine service: Certificato Artigiano (ID: 689cb8852d09c0a9bcb946f3). [Camerali] Certificato Artigiano 💰 Price: €13.70 📋 Required: taxCode

  • docuengine_certificato_storico

    Direct tool for DocuEngine service: Certificato Storico (ID: 689cb8972d09c0a9bcb946f5). [Camerali] Certificato Storico 💰 Price: €16.70 📋 Required: taxCode

  • docuengine_soci_attivi_azienda

    Direct tool for DocuEngine service: Soci Attivi Azienda (ID: 6932c9602a2ea4883e6ebba9). [Camerali] Soci Attivi Azienda 💰 Price: €2.30 📋 Required: taxCode

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub openapi ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • ✓ ผ่าน

    endpoint ตอบ

    ตอบกลับใน 226 ms (HTTP 200)

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ไม่ต้องล็อกอิน

  • ✓ ผ่าน

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    อ่านคำอธิบายเครื่องมือ 60 ตัวแล้ว ไม่พบคำสั่งแอบแฝงถึง AI

เทียบกับตัวอื่นในหมวด เครื่องมือนักพัฒนาi

  • ดาวมากกว่า 0% ของอีก 4910 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 64% ของอีก 4910 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 4910 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Openapi® ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 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

GitHub

โดย github

server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้

บนเครื่องหรือคลาวด์★ 34,245MITอัปเดต 4 วันที่ผ่านมา
ติดตั้ง

Desktop Commander

โดย wonderwhy-er

MCP server for terminal commands, file operations, and process management

รันบนเครื่อง★ 10,225MITอัปเดต 16 วันที่ผ่านมา
ติดตั้ง

Cloudflare MCP

โดย cloudflare

Cloudflare MCP servers

รันบนคลาวด์★ 4,446Apache-2.0อัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ


🔐 Openapi® MCP The official Python MCP SDK and ready-to-run MCP server for Openapi®

Overview

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:

  • Ready-to-use server — run the MCP gateway directly from the package with a single command, no cloning or setup required.
  • Python library — import 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.

Environment variables

All configuration is done through environment variables. None are required to start the server — defaults are suitable for local use.

Core
VariableDefaultDescription
MCP_PORT8080HTTP port the server listens on
MCP_ENVproductionRuntime environment: dev \staging \production
MCP_BASE_URLhttp://localhost:8080Public URL of this server (used to build callback and file download URLs)
MCP_CALLBACK_URL$MCP_BASE_URL/callbacksExplicit callback URL sent to async APIs
MCP_OPENAPI_ENV_(empty)_Openapi environment: dev, test, sandbox (alias of test), or empty for production
Storage

The server needs to store files for APIs that return binary documents (e.g. company official documents). The storage backend is configurable:

VariableDefaultDescription
MCP_STORAGE_BACKENDlocallocal \gcs \s3
MCP_STORAGE_PATH./openapi_storageLocal 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
Cache

Used to share async callback results across multiple server instances.

VariableDefaultDescription
MCP_CACHE_BACKENDnonenone (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_PORT11211Memcached port

See docs/env/ for per-environment configuration guides (local, Docker, AWS, GCP, Kubernetes).

Features

  • Secure proxy: Pass-through of the Bearer Token provided by the client, without direct handling of sensitive credentials.
  • Extensible: Easily add new tools/APIs by creating modules in /apis/.
  • MCP-compatible: Designed according to MCP protocol best practices.
  • Modular: All API call logic and tool registration is centralized in mcp_core.py.

Quick Start — run from PyPI (recommended)

No cloning, no virtual environment. Start the server in one command:

uvx openapi-mcp-sdk server

The server starts immediately at http://localhost:8080.

Other runtimes
# pipx (ephemeral run, no install needed — similar to uvx)

pipx run openapi-mcp-sdk server

pip (installs the package, then run the command)

pip install openapi-mcp-sdk && openapi-mcp-sdk server

pip3 on systems where python3 is the default

pip3 install openapi-mcp-sdk && openapi-mcp-sdk server

CLI reference
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]

Running with Docker

The project ships a single compose.yml with the mcp service.

# Build and start (production-like image)

docker compose up --build

Run in background

docker compose up --build -d

Follow logs

docker compose logs -f mcp

The server will be accessible at http://localhost:8080.

Debug and Development

Local development (without Docker)

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.

Remote debugging with VS Code and Docker (one click)

The repository is pre-configured for a single-click debug experience. No manual steps, no editing compose files, no terminal commands.

How it works
FileRole
docker/dev/DockerfileDebug image — adds debugpy, exposes port 5678
compose.ymlCompose config — dev image, debug ports, bind mount
.vscode/tasks.jsonVS Code tasks — starts/stops the container automatically
.vscode/launch.jsonLaunch config — ties everything together under F5
Workflow
  1. Set your breakpoints anywhere in src/.
  2. Open Run and Debug (Ctrl+Shift+D / ⌘+Shift+D).
  3. Select `MCP: Debug (Docker)` from the dropdown.
  4. Press F5.

VS Code will:

  • Build the debug image (docker/dev/Dockerfile) if needed.
  • Start the container via compose.yml (debug image + bind mount).
  • Wait automatically until debugpy is accepting connections on port 5678.
  • Attach 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.

Live code reload

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.

Path mapping reference
HostContainer
Source code./src/app/src
MCP serverlocalhost:80800.0.0.0:8080
debugpy listenerlocalhost:56780.0.0.0:5678

Authentication

The server accepts the Bearer token in two ways:

Option A — Authorization header (recommended)

Pass the token as a standard HTTP header:

Authorization: Bearer YOUR_TOKEN
Option B — ?token= query parameter

Some 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.

MCP Client Configuration (VS Code)

  1. Generate a Bearer Token From the portal https://console.openapi.com/oauth, create a token with the required scopes.
  1. Create the `.vscode/mcp.json` file

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" } } }

  1. Test the integration
  • Reload VS Code.
  • Open the Copilot chat and type @workspace.
  • Use the tools exposed by the MCP server.

File storage

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}).

Default: local filesystem

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_URL must point to the public address of the server

(default: http://localhost:8080).

Cloud storage backends
MCP_STORAGE_BACKENDAdditional variablesNotes
localMCP_STORAGE_PATH (default ./openapi_storage)Default — local disk or mounted volume
gcsMCP_STORAGE_BUCKETGoogle Cloud Storage
s3MCP_STORAGE_BUCKET, MCP_STORAGE_REGIONAWS S3 or any S3-compatible service

See docs/env/ for full per-environment configuration guides.

Deployment environments

EnvironmentGuide
Local machine (default)docs/env/local.md
Docker / Docker Composedocs/env/docker.md
Google Cloud Platformdocs/env/gcp.md
Amazon Web Servicesdocs/env/aws.md
Kubernetesdocs/env/kubernetes.md

Project Structure

  • 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

ถาม PopNx