Skip to main content
Glama
models.py23.1 kB
# generated by fastapi-codegen: # filename: openapi.yaml # timestamp: 2025-06-29T07:08:38+00:00 from __future__ import annotations from datetime import date, datetime from enum import Enum from typing import Any, Dict, List, Optional from uuid import UUID from pydantic import BaseModel, RootModel, constr class AadharNumberRequestPayload(BaseModel): aadhaar: Optional[constr(pattern=r'^(\d{12}|\d{16})*$')] = None class AadharOtpGenerateRequestPayLoad(BaseModel): aadhaar: Optional[constr(pattern=r'^(\d{12}|\d{16})*$')] = None class AuthType(Enum): FINGERSCAN = 'FINGERSCAN' IRIS = 'IRIS' OTP = 'OTP' class AuthAccountAadhaarBioRequest(BaseModel): authType: Optional[AuthType] = None bioType: Optional[str] = None pid: Optional[str] = None txnId: Optional[UUID] = None class AuthAccountAadhaarOTPRequest(BaseModel): otp: constr(pattern=r'^([1-9][0-9]*)$') txnId: UUID class AuthAccountMobileOTPRequest(BaseModel): otp: Optional[str] = None txnId: Optional[str] = None class AuthAccountWithDemographicsRequest(BaseModel): gender: Optional[constr(pattern=r'^(M|F|O|U)$')] = None name: Optional[str] = None txnId: UUID yearOfBirth: Optional[constr(pattern=r'^(\d{4})$')] = None class AuthMethod(Enum): AADHAAR_OTP = 'AADHAAR_OTP' MOBILE_OTP = 'MOBILE_OTP' PASSWORD = 'PASSWORD' DEMOGRAPHICS = 'DEMOGRAPHICS' AADHAAR_BIO = 'AADHAAR_BIO' class AuthInitRequest(BaseModel): authMethod: AuthMethod healthid: Optional[str] = None class AuthMobileOTPRequest(BaseModel): healthid: Optional[str] = None class AuthWithMobileTxnAndUserData(BaseModel): gender: Optional[str] = None healthId: Optional[str] = None name: Optional[str] = None token: Optional[str] = None txnId: str yearOfBirth: Optional[str] = None class AuthWithPasswordRequest(BaseModel): password: str txnId: UUID class BenefitDTO(BaseModel): benefitId: Optional[str] = None benefitName: Optional[str] = None description: Optional[str] = None linkageDate: Optional[datetime] = None programName: Optional[str] = None validity: Optional[date] = None class CovinTxnResponse(BaseModel): mobileNumber: Optional[str] = None txnId: Optional[UUID] = None class CreateAccountByVerifiedMobileRequest(BaseModel): address: Optional[str] = None dayOfBirth: Optional[constr(pattern=r'^(0?[1-9]|[12][0-9]|3[01])$')] = None districtCode: Optional[str] = None email: Optional[str] = None firstName: Optional[str] = None gender: Optional[constr(pattern=r'^(M|F|O|U)$')] = None healthId: Optional[str] = None lastName: Optional[str] = None middleName: Optional[str] = None monthOfBirth: Optional[constr(pattern=r'^([1-9]|1[012])$')] = None name: Optional[str] = None password: Optional[str] = None pincode: Optional[int] = None profilePhoto: Optional[str] = None restrictions: Optional[str] = None stateCode: Optional[str] = None subdistrictCode: Optional[str] = None token: Optional[str] = None townCode: Optional[str] = None txnId: str villageCode: Optional[str] = None wardCode: Optional[str] = None yearOfBirth: Optional[constr(pattern=r'^(\d{4})$')] = None class CreateAccountJwtResponse(BaseModel): authMethods: Optional[List[AuthMethod]] = None dayOfBirth: Optional[str] = None districtCode: Optional[str] = None districtName: Optional[str] = None email: Optional[str] = None firstName: Optional[str] = None gender: Optional[str] = None healthId: Optional[str] = None healthIdNumber: Optional[str] = None kycPhoto: Optional[str] = None lastName: Optional[str] = None middleName: Optional[str] = None mobile: Optional[str] = None monthOfBirth: Optional[str] = None name: Optional[str] = None new: Optional[bool] = None stateCode: Optional[str] = None stateName: Optional[str] = None tags: Optional[Dict[str, str]] = None token: Optional[str] = None yearOfBirth: Optional[str] = None class CreateAccountWithAadhaarOtp(BaseModel): email: Optional[str] = None firstName: Optional[str] = None lastName: Optional[str] = None middleName: Optional[str] = None mobile: Optional[str] = None otp: Optional[str] = None password: Optional[str] = None profilePhoto: Optional[str] = None restrictions: Optional[str] = None txnId: Optional[str] = None username: Optional[str] = None class CreateAccountWithPreVerifiedAadhaar(BaseModel): email: Optional[str] = None firstName: Optional[str] = None healthId: Optional[str] = None lastName: Optional[str] = None middleName: Optional[str] = None password: Optional[str] = None profilePhoto: Optional[str] = None txnId: Optional[str] = None class CreateHIdDemoAuthRequest(BaseModel): aadharNumber: Optional[constr(pattern=r'^(\d{12}|\d{16})*$')] = None autoGeneratedBenefitId: Optional[bool] = None benefitId: Optional[str] = None benefitName: Optional[str] = None consentHealthId: Optional[bool] = None dateOfBirth: Optional[str] = None gender: Optional[constr(pattern=r'^(M|F|T)$')] = None mobileNumber: Optional[str] = None name: Optional[str] = None validity: Optional[str] = None class CreateHealthIdOptRequest(BaseModel): autoGeneratedBenefitId: Optional[bool] = None benefitId: Optional[str] = None benefitName: Optional[str] = None consentHealthId: Optional[bool] = None mobileNumber: Optional[str] = None otp: Optional[str] = None txnId: Optional[str] = None validity: Optional[str] = None class CreateHidBiometricRequest(BaseModel): aadhaar: Optional[constr(pattern=r'^(\d{12}|\d{16})*$')] = None autoGeneratedBenefitId: Optional[bool] = None benefitId: Optional[str] = None benefitName: Optional[str] = None bioType: Optional[str] = None consentHealthId: Optional[bool] = None mobileNumber: Optional[str] = None pid: Optional[str] = None validity: Optional[str] = None class BenefitDocType(Enum): VOTER_ID_CARD = 'VOTER_ID_CARD' RATION_CARD = 'RATION_CARD' PAN_CARD = 'PAN_CARD' DRIVING_LICENSE = 'DRIVING_LICENSE' PENSIONER_PHOTO_CARD = 'PENSIONER_PHOTO_CARD' KISSAN_PHOTO_PASSBOOK = 'KISSAN_PHOTO_PASSBOOK' FREEDOM_FIGHTER_PHOTO_CARD = 'FREEDOM_FIGHTER_PHOTO_CARD' CERTIFICATE_IDENTIFY = 'CERTIFICATE_IDENTIFY' DISABILITY_ID_CARD = 'DISABILITY_ID_CARD' MNREGA_JOB_CARD = 'MNREGA_JOB_CARD' BIRTH_CERTIFICATE = 'BIRTH_CERTIFICATE' MARRIAGE_CERTIFICATE = 'MARRIAGE_CERTIFICATE' OTHER_GOVERNMENT_ID = 'OTHER_GOVERNMENT_ID' ADOPTION_CERTIFICATE = 'ADOPTION_CERTIFICATE' class CreateHidMobileRequest(BaseModel): autoGeneratedBenefitId: Optional[bool] = None benefitDocType: Optional[BenefitDocType] = None benefitId: Optional[str] = None benefitName: Optional[str] = None consentHealthId: Optional[bool] = None dateOfBirth: Optional[str] = None docNumber: Optional[str] = None fileType: Optional[str] = None gender: Optional[constr(pattern=r'^(M|F|T)$')] = None name: Optional[str] = None otp: Optional[str] = None txnId: Optional[str] = None uploadedDoc: Optional[str] = None validity: Optional[str] = None class CreateHidNotifyBenefitRequest(BaseModel): aadharNumberOrUidToken: Optional[str] = None autoGeneratedBenefitId: Optional[bool] = None benefitId: Optional[str] = None benefitName: Optional[str] = None consentHealthId: Optional[bool] = None dateOfBirth: Optional[str] = None gender: Optional[constr(pattern=r'^(M|F|T)$')] = None mobileNumber: Optional[str] = None name: Optional[str] = None stateCode: Optional[str] = None validity: Optional[str] = None class DistrictDTO(BaseModel): code: Optional[str] = None name: Optional[str] = None class File(BaseModel): absolute: Optional[bool] = None absoluteFile: Optional[File] = None absolutePath: Optional[str] = None canonicalFile: Optional[File] = None canonicalPath: Optional[str] = None directory: Optional[bool] = None file: Optional[bool] = None freeSpace: Optional[int] = None hidden: Optional[bool] = None name: Optional[str] = None parent: Optional[str] = None parentFile: Optional[File] = None path: Optional[str] = None totalSpace: Optional[int] = None usableSpace: Optional[int] = None class GenerateMobileOTPForTxnRequest(BaseModel): mobile: Optional[str] = None txnId: Optional[str] = None class GenerateMobileOTPRequest(BaseModel): mobile: Optional[str] = None class HealthFacilityAuthenticationRequest(BaseModel): hfrUid: Optional[str] = None password: Optional[str] = None class HealthFacilityAuthenticationResponse(BaseModel): changePassword: Optional[bool] = None token: Optional[str] = None class HealthFacilityChangedPasswordRequest(BaseModel): hfrUid: Optional[str] = None newPassword: Optional[str] = None oldPassword: Optional[str] = None class HealthFacilityPasswordRequest(BaseModel): hfrUid: Optional[str] = None class HealthFacilityPasswordResponse(BaseModel): password: Optional[str] = None class HidBenefitDelinkRequestPayload(BaseModel): benefitName: Optional[str] = None uidToken: Optional[str] = None class HidBenefitLinkedRequestPayload(BaseModel): benefitId: Optional[str] = None benefitName: Optional[str] = None stateCode: Optional[str] = None uidToken: Optional[str] = None validity: Optional[str] = None class HidBenefitLinkedResponsePayload(BaseModel): benefitName: Optional[str] = None healthId: Optional[str] = None status: Optional[str] = None class HidBenefitNameSearchRequest(BaseModel): benefitId: Optional[str] = None healthId: Optional[str] = None class HidBenefitRequestPayload(BaseModel): address: Optional[str] = None authMethods: Optional[List[AuthMethod]] = None benefitId: Optional[str] = None dayOfBirth: Optional[str] = None districtCode: Optional[str] = None districtName: Optional[str] = None email: Optional[str] = None firstName: Optional[str] = None gender: Optional[str] = None healthId: Optional[str] = None healthIdNumber: Optional[str] = None kycPhoto: Optional[str] = None kycVerified: Optional[bool] = None lastName: Optional[str] = None middleName: Optional[str] = None mobile: Optional[str] = None monthOfBirth: Optional[str] = None name: Optional[str] = None new: Optional[bool] = None pincode: Optional[str] = None profilePhoto: Optional[str] = None stateCode: Optional[str] = None stateName: Optional[str] = None status: Optional[str] = None subDistrictCode: Optional[str] = None subdistrictName: Optional[str] = None tags: Optional[Dict[str, str]] = None token: Optional[str] = None townCode: Optional[str] = None townName: Optional[str] = None villageCode: Optional[str] = None villageName: Optional[str] = None wardCode: Optional[str] = None wardName: Optional[str] = None yearOfBirth: Optional[str] = None class HidBenefitSearchResponsePayload(BaseModel): benefitId: Optional[str] = None benefitName: Optional[str] = None healthIdNumber: Optional[str] = None stateCode: Optional[str] = None class HidChangePasswordRequestPayload(BaseModel): newPassword: Optional[str] = None oldPassword: Optional[str] = None class HidOtpRequestPaylaod(BaseModel): newPassword: Optional[str] = None otp: Optional[str] = None txnId: Optional[str] = None class HidStatusRequestPayload(BaseModel): healthIdNumber: Optional[str] = None class HidUpdateAccountRequest(BaseModel): address: Optional[str] = None dayOfBirth: Optional[str] = None districtCode: Optional[str] = None email: Optional[str] = None firstName: Optional[str] = None healthId: Optional[str] = None healthIdNumber: Optional[str] = None lastName: Optional[str] = None middleName: Optional[str] = None monthOfBirth: Optional[str] = None password: Optional[str] = None pincode: Optional[int] = None profilePhoto: Optional[str] = None stateCode: Optional[str] = None subdistrictCode: Optional[str] = None townCode: Optional[str] = None villageCode: Optional[str] = None wardCode: Optional[str] = None yearOfBirth: Optional[str] = None class HidUpdateMobiletRequest(BaseModel): healthIdNumber: Optional[str] = None mobile: Optional[str] = None class InputStream(BaseModel): pass class JwtRequest(BaseModel): healthId: Optional[str] = None password: Optional[str] = None class JwtResponse(BaseModel): token: Optional[str] = None class MobileVerificationToken(BaseModel): token: Optional[str] = None class ResendOTPRequest(BaseModel): txnId: str class StatusCode(Enum): field_100_CONTINUE = '100 CONTINUE' field_101_SWITCHING_PROTOCOLS = '101 SWITCHING_PROTOCOLS' field_102_PROCESSING = '102 PROCESSING' field_103_CHECKPOINT = '103 CHECKPOINT' field_200_OK = '200 OK' field_201_CREATED = '201 CREATED' field_202_ACCEPTED = '202 ACCEPTED' field_203_NON_AUTHORITATIVE_INFORMATION = '203 NON_AUTHORITATIVE_INFORMATION' field_204_NO_CONTENT = '204 NO_CONTENT' field_205_RESET_CONTENT = '205 RESET_CONTENT' field_206_PARTIAL_CONTENT = '206 PARTIAL_CONTENT' field_207_MULTI_STATUS = '207 MULTI_STATUS' field_208_ALREADY_REPORTED = '208 ALREADY_REPORTED' field_226_IM_USED = '226 IM_USED' field_300_MULTIPLE_CHOICES = '300 MULTIPLE_CHOICES' field_301_MOVED_PERMANENTLY = '301 MOVED_PERMANENTLY' field_302_FOUND = '302 FOUND' field_302_MOVED_TEMPORARILY = '302 MOVED_TEMPORARILY' field_303_SEE_OTHER = '303 SEE_OTHER' field_304_NOT_MODIFIED = '304 NOT_MODIFIED' field_305_USE_PROXY = '305 USE_PROXY' field_307_TEMPORARY_REDIRECT = '307 TEMPORARY_REDIRECT' field_308_PERMANENT_REDIRECT = '308 PERMANENT_REDIRECT' field_400_BAD_REQUEST = '400 BAD_REQUEST' field_401_UNAUTHORIZED = '401 UNAUTHORIZED' field_402_PAYMENT_REQUIRED = '402 PAYMENT_REQUIRED' field_403_FORBIDDEN = '403 FORBIDDEN' field_404_NOT_FOUND = '404 NOT_FOUND' field_405_METHOD_NOT_ALLOWED = '405 METHOD_NOT_ALLOWED' field_406_NOT_ACCEPTABLE = '406 NOT_ACCEPTABLE' field_407_PROXY_AUTHENTICATION_REQUIRED = '407 PROXY_AUTHENTICATION_REQUIRED' field_408_REQUEST_TIMEOUT = '408 REQUEST_TIMEOUT' field_409_CONFLICT = '409 CONFLICT' field_410_GONE = '410 GONE' field_411_LENGTH_REQUIRED = '411 LENGTH_REQUIRED' field_412_PRECONDITION_FAILED = '412 PRECONDITION_FAILED' field_413_PAYLOAD_TOO_LARGE = '413 PAYLOAD_TOO_LARGE' field_413_REQUEST_ENTITY_TOO_LARGE = '413 REQUEST_ENTITY_TOO_LARGE' field_414_URI_TOO_LONG = '414 URI_TOO_LONG' field_414_REQUEST_URI_TOO_LONG = '414 REQUEST_URI_TOO_LONG' field_415_UNSUPPORTED_MEDIA_TYPE = '415 UNSUPPORTED_MEDIA_TYPE' field_416_REQUESTED_RANGE_NOT_SATISFIABLE = '416 REQUESTED_RANGE_NOT_SATISFIABLE' field_417_EXPECTATION_FAILED = '417 EXPECTATION_FAILED' field_418_I_AM_A_TEAPOT = '418 I_AM_A_TEAPOT' field_419_INSUFFICIENT_SPACE_ON_RESOURCE = '419 INSUFFICIENT_SPACE_ON_RESOURCE' field_420_METHOD_FAILURE = '420 METHOD_FAILURE' field_421_DESTINATION_LOCKED = '421 DESTINATION_LOCKED' field_422_UNPROCESSABLE_ENTITY = '422 UNPROCESSABLE_ENTITY' field_423_LOCKED = '423 LOCKED' field_424_FAILED_DEPENDENCY = '424 FAILED_DEPENDENCY' field_426_UPGRADE_REQUIRED = '426 UPGRADE_REQUIRED' field_428_PRECONDITION_REQUIRED = '428 PRECONDITION_REQUIRED' field_429_TOO_MANY_REQUESTS = '429 TOO_MANY_REQUESTS' field_431_REQUEST_HEADER_FIELDS_TOO_LARGE = '431 REQUEST_HEADER_FIELDS_TOO_LARGE' field_451_UNAVAILABLE_FOR_LEGAL_REASONS = '451 UNAVAILABLE_FOR_LEGAL_REASONS' field_500_INTERNAL_SERVER_ERROR = '500 INTERNAL_SERVER_ERROR' field_501_NOT_IMPLEMENTED = '501 NOT_IMPLEMENTED' field_502_BAD_GATEWAY = '502 BAD_GATEWAY' field_503_SERVICE_UNAVAILABLE = '503 SERVICE_UNAVAILABLE' field_504_GATEWAY_TIMEOUT = '504 GATEWAY_TIMEOUT' field_505_HTTP_VERSION_NOT_SUPPORTED = '505 HTTP_VERSION_NOT_SUPPORTED' field_506_VARIANT_ALSO_NEGOTIATES = '506 VARIANT_ALSO_NEGOTIATES' field_507_INSUFFICIENT_STORAGE = '507 INSUFFICIENT_STORAGE' field_508_LOOP_DETECTED = '508 LOOP_DETECTED' field_509_BANDWIDTH_LIMIT_EXCEEDED = '509 BANDWIDTH_LIMIT_EXCEEDED' field_510_NOT_EXTENDED = '510 NOT_EXTENDED' field_511_NETWORK_AUTHENTICATION_REQUIRED = '511 NETWORK_AUTHENTICATION_REQUIRED' class ResponseEntity(BaseModel): body: Optional[Dict[str, Any]] = None statusCode: Optional[StatusCode] = None statusCodeValue: Optional[int] = None class RetrieveHealthIdPayloadResponse(BaseModel): healthId: Optional[str] = None healthIdNumber: Optional[str] = None class RetriveHealthIdMobilePayLoad(BaseModel): dayOfBirth: Optional[constr(pattern=r'^(0?[1-9]|[12][0-9]|3[01])$')] = None firstName: Optional[str] = None gender: Optional[constr(pattern=r'^(M|F|O|U)$')] = None lastName: Optional[str] = None middleName: Optional[str] = None monthOfBirth: Optional[constr(pattern=r'^(0?[1-9]|1[012])$')] = None name: Optional[str] = None otp: Optional[str] = None txnId: str yearOfBirth: Optional[constr(pattern=r'^(\d{4})$')] = None class SearchByHealthIdRequest(BaseModel): healthId: Optional[str] = None class SearchByMobileRequest(BaseModel): gender: Optional[str] = None mobile: Optional[str] = None name: Optional[str] = None yearOfBirth: Optional[str] = None class SearchResponseSingle(BaseModel): authMethods: Optional[List[AuthMethod]] = None healthId: Optional[str] = None healthIdNumber: Optional[str] = None name: Optional[str] = None tags: Optional[Dict[str, str]] = None class StatesDTO(BaseModel): code: Optional[str] = None districts: Optional[List[DistrictDTO]] = None name: Optional[str] = None class TagRequest(BaseModel): healthId: Optional[str] = None tags: Optional[Dict[str, str]] = None class TxnResponse(BaseModel): txnId: Optional[UUID] = None class URI(BaseModel): absolute: Optional[bool] = None authority: Optional[str] = None fragment: Optional[str] = None host: Optional[str] = None opaque: Optional[bool] = None path: Optional[str] = None port: Optional[int] = None query: Optional[str] = None rawAuthority: Optional[str] = None rawFragment: Optional[str] = None rawPath: Optional[str] = None rawQuery: Optional[str] = None rawSchemeSpecificPart: Optional[str] = None rawUserInfo: Optional[str] = None scheme: Optional[str] = None schemeSpecificPart: Optional[str] = None userInfo: Optional[str] = None class URL(BaseModel): authority: Optional[str] = None content: Optional[Dict[str, Any]] = None defaultPort: Optional[int] = None file: Optional[str] = None host: Optional[str] = None path: Optional[str] = None port: Optional[int] = None protocol: Optional[str] = None query: Optional[str] = None ref: Optional[str] = None userInfo: Optional[str] = None class UpdateAccountRequest(BaseModel): address: Optional[str] = None dayOfBirth: Optional[str] = None districtCode: Optional[str] = None email: Optional[str] = None firstName: Optional[str] = None healthId: Optional[str] = None lastName: Optional[str] = None middleName: Optional[str] = None monthOfBirth: Optional[str] = None password: Optional[str] = None pincode: Optional[int] = None profilePhoto: Optional[str] = None stateCode: Optional[str] = None subdistrictCode: Optional[str] = None townCode: Optional[str] = None villageCode: Optional[str] = None wardCode: Optional[str] = None yearOfBirth: Optional[str] = None class UserDTO(BaseModel): address: Optional[str] = None authMethods: Optional[List[AuthMethod]] = None dayOfBirth: Optional[str] = None districtCode: Optional[str] = None districtName: Optional[str] = None email: Optional[str] = None firstName: Optional[str] = None gender: Optional[str] = None healthId: Optional[str] = None healthIdNumber: Optional[str] = None kycPhoto: Optional[str] = None kycVerified: Optional[bool] = None lastName: Optional[str] = None middleName: Optional[str] = None mobile: Optional[str] = None monthOfBirth: Optional[str] = None name: Optional[str] = None new: Optional[bool] = None pincode: Optional[str] = None profilePhoto: Optional[str] = None stateCode: Optional[str] = None stateName: Optional[str] = None subDistrictCode: Optional[str] = None subdistrictName: Optional[str] = None tags: Optional[Dict[str, str]] = None townCode: Optional[str] = None townName: Optional[str] = None villageCode: Optional[str] = None villageName: Optional[str] = None wardCode: Optional[str] = None wardName: Optional[str] = None yearOfBirth: Optional[str] = None class ValidateTokenRequest(BaseModel): authToken: Optional[str] = None class VerifyAadhaarOtp(BaseModel): otp: Optional[str] = None restrictions: Optional[str] = None txnId: Optional[str] = None class VerifyAadhaarWithBio(BaseModel): aadhaar: Optional[constr(pattern=r'^(\d{12}|\d{16})*$')] = None bioType: Optional[str] = None pid: Optional[str] = None restrictions: Optional[str] = None class VerifyMobileRequest(BaseModel): otp: Optional[str] = None txnId: Optional[str] = None class V1HaLgdDistrictsGetResponse(RootModel[List[DistrictDTO]]): root: List[DistrictDTO] class V1HaLgdStatesGetResponse(RootModel[List[StatesDTO]]): root: List[StatesDTO] class V1HaTagsDeleteResponse(RootModel[List[TagRequest]]): root: List[TagRequest] class V1HaTagsGetResponse(BaseModel): pass class V1HaTagsPostResponse(RootModel[List[TagRequest]]): root: List[TagRequest] class V1HidBenefitSearchAadhaarPostResponse(RootModel[List[Dict[str, Any]]]): root: List[Dict[str, Any]] class V1HidBenefitSearchHealthIdNumberPostResponse( RootModel[List[HidBenefitSearchResponsePayload]] ): root: List[HidBenefitSearchResponsePayload] class V1RegistrationAadhaarSearchAadharPostResponse(RootModel[List[Dict[str, Any]]]): root: List[Dict[str, Any]] class V1SearchExistsByHealthIdPostResponse(BaseModel): pass class ByteArrayResource(BaseModel): byteArray: Optional[str] = None description: Optional[str] = None file: Optional[File] = None filename: Optional[str] = None inputStream: Optional[InputStream] = None open: Optional[bool] = None readable: Optional[bool] = None uri: Optional[URI] = None url: Optional[URL] = None File.model_rebuild()

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ag2-mcp-servers/health-id-service'

If you have feedback or need assistance with the MCP directory API, please join our Discord server