{"id":53667,"date":"2025-08-21T11:45:31","date_gmt":"2025-08-21T01:45:31","guid":{"rendered":"https:\/\/www.cloudproinc.com.au\/?p=53667"},"modified":"2025-08-21T12:05:57","modified_gmt":"2025-08-21T02:05:57","slug":"build-git-mcp-server-with-the-openai-agents-sdk","status":"publish","type":"post","link":"https:\/\/cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/","title":{"rendered":"Build Git MCP Server with the OpenAI Agents SDK"},"content":{"rendered":"\n<p>This OpenAI post &#8220;Build Git MCP Server with the OpenAI Agents SDK&#8221; shows how to implement an MCP Server into an agent.<\/p>\n\n\n\n<!--more-->\n\n\n\n<div class=\"wp-block-yoast-seo-table-of-contents yoast-table-of-contents\"><h2>Table of contents<\/h2><ul><li><a href=\"#h-what-s-the-git-mcp-server\" data-level=\"2\">What\u2019s the Git MCP server?<\/a><\/li><li><a href=\"#h-why-mcp-with-the-agents-sdk\" data-level=\"2\">Why MCP with the Agents SDK?<\/a><\/li><li><a href=\"#h-packages-you-need\" data-level=\"2\">Packages you need<\/a><\/li><li><a href=\"#h-components-in-the-code\" data-level=\"2\">Components in the code<\/a><\/li><li><a href=\"#h-types-of-mcp-servers-transports\" data-level=\"2\">Types of MCP servers (transports)<\/a><\/li><li><a href=\"#h-how-the-run-works\" data-level=\"2\">How the run works<\/a><\/li><li><a href=\"#h-scoping-git-operations-to-a-directory\" data-level=\"2\">Scoping Git operations to a directory<\/a><\/li><li><a href=\"#h-why-this-pattern-scales\" data-level=\"2\">Why this pattern scales<\/a><\/li><li><a href=\"#h-getting-this-running-locally\" data-level=\"2\">Getting this running locally<\/a><\/li><\/ul><\/div>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/cloudproin-e5ddd09d0f1b51fcfd2f-endpoint.azureedge.net\/blobcloudproinf8788b00c9\/wp-content\/uploads\/2025\/08\/build-git-mcp-server-with-the-openai-agents-sdk.mp3\"><\/audio><\/figure>\n\n\n\n<p>If you want your Python agent to answer questions about a Git repository\u2014\u201cWho\u2019s the top contributor?\u201d, \u201cWhat changed last?\u201d\u2014the cleanest way is to plug in a <strong>Model Context Protocol (MCP)<\/strong> server. MCP is an open protocol that standardizes how LLM apps connect to tools and data; the<a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/category\/ai-agents\/\"> OpenAI Agents SDK<\/a> has first-class support for it, so your agents can <strong>discover<\/strong> MCP tools and <strong>call<\/strong> them safely. Think of MCP as the USB-C of AI apps: a single, consistent way to plug in new capabilities. <a href=\"https:\/\/openai.github.io\/openai-agents-python\/mcp\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GitHub<\/a><a href=\"https:\/\/modelcontextprotocol.io\/docs\/learn\/architecture?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">modelcontextprotocol.io<\/a><\/p>\n\n\n\n<p>Below is a complete code sample using the official <strong>Git MCP server<\/strong> (<code>mcp-server-git<\/code>) and the Agents SDK. After the code, we\u2019ll cover the packages, key components, server types, and how we scope the server to a specific repository directory.<\/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-8e9bab67aabecd068e622a206b55eecc\"><code>import asyncio\nimport shutil\nfrom pydantic import BaseModel\nfrom agents import Agent, Runner, function_tool\nfrom datetime import datetime  \nimport os  \nimport secrets  \nimport string  \nfrom agents import Agent, InputGuardrail, GuardrailFunctionOutput, Runner, trace\nfrom agents.exceptions import InputGuardrailTripwireTriggered\nfrom agents.run_context import RunContextWrapper # MCP server context wrapper\nfrom agents.mcp import MCPServer, MCPServerStdio # MCP server \n\n\n# Load .env variables early (uses python-dotenv if installed)\ntry:\n    from dotenv import load_dotenv\n    load_dotenv()  # Loads variables from a .env file into os.environ\nexcept ImportError:\n    # Fallback: simple manual parser (only KEY=VALUE lines) if python-dotenv not installed\n    env_path = \".env\"\n    if os.path.exists(env_path):\n        with open(env_path) as f:\n            for line in f:\n                line = line.strip()\n                if not line or line.startswith(\"#\") or \"=\" not in line:\n                    continue\n                k, v = line.split(\"=\", 1)\n                os.environ.setdefault(k.strip(), v.strip())\n\n\n\nasync def run(mcp_server: MCPServer, directory_path: str):\n    agent = Agent(\n        name=\"Assistant\",\n        instructions=f\"Answer questions about the git repository at {directory_path}, use that for repo_path\",\n        mcp_servers=&#91;mcp_server],\n    )\n\n    message = \"Who's the most frequent contributor?\"\n    print(\"\\n\" + \"-\" * 40)\n    print(f\"Running: {message}\")\n    result = await Runner.run(starting_agent=agent, input=message)\n    print(result.final_output)\n\n    message = \"Summarize the last change in the repository.\"\n    print(\"\\n\" + \"-\" * 40)\n    print(f\"Running: {message}\")\n    result = await Runner.run(starting_agent=agent, input=message)\n    print(result.final_output)\n\n\n\n@function_tool\ndef generate_password(length: int = 16, digits: bool = True, symbols: bool = True) -> str:\n    \"\"\"Generate a cryptographically secure random password.\"\"\"\n    print(\"&#91;debug] generate_password called\")\n    alphabet = string.ascii_letters\n    if digits:\n        alphabet += string.digits\n    if symbols:\n        alphabet += \"!@#$%^&amp;*()-_=+&#91;]{};:,.?\/\"\n\n    if length &lt; 4:\n        raise ValueError(\"Password length must be at least 4.\")\n\n    # Ensure at least one of each selected category (if enabled)\n    password_chars = &#91;]\n    if digits:\n        password_chars.append(secrets.choice(string.digits))\n    if symbols:\n        password_chars.append(secrets.choice(\"!@#$%^&amp;*()-_=+&#91;]{};:,.?\/\"))\n    password_chars.append(secrets.choice(string.ascii_lowercase))\n    password_chars.append(secrets.choice(string.ascii_uppercase))\n\n    while len(password_chars) &lt; length:\n        password_chars.append(secrets.choice(alphabet))\n\n    secrets.SystemRandom().shuffle(password_chars)\n    return \"\".join(password_chars&#91;:length])\n\n\n@function_tool\ndef get_time() -> str:\n    \"\"\"Get the current time in ISO8601 format.\"\"\"\n    print(\"&#91;debug] get_time called\")\n    return datetime.now().isoformat(sep=' ', timespec='seconds')\n\npython_tutor_agent = Agent(\n    name=\"Python Tutor\",\n    handoff_description=\"Specialist agent for Python coding questions\",\n    instructions=\"You provide assistance with Python code queries. Explain code logic and syntax clearly.\",\n)    \n\n\nasync def main():\n    directory_path = \"\/workspaces\/openAIAgent\" \n    async with MCPServerStdio(\n        cache_tools_list=True,\n        params={\"command\": \"uvx\", \"args\": &#91;\"mcp-server-git\"]},\n    ) as server:\n        # Server is started; skip immediate repo questions\n        triage_agent = Agent(\n            name=\"My Agent\",\n            instructions=\"You are a helpful agent. You can generate passwords, provide the current time and answer questions about Python code.\",\n            tools=&#91;generate_password, get_time],\n            handoffs=&#91;python_tutor_agent],\n            mcp_servers=&#91;server],\n        )\n\n        try:\n            with trace(workflow_name=\"MCP Git Example\"):\n                # First (triage) question\n                question = \"generate a password, explain what is a class in python and tell me the current time?\"\n                result = await Runner.run(triage_agent, question)\n                print(result.final_output)\n\n                # Now ask MCP (repository) questions AFTER the first one\n                repo_agent = Agent(\n                    name=\"Repo Assistant\",\n                    instructions=f\"Answer questions about the git repository at {directory_path}, use that for repo_path\",\n                    mcp_servers=&#91;server],\n                )\n\n                repo_q1 = \"Who's the most frequent contributor?\"\n                repo_result1 = await Runner.run(repo_agent, repo_q1)\n                print(\"\\n--- Repo Q1 ---\")\n                print(repo_result1.final_output)\n\n                repo_q2 = \"Summarize the last change in the repository.\"\n                repo_result2 = await Runner.run(repo_agent, repo_q2)\n                print(\"\\n--- Repo Q2 ---\")\n                print(repo_result2.final_output)\n\n                # (Add more sequential questions by repeating Runner.run with repo_agent)\n        except Exception as e:\n            print(f\"Triage agent run failed: {e}\")\n\nif __name__ == \"__main__\":\n    if not shutil.which(\"uv\"):\n       raise RuntimeError(\"uv is not installed. Please install it with `pip install uv`.\")\n    asyncio.run(main())<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-s-the-git-mcp-server\"><strong>What\u2019s the Git MCP server?<\/strong><\/h2>\n\n\n\n<p><code>mcp-server-git<\/code> is a standalone MCP server that exposes Git operations (read\/search\/manipulate) as <strong>MCP tools<\/strong>. Agents don\u2019t shell out to <code>git<\/code> directly; instead, they call these tools through the MCP connection. Because the server is a separate process, it can enforce arguments, validate inputs, and give you clean, structured results. It\u2019s actively evolving, so expect tool names and capabilities to grow over time. <a href=\"https:\/\/github.com\/modelcontextprotocol\/servers\/blob\/main\/README.md?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub<\/a><a href=\"https:\/\/pypi.org\/project\/mcp-server-git\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">PyPI<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-why-mcp-with-the-agents-sdk\"><strong>Why MCP with the Agents SDK?<\/strong><\/h2>\n\n\n\n<p>The Agents SDK discovers MCP servers at runtime, <strong>lists<\/strong> the tools they provide, and then forwards tool calls when the LLM decides to use them\u2014this keeps your agent code small and the tool boundary explicit. You can also enable caching of the tool list to reduce latency on repeated runs. <a href=\"https:\/\/openai.github.io\/openai-agents-python\/mcp\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GitHub<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-packages-you-need\"><strong>Packages you need<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OpenAI Agents SDK<\/strong> (<code>openai-agents<\/code>) provides <code>Agent<\/code>, <code>Runner<\/code>, tool decorators, handoffs, tracing, and the MCP client adapters you\u2019re using (<code>MCPServerStdio<\/code>, etc.). <a href=\"https:\/\/openai.github.io\/openai-agents-python\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GitHub<\/a><\/li>\n\n\n\n<li><strong><code>mcp-server-git<\/code><\/strong> is the Git MCP server you\u2019re launching. You can run it directly or via <code>uvx<\/code> as shown here. <a href=\"https:\/\/pypi.org\/project\/mcp-server-git\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">PyPI<\/a><\/li>\n\n\n\n<li><strong><code>uv<\/code> \/ <code>uvx<\/code><\/strong> lets you run tools in an ephemeral environment without globally installing them\u2014handy for CLIs like MCP servers. (Install <code>uv<\/code>, which provides <code>uvx<\/code>.) <a href=\"https:\/\/docs.astral.sh\/uv\/guides\/tools\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Astral Docs<\/a><a href=\"https:\/\/pypi.org\/project\/uvx\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">PyPI<\/a><\/li>\n\n\n\n<li><strong><code>python-dotenv<\/code> (optional)<\/strong> to load <code>OPENAI_API_KEY<\/code> and other settings from a <code>.env<\/code> file, as the snippet demonstrates.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-components-in-the-code\"><strong>Components in the code<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Two general-purpose tools<\/strong> exposed via <code>@function_tool<\/code>: <code>generate_password<\/code> (crypto-secure) and <code>get_time<\/code>. The decorator makes them discoverable and schema-validated. <a href=\"https:\/\/openai.github.io\/openai-agents-python\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GitHub<\/a><\/li>\n\n\n\n<li><strong>A specialist agent<\/strong> (<code>python_tutor_agent<\/code>) used via <strong>handoff<\/strong>\u2014your \u201ctriage\u201d agent can delegate Python Q&amp;A to it when appropriate. <a href=\"https:\/\/openai.github.io\/openai-agents-python\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GitHub<\/a><\/li>\n\n\n\n<li><strong>Tracing<\/strong>: <code>with trace(workflow_name=\"MCP Git Example\")<\/code> captures a timeline of calls (including MCP tool listing), which is helpful in debugging and evaluation. <a href=\"https:\/\/openai.github.io\/openai-agents-python\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GitHub<\/a><\/li>\n\n\n\n<li><strong>MCP binding<\/strong>: <code>async with MCPServerStdio(...):<\/code> launches <code>mcp-server-git<\/code> as a subprocess over <strong>STDIO<\/strong>, one of MCP\u2019s standard transports. The SDK also supports <strong>SSE<\/strong> and <strong>Streamable HTTP<\/strong> if you host servers remotely. <a href=\"https:\/\/openai.github.io\/openai-agents-python\/mcp\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GitHub<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-types-of-mcp-servers-transports\"><strong>Types of MCP servers (transports)<\/strong><\/h2>\n\n\n\n<p>MCP recognizes three transport styles, and the Agents SDK mirrors them with <code>MCPServerStdio<\/code>, <code>MCPServerSse<\/code>, and <code>MCPServerStreamableHttp<\/code>. In this example we use <strong>STDIO<\/strong> for a simple local subprocess, but the same Agent can switch to remote servers later by changing the transport. <a href=\"https:\/\/openai.github.io\/openai-agents-python\/mcp\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GitHub<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-the-run-works\"><strong>How the run works<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>uvx mcp-server-git<\/code> starts the Git MCP server in a temporary tool environment; the SDK connects over STDIO. <a href=\"https:\/\/docs.astral.sh\/uv\/guides\/tools\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Astral Docs<\/a><\/li>\n\n\n\n<li>The <strong>triage agent<\/strong> answers a multi-part question by calling your local tools and possibly handing off to the Python specialist.<\/li>\n\n\n\n<li>You then create a <strong>repo-focused agent<\/strong> that asks two Git questions. Behind the scenes, the SDK has already called <code>list_tools()<\/code> on the Git server so the LLM knows what it can do; when it chooses to, say, summarize the last change, the SDK forwards a <code>call_tool()<\/code> to the MCP server and returns structured results. <a href=\"https:\/\/openai.github.io\/openai-agents-python\/mcp\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GitHub<\/a><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-scoping-git-operations-to-a-directory\">Scoping Git operations to a directory<\/h2>\n\n\n\n<p>Notice <code>directory_path = \"\/workspaces\/openAIAgent\"<\/code> and the instruction string: <em>\u201cuse that for repo_path.\u201d<\/em> Most Git MCP servers expect a <strong><code>repo_path<\/code><\/strong> argument when you call tools (e.g., log, status, diff). By explicitly telling the agent which path to use, you ensure every tool call is scoped to the intended repository. This is a best practice for both <strong>safety<\/strong> (no accidental operations outside your sandbox) and <strong>clarity<\/strong> (multi-repo environments). Some Git MCP variants even allow multiple repos; in those cases, you can pass different <code>repo_path<\/code> values per call. <a href=\"https:\/\/pypi.org\/project\/mcp-server-git\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">PyPI<\/a><a href=\"https:\/\/mcpservers.org\/servers\/modelcontextprotocol\/git?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Awesome MCP Servers<\/a><\/p>\n\n\n\n<p>If you prefer to avoid relying on instructions, you can also wrap or pre-configure the server to set a default working directory (server-specific) or add light <strong>tool filtering<\/strong> so only read-only tools are exposed to the agent. The Agents SDK supports both <strong>static<\/strong> and <strong>dynamic<\/strong> tool filtering. <a href=\"https:\/\/openai.github.io\/openai-agents-python\/mcp\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GitHub<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-why-this-pattern-scales\">Why this pattern scales<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Separation of concerns.<\/strong> Your agent focuses on reasoning; Git operations live behind an MCP boundary with clear inputs\/outputs. That keeps your codebase clean and auditable. <a href=\"https:\/\/openai.github.io\/openai-agents-python\/mcp\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GitHub<\/a><\/li>\n\n\n\n<li><strong>Portability.<\/strong> You can swap or add servers (Filesystem, Fetch, Databases, etc.) without changing agent logic\u2014just attach another MCP server to the agent. <a href=\"https:\/\/github.com\/modelcontextprotocol\/servers?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub<\/a><\/li>\n\n\n\n<li><strong>Security posture.<\/strong> Because MCP servers are processes with well-defined contracts, you can gate write actions (commit, push) or require explicit flags and prompts before enabling them. Treat <code>repo_path<\/code> as a guardrail: point it at a throwaway checkout or CI workspace for analysis. <a href=\"https:\/\/pypi.org\/project\/mcp-server-git\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">PyPI<\/a><\/li>\n\n\n\n<li><strong>Performance knobs.<\/strong> Set <code>cache_tools_list=True<\/code> to avoid re-listing tools every run, especially for remote servers. Use tracing to spot slow calls and the <strong>STDIO vs SSE vs Streamable HTTP<\/strong> trade-offs if you move off-host. <a href=\"https:\/\/openai.github.io\/openai-agents-python\/mcp\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GitHub<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-getting-this-running-locally\">Getting this running locally<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Install the SDK (<code>pip install openai-agents<\/code>) and <strong>uv<\/strong> (which provides <code>uvx<\/code>). Then the code can launch <code>mcp-server-git<\/code> as shown. <a href=\"https:\/\/openai.github.io\/openai-agents-python\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GitHub<\/a><a href=\"https:\/\/docs.astral.sh\/uv\/guides\/tools\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Astral Docs<\/a><\/li>\n\n\n\n<li>Ensure <code>OPENAI_API_KEY<\/code> is available; the snippet loads <code>.env<\/code> automatically if present.<\/li>\n\n\n\n<li>Point <code>directory_path<\/code> at a real Git repo.<\/li>\n\n\n\n<li>Run the script. You\u2019ll see outputs for the triage question, followed by Git-aware answers powered by the MCP server.<\/li>\n<\/ol>\n\n\n\n<p>That\u2019s it: your agent now speaks Git through MCP\u2014modular, auditable, and ready to grow as you add more servers or move them off-machine.<\/p>\n\n\n\n<ul class=\"wp-block-yoast-seo-related-links yoast-seo-related-links\">\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/04\/18\/setting-up-azure-mcp-server-with-vs-code\/\">Setting Up Azure MCP Server with VS Code<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/\">Creating an MCP Server in C# to Call OpenAI and List Files<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/20\/building-guardrails-in-the-openai-agent-sdk\/\">Building Guardrails in the OpenAI Agent SDK<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2024\/09\/10\/simplifying-azure-management-with-github-copilot-for-azure\/\">Simplifying Azure Management with GitHub Copilot for Azure<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/07\/08\/develop-and-deploy-teams-apps-with-m365-agents-toolkit\/\">Develop and Deploy Teams Apps With M365 Agents Toolkit<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This OpenAI post &#8220;Build Git MCP Server with the OpenAI Agents SDK&#8221; shows how to implement an MCP Server into an agent.<\/p>\n","protected":false},"author":1,"featured_media":53669,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"Build Git MCP Server with the OpenAI Agents SDK","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"Discover the steps to build Git MCP Server with the OpenAI Agents SDK and improve your agent's ability to answer Git queries.","_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":[24,80,13,53,79],"tags":[],"class_list":["post-53667","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-ai-agents","category-blog","category-openai","category-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Build Git MCP Server with the OpenAI Agents SDK - CPI Consulting<\/title>\n<meta name=\"description\" content=\"Discover the steps to build Git MCP Server with the OpenAI Agents SDK and improve your agent&#039;s ability to answer Git queries.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build Git MCP Server with the OpenAI Agents SDK\" \/>\n<meta property=\"og:description\" content=\"Discover the steps to build Git MCP Server with the OpenAI Agents SDK and improve your agent&#039;s ability to answer Git queries.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/\" \/>\n<meta property=\"og:site_name\" content=\"CPI Consulting\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-21T01:45:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-21T02:05:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cloudproinc.com.au\/wp-content\/uploads\/2025\/08\/build-git-mcp-server-with-the-openai-agents-sdk.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=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.cloudproinc.com.au\\\/index.php\\\/2025\\\/08\\\/21\\\/build-git-mcp-server-with-the-openai-agents-sdk\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cloudproinc.com.au\\\/index.php\\\/2025\\\/08\\\/21\\\/build-git-mcp-server-with-the-openai-agents-sdk\\\/\"},\"author\":{\"name\":\"CPI Staff\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#\\\/schema\\\/person\\\/192eeeb0ce91062126ce3822ae88fe6e\"},\"headline\":\"Build Git MCP Server with the OpenAI Agents SDK\",\"datePublished\":\"2025-08-21T01:45:31+00:00\",\"dateModified\":\"2025-08-21T02:05:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.cloudproinc.com.au\\\/index.php\\\/2025\\\/08\\\/21\\\/build-git-mcp-server-with-the-openai-agents-sdk\\\/\"},\"wordCount\":1043,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cloudproinc.com.au\\\/index.php\\\/2025\\\/08\\\/21\\\/build-git-mcp-server-with-the-openai-agents-sdk\\\/#primaryimage\"},\"thumbnailUrl\":\"\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/build-git-mcp-server-with-the-openai-agents-sdk.png\",\"articleSection\":[\"AI\",\"AI Agents\",\"Blog\",\"OpenAI\",\"Python\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.cloudproinc.com.au\\\/index.php\\\/2025\\\/08\\\/21\\\/build-git-mcp-server-with-the-openai-agents-sdk\\\/#respond\"]}],\"accessibilityFeature\":[\"tableOfContents\"]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.cloudproinc.com.au\\\/index.php\\\/2025\\\/08\\\/21\\\/build-git-mcp-server-with-the-openai-agents-sdk\\\/\",\"url\":\"https:\\\/\\\/www.cloudproinc.com.au\\\/index.php\\\/2025\\\/08\\\/21\\\/build-git-mcp-server-with-the-openai-agents-sdk\\\/\",\"name\":\"Build Git MCP Server with the OpenAI Agents SDK - CPI Consulting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.cloudproinc.com.au\\\/index.php\\\/2025\\\/08\\\/21\\\/build-git-mcp-server-with-the-openai-agents-sdk\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cloudproinc.com.au\\\/index.php\\\/2025\\\/08\\\/21\\\/build-git-mcp-server-with-the-openai-agents-sdk\\\/#primaryimage\"},\"thumbnailUrl\":\"\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/build-git-mcp-server-with-the-openai-agents-sdk.png\",\"datePublished\":\"2025-08-21T01:45:31+00:00\",\"dateModified\":\"2025-08-21T02:05:57+00:00\",\"description\":\"Discover the steps to build Git MCP Server with the OpenAI Agents SDK and improve your agent's ability to answer Git queries.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.cloudproinc.com.au\\\/index.php\\\/2025\\\/08\\\/21\\\/build-git-mcp-server-with-the-openai-agents-sdk\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.cloudproinc.com.au\\\/index.php\\\/2025\\\/08\\\/21\\\/build-git-mcp-server-with-the-openai-agents-sdk\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.cloudproinc.com.au\\\/index.php\\\/2025\\\/08\\\/21\\\/build-git-mcp-server-with-the-openai-agents-sdk\\\/#primaryimage\",\"url\":\"\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/build-git-mcp-server-with-the-openai-agents-sdk.png\",\"contentUrl\":\"\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/build-git-mcp-server-with-the-openai-agents-sdk.png\",\"width\":1536,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.cloudproinc.com.au\\\/index.php\\\/2025\\\/08\\\/21\\\/build-git-mcp-server-with-the-openai-agents-sdk\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cloudproinc.com.au\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build Git MCP Server with the OpenAI Agents SDK\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#website\",\"url\":\"https:\\\/\\\/cloudproinc.com.au\\\/\",\"name\":\"Cloud Pro Inc - CPI Consulting Pty Ltd\",\"description\":\"Cloud, AI &amp; Cybersecurity Consulting | Melbourne\",\"publisher\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cloudproinc.com.au\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#organization\",\"name\":\"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd\",\"url\":\"https:\\\/\\\/cloudproinc.com.au\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#\\\/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.com.au\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#\\\/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":"Build Git MCP Server with the OpenAI Agents SDK - CPI Consulting","description":"Discover the steps to build Git MCP Server with the OpenAI Agents SDK and improve your agent's ability to answer Git queries.","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:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/","og_locale":"en_US","og_type":"article","og_title":"Build Git MCP Server with the OpenAI Agents SDK","og_description":"Discover the steps to build Git MCP Server with the OpenAI Agents SDK and improve your agent's ability to answer Git queries.","og_url":"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/","og_site_name":"CPI Consulting","article_published_time":"2025-08-21T01:45:31+00:00","article_modified_time":"2025-08-21T02:05:57+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/cloudproinc.com.au\/wp-content\/uploads\/2025\/08\/build-git-mcp-server-with-the-openai-agents-sdk.png","type":"image\/png"}],"author":"CPI Staff","twitter_card":"summary_large_image","twitter_misc":{"Written by":"CPI Staff","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/#article","isPartOf":{"@id":"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/"},"author":{"name":"CPI Staff","@id":"https:\/\/cloudproinc.com.au\/#\/schema\/person\/192eeeb0ce91062126ce3822ae88fe6e"},"headline":"Build Git MCP Server with the OpenAI Agents SDK","datePublished":"2025-08-21T01:45:31+00:00","dateModified":"2025-08-21T02:05:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/"},"wordCount":1043,"commentCount":0,"publisher":{"@id":"https:\/\/cloudproinc.com.au\/#organization"},"image":{"@id":"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2025\/08\/build-git-mcp-server-with-the-openai-agents-sdk.png","articleSection":["AI","AI Agents","Blog","OpenAI","Python"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/#respond"]}],"accessibilityFeature":["tableOfContents"]},{"@type":"WebPage","@id":"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/","url":"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/","name":"Build Git MCP Server with the OpenAI Agents SDK - CPI Consulting","isPartOf":{"@id":"https:\/\/cloudproinc.com.au\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/#primaryimage"},"image":{"@id":"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2025\/08\/build-git-mcp-server-with-the-openai-agents-sdk.png","datePublished":"2025-08-21T01:45:31+00:00","dateModified":"2025-08-21T02:05:57+00:00","description":"Discover the steps to build Git MCP Server with the OpenAI Agents SDK and improve your agent's ability to answer Git queries.","breadcrumb":{"@id":"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/#primaryimage","url":"\/wp-content\/uploads\/2025\/08\/build-git-mcp-server-with-the-openai-agents-sdk.png","contentUrl":"\/wp-content\/uploads\/2025\/08\/build-git-mcp-server-with-the-openai-agents-sdk.png","width":1536,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/08\/21\/build-git-mcp-server-with-the-openai-agents-sdk\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudproinc.com.au\/"},{"@type":"ListItem","position":2,"name":"Build Git MCP Server with the OpenAI Agents SDK"}]},{"@type":"WebSite","@id":"https:\/\/cloudproinc.com.au\/#website","url":"https:\/\/cloudproinc.com.au\/","name":"Cloud Pro Inc - CPI Consulting Pty Ltd","description":"Cloud, AI &amp; Cybersecurity Consulting | Melbourne","publisher":{"@id":"https:\/\/cloudproinc.com.au\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudproinc.com.au\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudproinc.com.au\/#organization","name":"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd","url":"https:\/\/cloudproinc.com.au\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudproinc.com.au\/#\/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.com.au\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudproinc.com.au\/#\/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\/08\/build-git-mcp-server-with-the-openai-agents-sdk.png","jetpack-related-posts":[{"id":57005,"url":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/09\/openai-docs-mcp-server\/","url_meta":{"origin":53667,"position":0},"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":53308,"url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/04\/28\/creating-an-mcp-server-in-c-to-call-openai-and-list-files\/","url_meta":{"origin":53667,"position":1},"title":"Creating an MCP Server in C# to Call OpenAI and List Files","author":"CPI Staff","date":"April 28, 2025","format":false,"excerpt":"When working with OpenAI's APIs, it'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\u2026","rel":"","context":"In &quot;.NET&quot;","block_context":{"text":".NET","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/net\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/04\/openai-mcp-server.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/04\/openai-mcp-server.png 1x, \/wp-content\/uploads\/2025\/04\/openai-mcp-server.png 1.5x, \/wp-content\/uploads\/2025\/04\/openai-mcp-server.png 2x, \/wp-content\/uploads\/2025\/04\/openai-mcp-server.png 3x, \/wp-content\/uploads\/2025\/04\/openai-mcp-server.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":53667,"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":53667,"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":53667,"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":53667,"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\/53667","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=53667"}],"version-history":[{"count":3,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/53667\/revisions"}],"predecessor-version":[{"id":53673,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/53667\/revisions\/53673"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/media\/53669"}],"wp:attachment":[{"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/media?parent=53667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/categories?post=53667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/tags?post=53667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}