{"id":53308,"date":"2025-04-28T15:31:04","date_gmt":"2025-04-28T05:31:04","guid":{"rendered":"https:\/\/www.cloudproinc.com.au\/?p=53308"},"modified":"2025-04-30T15:30:17","modified_gmt":"2025-04-30T05:30:17","slug":"creating-an-mcp-server-in-c-to-call-openai-and-list-files","status":"publish","type":"post","link":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/","title":{"rendered":"Creating an MCP Server in C# to Call OpenAI and List Files"},"content":{"rendered":"\n<p>When working with OpenAI&#8217;s APIs, it&#8217;s often useful to manage stored files programmatically. In this guide, I\u2019ll show you how to build a Model Context Protocol (MCP) agent using C# that calls OpenAI and lists all files in your OpenAI storage. This method effectively demonstrates creating an MCP server in C# to call OpenAI and list files.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-0-installing-required-packages\"><br>Step 0: Installing Required Packages<\/h2>\n\n\n\n<p>Before running the project, you need to install a few important NuGet packages for creating an MCP server in C# to call OpenAI and list files.<\/p>\n\n\n\n<p>Use the following <code>dotnet<\/code> commands to install them:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-588c456bd08c0f9a069bbba12a16c920\"><code>dotnet add package OpenAI --version 2.5.0\ndotnet add package Microsoft.Extensions.Hosting --version 8.0.0\ndotnet add package Microsoft.Extensions.DependencyInjection --version 8.0.0\ndotnet add package Microsoft.Extensions.Logging --version 8.0.0\ndotnet add package ModelContextProtocol.Server --version 0.4.4\n<\/code><\/pre>\n\n\n\n<p>Here\u2019s why each package is needed:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OpenAI<\/strong>: Connects to OpenAI\u2019s API for file management and more.<\/li>\n\n\n\n<li><strong>Microsoft.Extensions.Hosting<\/strong>: Provides background task hosting.<\/li>\n\n\n\n<li><strong>Microsoft.Extensions.DependencyInjection<\/strong>: Handles dependency injection.<\/li>\n\n\n\n<li><strong>Microsoft.Extensions.Logging<\/strong>: Adds console logging support.<\/li>\n\n\n\n<li><strong>ModelContextProtocol.Server<\/strong>: Enables MCP server capabilities, essential for creating an MCP server in C# to call OpenAI and list files.<\/li>\n<\/ul>\n\n\n\n<p>Make sure you run these commands inside your project directory. <\/p>\n\n\n\n<p>To read about Azure MCP Server click <a href=\"\/wp-content\/uploads\/2025\/04\/Azure-MCP-Server-Setup.png\">here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-1-setting-up-the-mcp-agent\">Step 1: Setting Up the MCP Agent<\/h2>\n\n\n\n<p>We start by creating a <code>.NET<\/code> console application.<br>The <code>Program.cs<\/code> file is the main entry point for the application and a critical part of creating an MCP server in C# to call OpenAI and list files.<\/p>\n\n\n\n<p>In the code, we:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <code>Microsoft.Extensions.Hosting<\/code> to build a hosted console app.<\/li>\n\n\n\n<li>Set up a server that communicates over standard input\/output (STDIO).<\/li>\n<\/ul>\n\n\n\n<p>Here\u2019s the important startup code:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-5d1de523b79ed8e1e3144fa91e4c86ee\"><code>var builder = Host.CreateApplicationBuilder(args);\nbuilder.Logging.AddConsole(consoleLogOptions =&gt; {\n    consoleLogOptions.LogToStandardErrorThreshold = LogLevel.Trace;\n});\n\nbuilder.Services\n    .AddMcpServer()\n    .WithStdioServerTransport()\n    .WithToolsFromAssembly();\n\nawait builder.Build().RunAsync();\n<\/code><\/pre>\n\n\n\n<p>This ensures that the app is MCP-compliant and ready to communicate with tools like GitHub Copilot.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-2-connecting-to-openai\">Step 2: Connecting to OpenAI<\/h2>\n\n\n\n<p>To connect to OpenAI, we use the <code>OpenAI<\/code> and <code>OpenAI.Files<\/code> namespaces from the OpenAI .NET SDK.<\/p>\n\n\n\n<p>We configure a static provider:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-3618f28727c453a60a8b57a4223f51f2\"><code>public static class OpenAIFileClientProvider\n{\n    public static readonly OpenAIFileClient FileClient = new OpenAIClient(Environment.GetEnvironmentVariable(\"OPENAI_API_KEY\")).GetOpenAIFileClient();\n}<\/code><\/pre>\n\n\n\n<p>The <code>OPENAI_API_KEY<\/code> must be set as an environment variable before running the application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-3-creating-the-mcp-tool-to-list-files\">Step 3: Creating the MCP Tool to List Files<\/h2>\n\n\n\n<p>The <code>OpenAITool<\/code> class provides the method to call OpenAI and return a list of files:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-8c321a02e50b90b5e7521c06aa7699fc\"><code>[McpServerToolType]\npublic static class OpenAITool\n{\n    [McpServerTool, Description(\"Call OpenAI\")]\n    public static async Task<string> ListOpenAIFiles()\n    {\n        var files = await OpenAIFileManager.ListFilesAsync(OpenAIFileClientProvider.FileClient);\n        return JsonSerializer.Serialize(files);\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"has-black-color has-text-color has-link-color wp-elements-e119e226270af3c3af5486252058d591\"><strong>Important:<br><\/strong>For MCP to work correctly, the tool must return a <strong>JSON object<\/strong>.<br>That\u2019s why we serialize the list of files using <code>JsonSerializer.Serialize(files)<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-4-handling-file-listing\">Step 4: Handling File Listing<\/h2>\n\n\n\n<p>The helper class <code>OpenAIFileManager<\/code> is responsible for fetching the file list:<\/p>\n\n\n\n<p class=\"has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-2f6eead0727417fff50e717e682a54b5\">public class OpenAIFileManager<br>{<br>public static async Task&gt; ListFilesAsync(OpenAIFileClient fileClient)<br>{<br>var fileList = new List();<br>try<br>{<br>OpenAIFileCollection files = await fileClient.GetFilesAsync();<br>foreach (OpenAIFile file in files)<br>{<br>fileList.Add(file);<br>Console.WriteLine($&#8221;ID: {file.Id}, Name: {file.Filename}, Size: {file.SizeInBytes} bytes&#8221;);<br>}<br>}<br>catch (Exception ex)<br>{<br>Console.WriteLine($&#8221;Error retrieving files: {ex.Message}&#8221;);<br>}<br>return fileList;<br>}<br>}<\/p>\n\n\n\n<p>We fetch all files, log them to the console for troubleshooting, and return them as a list.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-5-mcp-server-configuration\">Step 5: MCP Server Configuration<\/h2>\n\n\n\n<p>The <code>mcp.json<\/code> file defines how the MCP server will run the OpenAI tool:<\/p>\n\n\n\n<p class=\"has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-4668b1843ccc50e29b89f2013693cefe\">{<br>&#8220;servers&#8221;: {<br>&#8220;OpenAITool&#8221;: {<br>&#8220;type&#8221;: &#8220;stdio&#8221;,<br>&#8220;command&#8221;: &#8220;dotnet&#8221;,<br>&#8220;args&#8221;: [<br>&#8220;run&#8221;,<br>&#8220;&#8211;project&#8221;,<br>&#8220;C:\\\\Repos\\\\MCP-OpenAI-Files\\\\MCP-OpenAI-Files.csproj&#8221;<br>]<br>}<br>}<br>}<\/p>\n\n\n\n<p>This tells MCP how to start and interact with our dotnet-based MCP server.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-6-the-final-result\">Step 6: The Final Result<\/h2>\n\n\n\n<p>After running the project, the MCP server successfully calls OpenAI, lists all the files, and returns a JSON output.<\/p>\n\n\n\n<p>Here\u2019s an example of the returned JSON:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-abc8d7dc7fa37b96099db1471043b3f6\"><code>&#91;\n  {\n    \"SizeInBytes\": 5444,\n    \"Status\": 1,\n    \"StatusDetails\": null,\n    \"Id\": \"file-BR3wsx7wo456\",\n    \"CreatedAt\": \"2025-04-28T04:20:20+00:00\",\n    \"ExpiresAt\": null,\n    \"Filename\": \"list.txt\",\n    \"Purpose\": 0\n  }\n]\n<\/code><\/pre>\n\n\n\n<p>And visually, the results inside the GitHub Copilot MCP interface look like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"408\" height=\"148\" data-src=\"\/wp-content\/uploads\/2025\/04\/image-9.png\" alt=\"\" class=\"wp-image-53306 lazyload\" data-srcset=\"\/wp-content\/uploads\/2025\/04\/image-9.png 408w, \/wp-content\/uploads\/2025\/04\/image-9-300x109.png 300w\" data-sizes=\"(max-width: 408px) 100vw, 408px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 408px; --smush-placeholder-aspect-ratio: 408\/148;\" \/><\/figure>\n\n\n\n<p>Another screenshot showing the results:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"410\" height=\"433\" data-src=\"\/wp-content\/uploads\/2025\/04\/image-8.png\" alt=\"\" class=\"wp-image-53305 lazyload\" data-srcset=\"\/wp-content\/uploads\/2025\/04\/image-8.png 410w, \/wp-content\/uploads\/2025\/04\/image-8-284x300.png 284w\" data-sizes=\"(max-width: 410px) 100vw, 410px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 410px; --smush-placeholder-aspect-ratio: 410\/433;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-final-notes\">Final Notes<\/h2>\n\n\n\n<p>\u2705 The MCP agent is fully tested and working.<br>\u2705 It correctly calls OpenAI, lists files, and returns a JSON object as required by MCP.<br>\u2705 The project is simple, clean, and can easily be extended to upload, delete, or manage OpenAI files programmatically, showcasing the flexibility of creating an MCP server in C# to call OpenAI and list files.<\/p>\n\n\n\n<p>If you\u2019re working with MCP agents and OpenAI, this setup will save you a lot of time and give you a solid starting point!<\/p>\n\n\n\n<p>If you need help with OpenAI contect us below. <\/p>\n\n\n<div class=\"wpforms-container wpforms-container-full wpforms-block wpforms-block-40986e5b-132a-463b-b751-7ed6cf4c8271 wpforms-render-modern\" id=\"wpforms-53280\"><form id=\"wpforms-form-53280\" class=\"wpforms-validate wpforms-form wpforms-ajax-form\" data-formid=\"53280\" method=\"post\" enctype=\"multipart\/form-data\" action=\"\/index.php\/wp-json\/wp\/v2\/posts\/53308\" data-token=\"7d5485f4601801d66653a34043be5c8f\" data-token-time=\"1776247275\"><noscript class=\"wpforms-error-noscript\">Please enable JavaScript in your browser to complete this form.<\/noscript><div id=\"wpforms-error-noscript\" style=\"display: none;\">Please enable JavaScript in your browser to complete this form.<\/div><div class=\"wpforms-field-container\">\t\t<div id=\"wpforms-53280-field_4-container\"\n\t\t\tclass=\"wpforms-field wpforms-field-text\"\n\t\t\tdata-field-type=\"text\"\n\t\t\tdata-field-id=\"4\"\n\t\t\t>\n\t\t\t<label class=\"wpforms-field-label\" for=\"wpforms-53280-field_4\" >Message Name or<\/label>\n\t\t\t<input type=\"text\" id=\"wpforms-53280-field_4\" class=\"wpforms-field-medium\" name=\"wpforms[fields][4]\" >\n\t\t<\/div>\n\t\t<div id=\"wpforms-53280-field_1-container\" class=\"wpforms-field wpforms-field-name\" data-field-id=\"1\"><fieldset><legend class=\"wpforms-field-label\">Name <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/legend><div class=\"wpforms-field-row wpforms-field-medium\"><div class=\"wpforms-field-row-block wpforms-first wpforms-one-half\"><input type=\"text\" id=\"wpforms-53280-field_1\" class=\"wpforms-field-name-first wpforms-field-required\" name=\"wpforms[fields][1][first]\" aria-errormessage=\"wpforms-53280-field_1-error\" required><label for=\"wpforms-53280-field_1\" class=\"wpforms-field-sublabel after\">First<\/label><\/div><div class=\"wpforms-field-row-block wpforms-one-half\"><input type=\"text\" id=\"wpforms-53280-field_1-last\" class=\"wpforms-field-name-last wpforms-field-required\" name=\"wpforms[fields][1][last]\" aria-errormessage=\"wpforms-53280-field_1-last-error\" required><label for=\"wpforms-53280-field_1-last\" class=\"wpforms-field-sublabel after\">Last<\/label><\/div><\/div><\/fieldset><\/div><div id=\"wpforms-53280-field_2-container\" class=\"wpforms-field wpforms-field-email\" data-field-id=\"2\"><label class=\"wpforms-field-label\" for=\"wpforms-53280-field_2\">Email <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"email\" id=\"wpforms-53280-field_2\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][2]\" spellcheck=\"false\" aria-errormessage=\"wpforms-53280-field_2-error\" required><\/div><div id=\"wpforms-53280-field_3-container\" class=\"wpforms-field wpforms-field-textarea\" data-field-id=\"3\"><label class=\"wpforms-field-label\" for=\"wpforms-53280-field_3\">Comment or Message <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><textarea id=\"wpforms-53280-field_3\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][3]\" aria-errormessage=\"wpforms-53280-field_3-error\" required><\/textarea><\/div><script>\n\t\t\t\t( function() {\n\t\t\t\t\tconst style = document.createElement( 'style' );\n\t\t\t\t\tstyle.appendChild( document.createTextNode( '#wpforms-53280-field_4-container { position: absolute !important; overflow: hidden !important; display: inline !important; height: 1px !important; width: 1px !important; z-index: -1000 !important; padding: 0 !important; } #wpforms-53280-field_4-container input { visibility: hidden; } #wpforms-conversational-form-page #wpforms-53280-field_4-container label { counter-increment: none; }' ) );\n\t\t\t\t\tdocument.head.appendChild( style );\n\t\t\t\t\tdocument.currentScript?.remove();\n\t\t\t\t} )();\n\t\t\t<\/script><\/div><!-- .wpforms-field-container --><div class=\"wpforms-submit-container\" ><input type=\"hidden\" name=\"wpforms[id]\" value=\"53280\"><input type=\"hidden\" name=\"page_title\" value=\"\"><input type=\"hidden\" name=\"page_url\" value=\"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/53308\"><input type=\"hidden\" name=\"url_referer\" value=\"\"><button type=\"submit\" name=\"wpforms[submit]\" id=\"wpforms-submit-53280\" class=\"wpforms-submit\" data-alt-text=\"Sending...\" data-submit-text=\"Submit\" aria-live=\"assertive\" value=\"wpforms-submit\">Submit<\/button><img decoding=\"async\" data-src=\"\/wp-content\/plugins\/wpforms-lite\/assets\/images\/submit-spin.svg\" class=\"wpforms-submit-spinner lazyload\" style=\"--smush-placeholder-width: 26px; --smush-placeholder-aspect-ratio: 26\/26;display: none;\" width=\"26\" height=\"26\" alt=\"Loading\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><\/div><\/form><\/div>  <!-- .wpforms-container -->\n\n\n<div class=\"wp-block-jetpack-related-posts\">\n<h2 class=\"wp-block-heading\" id=\"h-similar-posts\">Similar posts<\/h2>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>When working with OpenAI&#8217;s APIs, it&#8217;s often useful to manage stored files programmatically. In this guide, I\u2019ll show you how to build a Model Context Protocol (MCP) agent using C# that calls OpenAI and lists all files in your OpenAI storage. This method effectively demonstrates creating an MCP server in C# to call OpenAI and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":53307,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"Creating an MCP Server in C# to Call OpenAI and List Files","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"Learn the steps for creating an MCP Server in C# to call OpenAI and list files stored in your OpenAI storage.","_yoast_wpseo_opengraph-title":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_twitter-title":"","_yoast_wpseo_twitter-description":"","_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[27,53],"tags":[],"class_list":["post-53308","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net","category-openai"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Creating an MCP Server in C# to Call OpenAI and List Files - CPI Consulting<\/title>\n<meta name=\"description\" content=\"Learn the steps for creating an MCP Server in C# to call OpenAI and list files stored in your OpenAI storage.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating an MCP Server in C# to Call OpenAI and List Files\" \/>\n<meta property=\"og:description\" content=\"Learn the steps for creating an MCP Server in C# to call OpenAI and list files stored in your OpenAI storage.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/\" \/>\n<meta property=\"og:site_name\" content=\"CPI Consulting\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-28T05:31:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-30T05:30:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cloudproinc.com.au\/wp-content\/uploads\/2025\/04\/openai-mcp-server.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"CPI Staff\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"CPI Staff\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/04\\\/28\\\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/04\\\/28\\\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\\\/\"},\"author\":{\"name\":\"CPI Staff\",\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#\\\/schema\\\/person\\\/192eeeb0ce91062126ce3822ae88fe6e\"},\"headline\":\"Creating an MCP Server in C# to Call OpenAI and List Files\",\"datePublished\":\"2025-04-28T05:31:04+00:00\",\"dateModified\":\"2025-04-30T05:30:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/04\\\/28\\\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\\\/\"},\"wordCount\":620,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/04\\\/28\\\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\\\/#primaryimage\"},\"thumbnailUrl\":\"\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/openai-mcp-server.png\",\"articleSection\":[\".NET\",\"OpenAI\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/04\\\/28\\\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/04\\\/28\\\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\\\/\",\"url\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/04\\\/28\\\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\\\/\",\"name\":\"Creating an MCP Server in C# to Call OpenAI and List Files - CPI Consulting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/04\\\/28\\\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/04\\\/28\\\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\\\/#primaryimage\"},\"thumbnailUrl\":\"\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/openai-mcp-server.png\",\"datePublished\":\"2025-04-28T05:31:04+00:00\",\"dateModified\":\"2025-04-30T05:30:17+00:00\",\"description\":\"Learn the steps for creating an MCP Server in C# to call OpenAI and list files stored in your OpenAI storage.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/04\\\/28\\\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/04\\\/28\\\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/04\\\/28\\\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\\\/#primaryimage\",\"url\":\"\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/openai-mcp-server.png\",\"contentUrl\":\"\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/openai-mcp-server.png\",\"width\":1536,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2025\\\/04\\\/28\\\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.cloudproinc.com.au\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating an MCP Server in C# to Call OpenAI and List Files\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#website\",\"url\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/\",\"name\":\"Cloud Pro Inc - CPI Consulting Pty Ltd\",\"description\":\"Cloud, AI &amp; Cybersecurity Consulting | Melbourne\",\"publisher\":{\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#organization\",\"name\":\"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd\",\"url\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/favfinalfile.png\",\"contentUrl\":\"\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/favfinalfile.png\",\"width\":500,\"height\":500,\"caption\":\"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd\"},\"image\":{\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/cloudproinc.azurewebsites.net\\\/#\\\/schema\\\/person\\\/192eeeb0ce91062126ce3822ae88fe6e\",\"name\":\"CPI Staff\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g\",\"caption\":\"CPI Staff\"},\"sameAs\":[\"http:\\\/\\\/www.cloudproinc.com.au\"],\"url\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/author\\\/cpiadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Creating an MCP Server in C# to Call OpenAI and List Files - CPI Consulting","description":"Learn the steps for creating an MCP Server in C# to call OpenAI and list files stored in your OpenAI storage.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/","og_locale":"en_US","og_type":"article","og_title":"Creating an MCP Server in C# to Call OpenAI and List Files","og_description":"Learn the steps for creating an MCP Server in C# to call OpenAI and list files stored in your OpenAI storage.","og_url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/","og_site_name":"CPI Consulting","article_published_time":"2025-04-28T05:31:04+00:00","article_modified_time":"2025-04-30T05:30:17+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/cloudproinc.com.au\/wp-content\/uploads\/2025\/04\/openai-mcp-server.png","type":"image\/png"}],"author":"CPI Staff","twitter_card":"summary_large_image","twitter_misc":{"Written by":"CPI Staff","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/#article","isPartOf":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/"},"author":{"name":"CPI Staff","@id":"https:\/\/cloudproinc.azurewebsites.net\/#\/schema\/person\/192eeeb0ce91062126ce3822ae88fe6e"},"headline":"Creating an MCP Server in C# to Call OpenAI and List Files","datePublished":"2025-04-28T05:31:04+00:00","dateModified":"2025-04-30T05:30:17+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/"},"wordCount":620,"commentCount":0,"publisher":{"@id":"https:\/\/cloudproinc.azurewebsites.net\/#organization"},"image":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2025\/04\/openai-mcp-server.png","articleSection":[".NET","OpenAI"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/","url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/","name":"Creating an MCP Server in C# to Call OpenAI and List Files - CPI Consulting","isPartOf":{"@id":"https:\/\/cloudproinc.azurewebsites.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/#primaryimage"},"image":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2025\/04\/openai-mcp-server.png","datePublished":"2025-04-28T05:31:04+00:00","dateModified":"2025-04-30T05:30:17+00:00","description":"Learn the steps for creating an MCP Server in C# to call OpenAI and list files stored in your OpenAI storage.","breadcrumb":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/#primaryimage","url":"\/wp-content\/uploads\/2025\/04\/openai-mcp-server.png","contentUrl":"\/wp-content\/uploads\/2025\/04\/openai-mcp-server.png","width":1536,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cloudproinc.com.au\/"},{"@type":"ListItem","position":2,"name":"Creating an MCP Server in C# to Call OpenAI and List Files"}]},{"@type":"WebSite","@id":"https:\/\/cloudproinc.azurewebsites.net\/#website","url":"https:\/\/cloudproinc.azurewebsites.net\/","name":"Cloud Pro Inc - CPI Consulting Pty Ltd","description":"Cloud, AI &amp; Cybersecurity Consulting | Melbourne","publisher":{"@id":"https:\/\/cloudproinc.azurewebsites.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudproinc.azurewebsites.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudproinc.azurewebsites.net\/#organization","name":"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd","url":"https:\/\/cloudproinc.azurewebsites.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudproinc.azurewebsites.net\/#\/schema\/logo\/image\/","url":"\/wp-content\/uploads\/2022\/01\/favfinalfile.png","contentUrl":"\/wp-content\/uploads\/2022\/01\/favfinalfile.png","width":500,"height":500,"caption":"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd"},"image":{"@id":"https:\/\/cloudproinc.azurewebsites.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudproinc.azurewebsites.net\/#\/schema\/person\/192eeeb0ce91062126ce3822ae88fe6e","name":"CPI Staff","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g","caption":"CPI Staff"},"sameAs":["http:\/\/www.cloudproinc.com.au"],"url":"https:\/\/cloudproinc.com.au\/index.php\/author\/cpiadmin\/"}]}},"jetpack_featured_media_url":"\/wp-content\/uploads\/2025\/04\/openai-mcp-server.png","jetpack-related-posts":[{"id":53667,"url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/","url_meta":{"origin":53308,"position":0},"title":"Build Git MCP Server with the OpenAI Agents SDK","author":"CPI Staff","date":"August 21, 2025","format":false,"excerpt":"This OpenAI post \"Build Git MCP Server with the OpenAI Agents SDK\" shows how to implement an MCP Server into an agent. Table of contentsWhat\u2019s the Git MCP server?Why MCP with the Agents SDK?Packages you needComponents in the codeTypes of MCP servers (transports)How the run worksScoping Git operations to a\u2026","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/ai\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/08\/build-git-mcp-server-with-the-openai-agents-sdk.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/08\/build-git-mcp-server-with-the-openai-agents-sdk.png 1x, \/wp-content\/uploads\/2025\/08\/build-git-mcp-server-with-the-openai-agents-sdk.png 1.5x, \/wp-content\/uploads\/2025\/08\/build-git-mcp-server-with-the-openai-agents-sdk.png 2x, \/wp-content\/uploads\/2025\/08\/build-git-mcp-server-with-the-openai-agents-sdk.png 3x, \/wp-content\/uploads\/2025\/08\/build-git-mcp-server-with-the-openai-agents-sdk.png 4x"},"classes":[]},{"id":57005,"url":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/09\/openai-docs-mcp-server\/","url_meta":{"origin":53308,"position":1},"title":"OpenAI Docs MCP Server","author":"CPI Staff","date":"February 9, 2026","format":false,"excerpt":"Learn how the OpenAI Docs MCP Server brings official documentation into your editor or agent context, so teams ship faster with fewer interruptions and more reliable answers.","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/blog\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2026\/02\/post-17.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2026\/02\/post-17.png 1x, \/wp-content\/uploads\/2026\/02\/post-17.png 1.5x, \/wp-content\/uploads\/2026\/02\/post-17.png 2x, \/wp-content\/uploads\/2026\/02\/post-17.png 3x, \/wp-content\/uploads\/2026\/02\/post-17.png 4x"},"classes":[]},{"id":56817,"url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/11\/26\/accelerate-vs-code-development-with-mcp-servers\/","url_meta":{"origin":53308,"position":2},"title":"Accelerate VS Code Development with MCP Servers","author":"CPI Staff","date":"November 26, 2025","format":false,"excerpt":"Learn how to use Model Context Protocol (MCP) servers inside VS Code to automate tasks, reduce context switching, and speed up development for both engineers and technical leaders.","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/blog\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/11\/accelerate-vs-code-development-with-mcp-servers.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/11\/accelerate-vs-code-development-with-mcp-servers.png 1x, \/wp-content\/uploads\/2025\/11\/accelerate-vs-code-development-with-mcp-servers.png 1.5x, \/wp-content\/uploads\/2025\/11\/accelerate-vs-code-development-with-mcp-servers.png 2x, \/wp-content\/uploads\/2025\/11\/accelerate-vs-code-development-with-mcp-servers.png 3x, \/wp-content\/uploads\/2025\/11\/accelerate-vs-code-development-with-mcp-servers.png 4x"},"classes":[]},{"id":56972,"url":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/github-copilot-sdk-architecture-explained\/","url_meta":{"origin":53308,"position":3},"title":"GitHub Copilot SDK Architecture Explained","author":"CPI Staff","date":"February 5, 2026","format":false,"excerpt":"Understand how GitHub Copilot SDK-style integrations work, from context to tools to policies. Learn a practical architecture that helps teams build reliable Copilot experiences with agents and MCP.","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/blog\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2026\/02\/post-11.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2026\/02\/post-11.png 1x, \/wp-content\/uploads\/2026\/02\/post-11.png 1.5x, \/wp-content\/uploads\/2026\/02\/post-11.png 2x, \/wp-content\/uploads\/2026\/02\/post-11.png 3x, \/wp-content\/uploads\/2026\/02\/post-11.png 4x"},"classes":[]},{"id":53658,"url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/08\/20\/building-guardrails-in-the-openai-agent-sdk\/","url_meta":{"origin":53308,"position":4},"title":"Building Guardrails in the OpenAI Agent SDK","author":"CPI Staff","date":"August 20, 2025","format":false,"excerpt":"This OpenAI Agent post \"Building Guardrails in the OpenAI Agent SDK\" will explain how to implement a gurdrail system that protact the Agent from misuse. Table of contentsWhat Are Guardrails?Example: A Python-Only GuardrailIntegrating Guardrails Into the Main AgentTesting the GuardrailWhy Guardrails MatterGuardrails as Part of a Larger Agent DesignConclusion In\u2026","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/ai\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/08\/Guardrails.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/08\/Guardrails.png 1x, \/wp-content\/uploads\/2025\/08\/Guardrails.png 1.5x, \/wp-content\/uploads\/2025\/08\/Guardrails.png 2x, \/wp-content\/uploads\/2025\/08\/Guardrails.png 3x, \/wp-content\/uploads\/2025\/08\/Guardrails.png 4x"},"classes":[]},{"id":53199,"url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/18\/setting-up-azure-mcp-server-with-vs-code\/","url_meta":{"origin":53308,"position":5},"title":"Setting Up Azure MCP Server with VS Code","author":"CPI Staff","date":"April 18, 2025","format":false,"excerpt":"In this blog post, we'll delve into what MCP Server is, the benefits it offers, and guide you through setting up an Azure MCP Server and integrating it with Visual Studio Code (VS Code). What is Model Context Protocol (MCP) Server? Model Context Protocol (MCP) Server is an open-source protocol\u2026","rel":"","context":"In &quot;Azure&quot;","block_context":{"text":"Azure","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/microsoft-azure\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/04\/Azure-MCP-Server-Setup.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/04\/Azure-MCP-Server-Setup.png 1x, \/wp-content\/uploads\/2025\/04\/Azure-MCP-Server-Setup.png 1.5x, \/wp-content\/uploads\/2025\/04\/Azure-MCP-Server-Setup.png 2x, \/wp-content\/uploads\/2025\/04\/Azure-MCP-Server-Setup.png 3x, \/wp-content\/uploads\/2025\/04\/Azure-MCP-Server-Setup.png 4x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/53308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/comments?post=53308"}],"version-history":[{"count":2,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/53308\/revisions"}],"predecessor-version":[{"id":53326,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/53308\/revisions\/53326"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/media\/53307"}],"wp:attachment":[{"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/media?parent=53308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/categories?post=53308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/tags?post=53308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}