Skip to main content
Glama

HHS Media Services API MCP Server

main.py22.2 kB
# generated by fastapi-codegen: # filename: openapi.yaml # timestamp: 2025-06-29T03:29:54+00:00 import argparse import json import os from datetime import date from typing import * from typing import Optional from autogen.mcp.mcp_proxy import MCPProxy from autogen.mcp.mcp_proxy.security import BaseSecurity from fastapi import Query from models import CampaignWrapped, MediaItemWrapped, SyndicateMarshallerWrapped from models.Resources import JsonGetResponse from models.ResourcesLanguages import JsonGetResponse from models.ResourcesLanguages_id_ import JsonGetResponse from models.ResourcesMedia import JsonGetResponse from models.ResourcesMedia_id_ import JsonGetResponse from models.ResourcesMedia_id_Preview import JpgGetResponse from models.ResourcesMedia_id_RelatedMedia import FieldFormatGetResponse from models.ResourcesMedia_id_Thumbnail import JpgGetResponse from models.ResourcesMedia_id_YoutubeMetaData import JsonGetResponse from models.ResourcesMediaFeatured import JsonGetResponse from models.ResourcesMediaMostPopularMedia import FieldFormatGetResponse from models.ResourcesMediaSearchResults import JsonGetResponse from models.ResourcesMediaTypes import FieldFormatGetResponse from models.ResourcesSources import JsonGetResponse from models.ResourcesSources_id_ import JsonGetResponse from models.ResourcesSources_id_Syndicate import FieldFormatGetResponse from models.ResourcesTags import FieldFormatGetResponse from models.ResourcesTags_id_ import FieldFormatGetResponse from models.ResourcesTags_id_Media import FieldFormatGetResponse from models.ResourcesTags_id_Related import FieldFormatGetResponse from models.ResourcesTagsTagLanguages import FieldFormatGetResponse from models.ResourcesTagsTagTypes import FieldFormatGetResponse from models.ResourcesUserMediaLists_id_ import JsonGetResponse app = MCPProxy( contact={'email': 'syndicationadmin@hhs.gov'}, description='<div class="swagger-ui-wrap extraFooter"><h3>Common Features / Behaviors</h3> <div class="features"> <ul> <li><strong>* "sort" param:</strong> supports multi column sorting through the use of commas as delimiters, and a hyphen to denote descending order. <br/> <strong><span>Examples:</span></strong> <ul> <li><span class="example">name</span><span class="description">sort results by name ascending</span></li> <li><span class="example">-name</span><span class="description">sort results by name descending</span></li> <li><span class="example">-name,id</span><span class="description">sort results by name descending and then by id ascending</span></li> <li><span class="example">id,-dateContentAuthored</span><span class="description">sort results by id ascending and then date descending</span></li> </ul> </li> <li><strong>Date formats:</strong> Date input format is expected to be based on <a href="http://www.ietf.org/rfc/rfc3339.txt">RFC 3339</a>. <br/> <span><strong>Example:</strong></span> <ul><li>2013-11-18T18:43:01Z</li></ul> </li> </ul> </div> </div>', license={ 'name': 'GNU GENERAL PUBLIC LICENSE', 'url': 'http://www.gnu.org/licenses/gpl.html', }, termsOfService='http://www.hhs.gov/web/socialmedia/policies/tos.html#ready', title='HHS Media Services API', version='2', servers=[{'url': '/api/v2'}], ) @app.get( '/resources.json', description=""" Global search """, tags=['resource_retrieval'] ) def get_resources_json(q: str): """ Get Resources by search query """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/campaigns.json', description=""" Media Listings for a specific campaign """, tags=['campaign_operations', 'resource_retrieval'], ) def get_resources_campaigns_json( max: Optional[int] = None, offset: Optional[int] = None, sort: Optional[str] = None ): """ Get Campaigns """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/campaigns/{id}.json', description=""" Information about a specific campaign """, tags=['resource_retrieval', 'campaign_operations'], ) def get_resources_campaigns__id_json(id: int): """ Get Campaign by ID """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/campaigns/{id}/media.json', description=""" Campaign Listings """, tags=['resource_retrieval', 'media_item_management', 'campaign_operations'], ) def get_resources_campaigns__id_media_json( id: int, sort: Optional[str] = None, max: Optional[int] = None, offset: Optional[int] = None, ): """ Get MediaItems by Campaign ID """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/campaigns/{id}/syndicate.{format}', description=""" MediaItem """, tags=['resource_retrieval', 'media_item_management', 'campaign_operations'], ) def get_resources_campaigns__id_syndicate__format( id: int, display_method: Optional[str] = Query(None, alias='displayMethod'), format: str = ..., ): """ Get MediaItems for Campaign """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/languages.json', description=""" Language Listings """, tags=['resource_retrieval', 'language_operations'], ) def get_resources_languages_json( max: Optional[int] = None, offset: Optional[int] = None, sort: Optional[str] = None ): """ Get Languages """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/languages/{id}.json', description=""" Information about a specific language """, tags=['language_operations', 'resource_retrieval'], ) def get_resources_languages__id_json(id: int): """ Get Language by ID """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/media.json', description=""" Media Items Listings """, tags=['resource_retrieval', 'media_item_management'], ) def get_resources_media_json( max: Optional[int] = None, offset: Optional[int] = None, sort: Optional[str] = None, order: Optional[str] = None, media_types: Optional[str] = Query(None, alias='mediaTypes'), name: Optional[str] = None, collection_id: Optional[int] = Query(None, alias='collectionId'), name_contains: Optional[str] = Query(None, alias='nameContains'), description_contains: Optional[str] = Query(None, alias='descriptionContains'), source_url: Optional[str] = Query(None, alias='sourceUrl'), source_url_contains: Optional[str] = Query(None, alias='sourceUrlContains'), custom_thumbnail_url: Optional[str] = Query(None, alias='customThumbnailUrl'), custom_thumbnail_url_contains: Optional[str] = Query( None, alias='customThumbnailUrlContains' ), date_content_authored: Optional[date] = Query(None, alias='dateContentAuthored'), date_content_updated: Optional[date] = Query(None, alias='dateContentUpdated'), date_content_published: Optional[date] = Query(None, alias='dateContentPublished'), date_content_reviewed: Optional[date] = Query(None, alias='dateContentReviewed'), date_syndication_captured: Optional[date] = Query( None, alias='dateSyndicationCaptured' ), date_syndication_updated: Optional[date] = Query( None, alias='dateSyndicationUpdated' ), content_authored_since_date: Optional[date] = Query( None, alias='contentAuthoredSinceDate' ), content_authored_before_date: Optional[date] = Query( None, alias='contentAuthoredBeforeDate' ), content_authored_in_range: Optional[str] = Query( None, alias='contentAuthoredInRange' ), content_updated_since_date: Optional[date] = Query( None, alias='contentUpdatedSinceDate' ), content_updated_before_date: Optional[date] = Query( None, alias='contentUpdatedBeforeDate' ), content_updated_in_range: Optional[str] = Query( None, alias='contentUpdatedInRange' ), content_published_since_date: Optional[date] = Query( None, alias='contentPublishedSinceDate' ), content_published_before_date: Optional[date] = Query( None, alias='contentPublishedBeforeDate' ), content_published_in_range: Optional[str] = Query( None, alias='contentPublishedInRange' ), content_reviewed_since_date: Optional[date] = Query( None, alias='contentReviewedSinceDate' ), content_reviewed_before_date: Optional[date] = Query( None, alias='contentReviewedBeforeDate' ), content_reviewed_in_range: Optional[str] = Query( None, alias='contentReviewedInRange' ), syndication_captured_since_date: Optional[date] = Query( None, alias='syndicationCapturedSinceDate' ), syndication_captured_before_date: Optional[date] = Query( None, alias='syndicationCapturedBeforeDate' ), syndication_captured_in_range: Optional[str] = Query( None, alias='syndicationCapturedInRange' ), syndication_updated_since_date: Optional[date] = Query( None, alias='syndicationUpdatedSinceDate' ), syndication_updated_before_date: Optional[date] = Query( None, alias='syndicationUpdatedBeforeDate' ), syndication_updated_in_range: Optional[str] = Query( None, alias='syndicationUpdatedInRange' ), syndication_visible_since_date: Optional[date] = Query( None, alias='syndicationVisibleSinceDate' ), syndication_visible_before_date: Optional[date] = Query( None, alias='syndicationVisibleBeforeDate' ), syndication_visible_in_range: Optional[date] = Query( None, alias='syndicationVisibleInRange' ), language_id: Optional[int] = Query(None, alias='languageId'), language_name: Optional[str] = Query(None, alias='languageName'), language_iso_code: Optional[str] = Query(None, alias='languageIsoCode'), hash: Optional[str] = None, hash_contains: Optional[str] = Query(None, alias='hashContains'), source_id: Optional[int] = Query(None, alias='sourceId'), source_name: Optional[str] = Query(None, alias='sourceName'), source_name_contains: Optional[str] = Query(None, alias='sourceNameContains'), source_acronym: Optional[str] = Query(None, alias='sourceAcronym'), source_acronym_contains: Optional[str] = Query(None, alias='sourceAcronymContains'), tag_ids: Optional[str] = Query(None, alias='tagIds'), restrict_to_set: Optional[str] = Query(None, alias='restrictToSet'), created_by: Optional[str] = Query(None, alias='createdBy'), ): """ Get MediaItems """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/media/featured.json', description=""" Get the list of featured content in the syndication system """, tags=['resource_retrieval', 'media_item_management'], ) def get_resources_media_featured_json( sort: Optional[str] = None, max: Optional[int] = None, offset: Optional[int] = None ): """ Get the list of featured content in the syndication system """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/media/mostPopularMedia.{format}', description=""" Get the media with the highest ratings. """, tags=['resource_retrieval', 'media_item_management'], ) def get_resources_media_most_popular_media__format( max: Optional[int] = None, offset: Optional[int] = None, format: str = ... ): """ Get MediaItems by popularity """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/media/searchResults.json', description=""" Full search """, tags=['resource_retrieval', 'media_item_management'], ) def get_resources_media_search_results_json( q: str, max: Optional[int] = None, offset: Optional[int] = None ): """ Get MediaItems by search query """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/media/{id}.json', description=""" Information about a specific media item """, tags=['resource_retrieval', 'media_item_management'], ) def get_resources_media__id_json(id: int): """ Get MediaItem by ID """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/media/{id}/content', description=""" The actual media content (html, image, etc...) """, tags=['resource_retrieval', 'media_item_management'], ) def get_resources_media__id_content( id: int, called_by_build: Optional[bool] = Query(None, alias='calledByBuild') ): """ Get content for MediaItem """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/media/{id}/embed.json', description=""" Get the javascript or iframe embed code for this item (to embed it on a web page). """, tags=['media_item_management', 'resource_retrieval'], ) def get_resources_media__id_embed_json( id: int, flavor: Optional[str] = None, width: Optional[int] = None, height: Optional[int] = None, iframe_name: Optional[str] = Query(None, alias='iframeName'), exclude_jquery: Optional[bool] = Query(False, alias='excludeJquery'), exclude_div: Optional[bool] = Query(False, alias='excludeDiv'), div_id: Optional[str] = Query(None, alias='divId'), display_method: Optional[str] = Query(None, alias='displayMethod'), ): """ Get embed code for MediaItem """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/media/{id}/preview.jpg', description=""" Get the jpg preview of the content item where applicable. """, tags=['resource_retrieval', 'tag_operations'], ) def get_resources_media__id_preview_jpg(id: int): """ Get Tag by ID """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/media/{id}/relatedMedia.{format}', description=""" Get the media related to the current media item. """, tags=['resource_retrieval', 'media_item_management'], ) def get_resources_media__id_related_media__format( id: int, max: Optional[int] = None, offset: Optional[int] = None, sort: Optional[str] = None, format: str = ..., ): """ Get related MediaItems by ID """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/media/{id}/syndicate.{format}', description=""" Get syndicated content. """, tags=['media_item_management', 'resource_retrieval'], ) def get_resources_media__id_syndicate__format( id: int, css_class: Optional[str] = Query('syndicate', alias='cssClass'), strip_styles: Optional[bool] = Query(False, alias='stripStyles'), strip_scripts: Optional[bool] = Query(False, alias='stripScripts'), strip_images: Optional[bool] = Query(False, alias='stripImages'), strip_breaks: Optional[bool] = Query(False, alias='stripBreaks'), strip_classes: Optional[bool] = Query(False, alias='stripClasses'), font_size: Optional[int] = Query(None, alias='font-size'), image_float: Optional[str] = Query(None, alias='imageFloat'), image_margin: Optional[str] = Query(None, alias='imageMargin'), autoplay: Optional[bool] = True, rel: Optional[bool] = False, format: str = ..., ): """ Get syndicated content for MediaItem """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/media/{id}/thumbnail.jpg', description=""" Get the jpg thumbnail of the content item where applicable. """, tags=['resource_retrieval', 'media_item_management'], ) def get_resources_media__id_thumbnail_jpg(id: int): """ Get JPG thumbnail for MediaItem """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/media/{id}/youtubeMetaData.json', description=""" Youtube meta-data for a video item. """, tags=['resource_retrieval', 'media_item_management'], ) def get_resources_media__id_youtube_meta_data_json(id: int): """ Get Youtube metadata for MediaItem """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/mediaTypes.{format}', description=""" Information about media types """, tags=['media_item_management', 'resource_retrieval'], ) def get_resources_media_types__format(format: str): """ Get MediaTypes """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/sources.json', description=""" Source Listings """, tags=['resource_retrieval', 'source_information'], ) def get_resources_sources_json( max: Optional[int] = None, offset: Optional[int] = None, sort: Optional[str] = None ): """ Get Sources """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/sources/{id}.json', description=""" Information about a specific source. """, tags=['resource_retrieval', 'source_information'], ) def get_resources_sources__id_json(id: int): """ Get Source by ID """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/sources/{id}/syndicate.{format}', description=""" MediaItem """, tags=['resource_retrieval', 'media_item_management', 'source_information'], ) def get_resources_sources__id_syndicate__format( id: int, display_method: Optional[str] = Query(None, alias='displayMethod'), format: str = ..., ): """ Get MediaItems for Source """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/tags.{format}', description=""" List of Tags """, tags=['resource_retrieval', 'tag_operations'], ) def get_resources_tags__format( sort: Optional[str] = None, max: Optional[int] = None, offset: Optional[int] = None, name: Optional[str] = None, name_contains: Optional[str] = Query(None, alias='nameContains'), media_id: Optional[int] = Query(None, alias='mediaId'), type_id: Optional[int] = Query(None, alias='typeId'), type_name: Optional[str] = Query(None, alias='typeName'), format: str = ..., ): """ Get Tags """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/tags/tagLanguages.{format}', description=""" List of Tag Languages """, tags=['language_operations', 'tag_operations'], ) def get_resources_tags_tag_languages__format(format: str): """ Get TagLanguages """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/tags/tagTypes.{format}', description=""" List of Types """, tags=['resource_retrieval', 'media_item_management', 'tag_operations'], ) def get_resources_tags_tag_types__format(format: str): """ Get MediaItems for Tag """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/tags/{id}.{format}', description=""" Information about a specific tag """, tags=['resource_retrieval', 'tag_operations'], ) def get_resources_tags__id__format(id: int, format: str = ...): """ Get Tag by ID """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/tags/{id}/media.{format}', description=""" MediaItem """, tags=['resource_retrieval', 'media_item_management', 'tag_operations'], ) def get_resources_tags__id_media__format( id: int, sort: Optional[str] = None, max: Optional[int] = None, offset: Optional[int] = None, format: str = ..., ): """ Get MediaItems for Tag """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/tags/{id}/related.{format}', description=""" Information about related tags to a specific tag """, tags=['resource_retrieval', 'tag_operations'], ) def get_resources_tags__id_related__format( id: int, sort: Optional[str] = None, max: Optional[int] = None, offset: Optional[int] = None, format: str = ..., ): """ Get related Tags by ID """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/tags/{id}/syndicate.{format}', description=""" MediaItem """, tags=['resource_retrieval', 'media_item_management', 'tag_operations'], ) def get_resources_tags__id_syndicate__format( id: int, display_method: Optional[str] = Query(None, alias='displayMethod'), format: str = ..., ): """ Get MediaItems for Tag """ raise RuntimeError("Should be patched by MCPProxy and never executed") @app.get( '/resources/userMediaLists/{id}.json', description=""" Get a specific user media list. """, tags=['user_media_lists', 'media_item_management'], ) def get_resources_user_media_lists__id_json( id: int, display_method: Optional[str] = Query(None, alias='displayMethod') ): """ Get UserMediaList by ID """ raise RuntimeError("Should be patched by MCPProxy and never executed") if __name__ == "__main__": parser = argparse.ArgumentParser(description="MCP Server") parser.add_argument( "transport", choices=["stdio", "sse", "streamable-http"], help="Transport mode (stdio, sse or streamable-http)", ) args = parser.parse_args() if "CONFIG_PATH" in os.environ: config_path = os.environ["CONFIG_PATH"] app.load_configuration(config_path) if "CONFIG" in os.environ: config = os.environ["CONFIG"] app.load_configuration_from_string(config) if "SECURITY" in os.environ: security_params = BaseSecurity.parse_security_parameters_from_env( os.environ, ) app.set_security_params(security_params) mcp_settings = json.loads(os.environ.get("MCP_SETTINGS", "{}")) app.get_mcp(**mcp_settings).run(transport=args.transport)

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/hhs-media-services-api'

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