René's URL Explorer Experiment


Title: Build a Python MCP Client to Test Servers From Your Terminal – Real Python

Open Graph Title: Build a Python MCP Client to Test Servers From Your Terminal – Real Python

Description: Follow this Python project to build an MCP client that discovers MCP server capabilities and feeds an AI-powered chat with tool calls.

Open Graph Description: Follow this Python project to build an MCP client that discovers MCP server capabilities and feeds an AI-powered chat with tool calls.

Mail addresses
?subject=Python article for you&body=Build a Python MCP Client to Test Servers From Your Terminal on Real Python https://realpython.com/python-mcp-client/

Opengraph URL: https://realpython.com/python-mcp-client/

X: @realpython

direct link

Domain: realpython.com


Hey, it has json ld scripts:
{
  "@context": "http://schema.org",
  "@type": "Article",
  "headline": "Build a Python MCP Client to Test Servers From Your Terminal",
  "image": {
    "@type": "ImageObject",
    "url": "https://files.realpython.com/media/How-to-Build-a-Minimal-MCP-Client-in-Python-to-Test-Your-MCP-Servers_Watermarked.0507b57d9828.jpg",
    "width": 1920,
    "height": 1080
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://realpython.com/python-mcp-client/",
    "lastReviewed": "2026-11-05",
    "author": {
      "@type": "Person",
      "name": "Leodanis Pozo Ramos",
      "image": "https://realpython.com/cdn-cgi/image/width=862,height=862,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/Perfil_final1.9f896bc212f6.jpg",
      "url": "https://realpython.com/team/lpozoramos/",
      "affiliation": {
        "@type": "Organization",
        "@id": "https://realpython.com/#organization",
        "name": "Real Python",
        "url": "https://realpython.com",
        "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
      }
    },
    "reviewedBy": [
      {
        "@type": "Person",
        "name": "Aldren Santos",
        "image": "https://realpython.com/cdn-cgi/image/width=500,height=500,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/Aldren_Santos_Real_Python.6b0861d8b841.png",
        "url": "https://realpython.com/team/asantos/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Brenda Weleschuk",
        "image": "https://realpython.com/cdn-cgi/image/width=320,height=320,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/IMG_3324_1.50b309355fc1.jpg",
        "url": "https://realpython.com/team/bweleschuk/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Bartosz Zaczy\u0144ski",
        "image": "https://realpython.com/cdn-cgi/image/width=1694,height=1694,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/coders_lab_2109368.259b1599fbee.jpg",
        "url": "https://realpython.com/team/bzaczynski/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Martin Breuss",
        "image": "https://realpython.com/cdn-cgi/image/width=456,height=456,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/martin_breuss_python_square.efb2b07faf9f.jpg",
        "url": "https://realpython.com/team/mbreuss/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      }
    ]
  },
  "datePublished": "2026-10-28T14:00:00+00:00",
  "dateModified": "2026-11-05T06:02:02.425627+00:00",
  "publisher": {
    "@type": "Organization",
    "@id": "https://realpython.com/#organization",
    "name": "Real Python",
    "url": "https://realpython.com",
    "logo": {
      "@type": "ImageObject",
      "url": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png",
      "width": 512,
      "height": 512
    },
    "description": "Real Python is a leading provider of online Python education and one of the largest language-specific online communities for software developers. It publishes high-quality learning resources, such as tutorials, books, and courses to an audience of millions of developers, data scientists, and machine learning engineers each month.",
    "slogan": "Become a Python Expert",
    "email": "info@realpython.com",
    "sameAs": [
      "https://github.com/realpython",
      "https://www.youtube.com/realpython",
      "https://twitter.com/realpython",
      "https://x.com/realpython",
      "https://www.linkedin.com/company/realpython-com/",
      "https://www.facebook.com/learnrealpython",
      "https://www.instagram.com/realpython",
      "https://www.tiktok.com/@realpython.com"
    ]
  },
  "author": {
    "@type": "Person",
    "name": "Leodanis Pozo Ramos",
    "image": "https://realpython.com/cdn-cgi/image/width=862,height=862,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/Perfil_final1.9f896bc212f6.jpg",
    "url": "https://realpython.com/team/lpozoramos/",
    "affiliation": {
      "@type": "Organization",
      "@id": "https://realpython.com/#organization",
      "name": "Real Python",
      "url": "https://realpython.com",
      "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
    }
  },
  "description": "Follow this Python project to build an MCP client that discovers MCP server capabilities and feeds an AI-powered chat with tool calls.",
  "hasPart": {
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "How do you connect a Python MCP client to a server over stdio?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "\u003cp\u003eYou create a client by calling \u003ccode\u003estdio_client()\u003c/code\u003e with \u003ccode\u003eStdioServerParameters\u003c/code\u003e and wrapping the input and output streams in a \u003ccode\u003eClientSession\u003c/code\u003e instance.\u003c/p\u003e"
        }
      },
      {
        "@type": "Question",
        "name": "How do you list an MCP server\u2019s tools, prompts, and resources?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "\u003cp\u003eYou call \u003ccode\u003e.list_tools()\u003c/code\u003e, \u003ccode\u003e.list_prompts()\u003c/code\u003e, and \u003ccode\u003e.list_resources()\u003c/code\u003e on a \u003ccode\u003eClientSession\u003c/code\u003e instance. You can read each item\u0026rsquo;s \u003ccode\u003e.name\u003c/code\u003e and \u003ccode\u003e.description\u003c/code\u003e attributes to get a more detailed summary.\u003c/p\u003e"
        }
      },
      {
        "@type": "Question",
        "name": "Why does the client use an async context manager with AsyncExitStack?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "\u003cp\u003eThe client uses an async context manager to safely manage the stdio transport and session lifetime by entering and exiting in one place. \u003ccode\u003eAsyncExitStack\u003c/code\u003e lets you acquire the read and write streams, attach \u003ccode\u003eClientSession()\u003c/code\u003e, and guarantee cleanup even if a step fails.\u003c/p\u003e"
        }
      }
    ]
  }
}

authorReal Python
theme-color#18354c
color-schemelight dark
twitter:cardsummary_large_image
twitter:imagehttps://files.realpython.com/media/How-to-Build-a-Minimal-MCP-Client-in-Python-to-Test-Your-MCP-Servers_Watermarked.0507b57d9828.jpg
og:imagehttps://files.realpython.com/media/How-to-Build-a-Minimal-MCP-Client-in-Python-to-Test-Your-MCP-Servers_Watermarked.0507b57d9828.jpg
twitter:creator@realpython
og:typearticle
og:site_nameReal Python
apple-mobile-web-app-titleReal Python

Links:

https://realpython.com/
Start Herehttps://realpython.com/start-here/
Learn Python https://realpython.com/python-mcp-client/
Your Learning Plan →Your personalized Python learning planhttps://realpython.com/account/learning-plan/
Python Tutorials →In-depth articles and video courseshttps://realpython.com/search?kind=article&kind=course&order=newest&_from=nav_library
Learning Paths →Guided study plans for accelerated learninghttps://realpython.com/learning-paths/
Quizzes & Exercises →Check your learning progresshttps://realpython.com/search?kind=exercise&kind=quiz&_from=nav_library
Browse Topics →Focus on a specific area or skill levelhttps://realpython.com/tutorials/all/
Reference →Concise definitions for common Python termshttps://realpython.com/ref/
Mentor AI →NewYour personal Python mentorhttps://realpython.com/mentor/
Office Hours →Live Q&A calls with Python expertshttps://realpython.com/office-hours/
Community Chat →Learn with other Pythonistashttps://realpython.com/community/
Live Courses →Live, instructor-led Python courseshttps://realpython.com/live/
Books →Round out your knowledge and learn offlinehttps://realpython.com/products/books/
Podcast →Hear what’s new in the world of Pythonhttps://realpython.com/podcasts/rpp/
Unlock All Content and Become a Python Expert →Get unlimited access to all Real Python has to offerhttps://realpython.com/account/join/?from=navbar_learn
Unlock All Content →Become a Python Experthttps://realpython.com/account/join/?from=navbar_learn
More https://realpython.com/python-mcp-client/
Learner Storieshttps://realpython.com/learner-stories/
Python Newsletterhttps://realpython.com/newsletter/
Python Job Boardhttps://www.pythonjobshq.com
Meet the Teamhttps://realpython.com/team/
Become a Contributorhttps://realpython.com/jobs/
Searchhttps://realpython.com/search
https://realpython.com/search
Joinhttps://realpython.com/account/join/
Sign‑Inhttps://realpython.com/account/login/?intent=navbar&next=%2Fpython-mcp-client%2F
Browse Topicshttps://realpython.com/tutorials/all/
Guided Learning Pathshttps://realpython.com/learning-paths/
Basicshttps://realpython.com/search?level=basics&_from=sidebar_level
Intermediatehttps://realpython.com/search?level=intermediate&_from=sidebar_level
Advancedhttps://realpython.com/search?level=advanced&_from=sidebar_level
aihttps://realpython.com/tutorials/ai/
algorithmshttps://realpython.com/tutorials/algorithms/
apihttps://realpython.com/tutorials/api/
best-practiceshttps://realpython.com/tutorials/best-practices/
careerhttps://realpython.com/tutorials/career/
communityhttps://realpython.com/tutorials/community/
databaseshttps://realpython.com/tutorials/databases/
data-sciencehttps://realpython.com/tutorials/data-science/
data-structureshttps://realpython.com/tutorials/data-structures/
data-vizhttps://realpython.com/tutorials/data-viz/
devopshttps://realpython.com/tutorials/devops/
djangohttps://realpython.com/tutorials/django/
dockerhttps://realpython.com/tutorials/docker/
editorshttps://realpython.com/tutorials/editors/
flaskhttps://realpython.com/tutorials/flask/
front-endhttps://realpython.com/tutorials/front-end/
gamedevhttps://realpython.com/tutorials/gamedev/
guihttps://realpython.com/tutorials/gui/
machine-learninghttps://realpython.com/tutorials/machine-learning/
newshttps://realpython.com/tutorials/news/
numpyhttps://realpython.com/tutorials/numpy/
projectshttps://realpython.com/tutorials/projects/
pythonhttps://realpython.com/tutorials/python/
stdlibhttps://realpython.com/tutorials/stdlib/
testinghttps://realpython.com/tutorials/testing/
toolshttps://realpython.com/tutorials/tools/
web-devhttps://realpython.com/tutorials/web-dev/
web-scrapinghttps://realpython.com/tutorials/web-scraping/
Table of Contentshttps://realpython.com/python-mcp-client/#toc
Prerequisiteshttps://realpython.com/python-mcp-client/#prerequisites
Step 1: Set Up the Project and the Environmenthttps://realpython.com/python-mcp-client/#step-1-set-up-the-project-and-the-environment
Step 2: Write a Minimal MCP Client With the Python SDKhttps://realpython.com/python-mcp-client/#step-2-write-a-minimal-mcp-client-with-the-python-sdk
Step 3: Discover Server Tools, Prompts, and Resourceshttps://realpython.com/python-mcp-client/#step-3-discover-server-tools-prompts-and-resources
Build the MCP Client’s CLI With argparsehttps://realpython.com/python-mcp-client/#build-the-mcp-clients-cli-with-argparse
Add the --members Command-Line Optionhttps://realpython.com/python-mcp-client/#add-the-members-command-line-option
Update the Client’s Entry-Point Scripthttps://realpython.com/python-mcp-client/#update-the-clients-entry-point-script
Step 4: Add an AI-Powered Chathttps://realpython.com/python-mcp-client/#step-4-add-an-ai-powered-chat
Add the --chat Command-Line Optionhttps://realpython.com/python-mcp-client/#add-the-chat-command-line-option
Create a Chat Handler With OpenAI’s Python SDKhttps://realpython.com/python-mcp-client/#create-a-chat-handler-with-openais-python-sdk
Connect the Chat With the MCP Clienthttps://realpython.com/python-mcp-client/#connect-the-chat-with-the-mcp-client
Update the Client’s Entry-Point Scripthttps://realpython.com/python-mcp-client/#update-the-clients-entry-point-script_1
Make the MCP Client App Installablehttps://realpython.com/python-mcp-client/#make-the-mcp-client-app-installable
Conclusionhttps://realpython.com/python-mcp-client/#conclusion
Next Stepshttps://realpython.com/python-mcp-client/#next-steps
Frequently Asked Questionshttps://realpython.com/python-mcp-client/#frequently-asked-questions
https://realpython.com/feedback/survey/article/python-mcp-client/liked/?from=article-sidebar
https://realpython.com/feedback/survey/article/python-mcp-client/disliked/?from=article-sidebar
Testing MCP Servers With a Python MCP Client 1h 16m · 17 lessons https://realpython.com/courses/testing-mcp-servers-with-a-python-mcp-client/
Leodanis Pozo Ramoshttps://realpython.com/python-mcp-client/#author
https://realpython.com/python-mcp-client/#reader-comments
intermediatehttps://realpython.com/tutorials/intermediate/
aihttps://realpython.com/tutorials/ai/
projectshttps://realpython.com/tutorials/projects/
Prerequisiteshttps://realpython.com/python-mcp-client/#prerequisites
Step 1: Set Up the Project and the Environmenthttps://realpython.com/python-mcp-client/#step-1-set-up-the-project-and-the-environment
Step 2: Write a Minimal MCP Client With the Python SDKhttps://realpython.com/python-mcp-client/#step-2-write-a-minimal-mcp-client-with-the-python-sdk
Step 3: Discover Server Tools, Prompts, and Resourceshttps://realpython.com/python-mcp-client/#step-3-discover-server-tools-prompts-and-resources
Build the MCP Client’s CLI With argparsehttps://realpython.com/python-mcp-client/#build-the-mcp-clients-cli-with-argparse
Add the --members Command-Line Optionhttps://realpython.com/python-mcp-client/#add-the-members-command-line-option
Update the Client’s Entry-Point Scripthttps://realpython.com/python-mcp-client/#update-the-clients-entry-point-script
Step 4: Add an AI-Powered Chathttps://realpython.com/python-mcp-client/#step-4-add-an-ai-powered-chat
Add the --chat Command-Line Optionhttps://realpython.com/python-mcp-client/#add-the-chat-command-line-option
Create a Chat Handler With OpenAI’s Python SDKhttps://realpython.com/python-mcp-client/#create-a-chat-handler-with-openais-python-sdk
Connect the Chat With the MCP Clienthttps://realpython.com/python-mcp-client/#connect-the-chat-with-the-mcp-client
Update the Client’s Entry-Point Scripthttps://realpython.com/python-mcp-client/#update-the-clients-entry-point-script_1
Make the MCP Client App Installablehttps://realpython.com/python-mcp-client/#make-the-mcp-client-app-installable
Conclusionhttps://realpython.com/python-mcp-client/#conclusion
Next Stepshttps://realpython.com/python-mcp-client/#next-steps
Frequently Asked Questionshttps://realpython.com/python-mcp-client/#frequently-asked-questions
Remove adshttps://realpython.com/account/join/
Testing MCP Servers With a Python MCP Clienthttps://realpython.com/courses/testing-mcp-servers-with-a-python-mcp-client/
https://realpython.com/python-mcp-client/#prerequisites
asynciohttps://realpython.com/ref/stdlib/asyncio/
argparsehttps://realpython.com/ref/stdlib/argparse/
standard libraryhttps://realpython.com/ref/glossary/standard-library/
Managing Python Projects With uv: An All-in-One Solutionhttps://realpython.com/python-uv/
Python’s asyncio: A Hands-On Walkthroughhttps://realpython.com/async-io-python/
Build Command-Line Interfaces With Python’s argparsehttps://realpython.com/command-line-interfaces-python-argparse/
openaihttps://github.com/openai/openai-python
Model Context Protocol (MCP)https://realpython.com/ref/ai-coding-glossary/mcp/
SDKhttps://github.com/modelcontextprotocol/python-sdk
step 2https://realpython.com/python-mcp-client/#step-2-write-a-minimal-mcp-client-with-the-python-sdk
Python MCP Server: Connect LLMs to Your Datahttps://realpython.com/python-mcp/
Click here to download the free sample codehttps://realpython.com/bonus/python-mcp-client-code/
https://realpython.com/quizzes/python-mcp-client/
Build a Python MCP Client to Test Servers From Your Terminalhttps://realpython.com/quizzes/python-mcp-client/
Build an AI Agent From Scratch in Pythonhttps://realpython.com/workshops/agentic-loops/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-mcp-client/#step-1-set-up-the-project-and-the-environment
Managing Python Projects With uv: An All-in-One Solutionhttps://realpython.com/python-uv/
pyenvhttps://realpython.com/intro-to-pyenv/
venvhttps://realpython.com/ref/stdlib/venv/
piphttps://realpython.com/what-is-pip/
poetryhttps://realpython.com/dependency-management-python-poetry/
virtual environmenthttps://realpython.com/python-virtual-environments-a-primer/
README.mdhttps://realpython.com/readme-python-project/
pyproject.tomlhttps://realpython.com/python-pyproject-toml/
Python Package Index (PyPI)https://realpython.com/ref/glossary/pypi/
code editor or IDEhttps://realpython.com/python-ides-code-editors-guide/
https://realpython.com/python-mcp-client/#step-2-write-a-minimal-mcp-client-with-the-python-sdk
__init__.pyhttps://realpython.com/python-init-py/
importinghttps://realpython.com/python-import/
moduleshttps://realpython.com/ref/glossary/module/
objectshttps://realpython.com/ref/glossary/object/
classhttps://realpython.com/python-classes/
class attributehttps://realpython.com/python-classes/#class-attributes
transport mechanismshttps://modelcontextprotocol.io/docs/learn/architecture#transport-layer
Stdio transporthttps://modelcontextprotocol.io/specification/2026-07-28/basic/transports/stdio
Streamable HTTP transporthttps://modelcontextprotocol.io/specification/2026-07-28/basic/transports/streamable-http
.__init__() methodhttps://realpython.com/python-class-constructor/#object-initialization-with-__init__
contextlibhttps://realpython.com/ref/stdlib/contextlib/
asynchronous context managershttps://realpython.com/ref/glossary/asynchronous-context-manager/
async with statementhttps://realpython.com/python-with-statement/#using-the-async-with-statement
self (argument)https://realpython.com/ref/glossary/self/
cls (argument)https://realpython.com/ref/glossary/cls/
input/output (I/O)https://realpython.com/ref/glossary/input-output/
sys.executablehttps://docs.python.org/3/library/sys.html#sys.executable
os.devnullhttps://docs.python.org/3/library/os.html#os.devnull
RuntimeErrorhttps://realpython.com/ref/builtin-exceptions/runtimeerror/
Exceptionhttps://realpython.com/ref/builtin-exceptions/exception/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-mcp-client/#step-3-discover-server-tools-prompts-and-resources
argparsehttps://realpython.com/ref/stdlib/argparse/
https://realpython.com/python-mcp-client/#build-the-mcp-clients-cli-with-argparse
pathlib.Pathhttps://realpython.com/python-pathlib/
mutually exclusive command-line optionshttps://realpython.com/command-line-interfaces-python-argparse/#defining-mutually-exclusive-argument-and-option-groups
Booleanhttps://realpython.com/ref/glossary/boolean/
https://realpython.com/python-mcp-client/#add-the-members-command-line-option
loophttps://realpython.com/ref/glossary/loop/
non-public methodhttps://realpython.com/python-double-underscore/#non-public-methods
getattr()https://realpython.com/ref/builtin-functions/getattr/
https://realpython.com/python-mcp-client/#update-the-clients-entry-point-script
conditionalhttps://realpython.com/python-conditional-statements/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-mcp-client/#step-4-add-an-ai-powered-chat
https://realpython.com/python-mcp-client/#add-the-chat-command-line-option
while loophttps://realpython.com/python-while-loop/
input()https://realpython.com/python-keyboard-input/
variablehttps://realpython.com/python-variables/
https://realpython.com/python-mcp-client/#create-a-chat-handler-with-openais-python-sdk
constantshttps://realpython.com/python-constants/
JSONhttps://realpython.com/python-json/
dictionaryhttps://realpython.com/ref/glossary/dictionary/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-mcp-client/#connect-the-chat-with-the-mcp-client
https://realpython.com/python-mcp-client/#update-the-clients-entry-point-script_1
elifhttps://realpython.com/ref/keywords/elif/
https://realpython.com/python-mcp-client/#make-the-mcp-client-app-installable
tablehttps://realpython.com/python-toml/#tables
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-mcp-client/#conclusion
https://realpython.com/python-mcp-client/#next-steps
client exampleshttps://modelcontextprotocol.io/docs/develop/build-client
Click here to download the free sample codehttps://realpython.com/bonus/python-mcp-client-code/
https://realpython.com/python-mcp-client/#frequently-asked-questions
https://realpython.com/quizzes/python-mcp-client/
Build a Python MCP Client to Test Servers From Your Terminalhttps://realpython.com/quizzes/python-mcp-client/
https://realpython.com/feedback/survey/article/python-mcp-client/liked/?from=article-footer
https://realpython.com/feedback/survey/article/python-mcp-client/disliked/?from=article-footer
Testing MCP Servers With a Python MCP Clienthttps://realpython.com/courses/testing-mcp-servers-with-a-python-mcp-client/
https://realpython.com/team/lpozoramos/
» More about Leodanishttps://realpython.com/team/lpozoramos/
https://realpython.com/team/asantos/
Aldrenhttps://realpython.com/team/asantos/
https://realpython.com/team/bweleschuk/
Brendahttps://realpython.com/team/bweleschuk/
https://realpython.com/team/bzaczynski/
Bartoszhttps://realpython.com/team/bzaczynski/
https://realpython.com/team/mbreuss/
Martinhttps://realpython.com/team/mbreuss/
Level Up Your Python Skills »https://realpython.com/account/join/?utm_source=rp_article_footer&utm_content=python-mcp-client
Level Up Your Python Skills »https://realpython.com/account/join/?utm_source=rp_article_footer&utm_content=python-mcp-client
https://realpython.com/feedback/survey/article/python-mcp-client/liked/?from=article-comments
https://realpython.com/feedback/survey/article/python-mcp-client/disliked/?from=article-comments
LinkedInhttps://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Frealpython.com%2Fpython-mcp-client%2F
Twitterhttps://twitter.com/intent/tweet/?text=Interesting%20Python%20article%20on%20%40realpython%3A%20Build%20a%20Python%20MCP%20Client%20to%20Test%20Servers%20From%20Your%20Terminal&url=https%3A%2F%2Frealpython.com%2Fpython-mcp-client%2F
Blueskyhttps://bsky.app/intent/compose?text=Interesting%20Python%20article%20on%20%40realpython.com%3A%20Build%20a%20Python%20MCP%20Client%20to%20Test%20Servers%20From%20Your%20Terminal%20https%3A%2F%2Frealpython.com%2Fpython-mcp-client%2F
Facebookhttps://facebook.com/sharer/sharer.php?u=https%3A%2F%2Frealpython.com%2Fpython-mcp-client%2F
Get tips for asking good questionshttps://realpython.com/python-beginner-tips/#tip-9-ask-good-questions
get answers to common questions in our support portalhttps://support.realpython.com
Real Python Community Chathttps://realpython.com/community/
“Office Hours” Live Q&A Sessionhttps://realpython.com/office-hours/
intermediatehttps://realpython.com/tutorials/intermediate/
aihttps://realpython.com/tutorials/ai/
projectshttps://realpython.com/tutorials/projects/
LLM Application Development With Pythonhttps://realpython.com/learning-paths/llm-application-development-python/?utm_source=realpython&utm_medium=web&utm_campaign=related-learning-path&utm_content=python-mcp-client
Testing MCP Servers With a Python MCP Clienthttps://realpython.com/courses/testing-mcp-servers-with-a-python-mcp-client/?utm_source=realpython&utm_medium=web&utm_campaign=related-course&utm_content=python-mcp-client
Python MCP Server: Connect LLMs to Your Datahttps://realpython.com/python-mcp/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-mcp-client
GPT-6.1 Terra Draws a Python Reading a Bookhttps://realpython.com/ai-benchmark-gpt-6-1-terra/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-mcp-client
OpenAI Halves the Price of Its New Everyday AI Modelhttps://realpython.com/ai-news-weekly-2026-10-30/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-mcp-client
MCP Gets Its Biggest Rewrite and Other Python News for August 2026https://realpython.com/python-news-august-2026/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-mcp-client
ChromaDB: Embeddings and Vector Databases in Pythonhttps://realpython.com/chromadb-vector-database/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-mcp-client
https://realpython.com/account/signup/?intent=continue_reading&utm_source=rp&utm_medium=web&utm_campaign=rwn&utm_content=v1&next=%2Fpython-mcp-client%2F
Continue »https://realpython.com/account/signup/?intent=continue_reading&utm_source=rp&utm_medium=web&utm_campaign=rwn&utm_content=v1&next=%2Fpython-mcp-client%2F
Sign-Inhttps://realpython.com/account/login/?intent=continue_reading&next=/python-mcp-client/
Start Herehttps://realpython.com/start-here/
Your Learning Planhttps://realpython.com/account/learning-plan/
Browse Topicshttps://realpython.com/tutorials/all/
Learning Resourceshttps://realpython.com/search
Python Referencehttps://realpython.com/ref/
Cheat Sheetshttps://realpython.com/cheatsheets/
Support Centerhttps://support.realpython.com
Mentor AIhttps://realpython.com/mentor/
Learning Pathshttps://realpython.com/learning-paths/
Tutorialshttps://realpython.com/tutorials/
Courseshttps://realpython.com/courses/
Quizzeshttps://realpython.com/quizzes/
Coding Exerciseshttps://realpython.com/coding-exercises/
Live Courseshttps://realpython.com/live/
Bookshttps://realpython.com/books/
Data Sciencehttps://realpython.com/start/data-science-analytics/
AI Apps & Agentshttps://realpython.com/start/ai-apps-agents/
Machine Learninghttps://realpython.com/start/machine-learning/
Automationhttps://realpython.com/start/scripting-automation/
Web Developmenthttps://realpython.com/start/web-development-apis/
Cybersecurityhttps://realpython.com/start/cybersecurity/
Podcasthttps://realpython.com/podcasts/rpp/
Newsletterhttps://realpython.com/newsletter/
Community Chathttps://realpython.com/community/
Office Hourshttps://realpython.com/office-hours/
Learner Storieshttps://realpython.com/learner-stories/
Plans & Pricinghttps://realpython.com/account/join/
Team Planshttps://realpython.com/account/join-team/
For Businesshttps://realpython.com/account/join-team/inquiry/
For Schoolshttps://realpython.com/account/join-team/education-inquiry/
Reviewshttps://realpython.com/learner-stories/
About Ushttps://realpython.com/about/
Teamhttps://realpython.com/team/
Mission & Valueshttps://realpython.com/mission/
Editorial Guidelineshttps://realpython.com/editorial-guidelines/
Sponsorshipshttps://realpython.com/sponsorships/
Careershttps://realpython.workable.com
Press Kithttps://realpython.com/media-kit/
Merchhttps://realpython.com/merch
https://www.youtube.com/realpython
https://x.com/realpython
https://www.linkedin.com/company/realpython-com
https://www.facebook.com/LearnRealPython
https://github.com/realpython/
Privacy Policyhttps://realpython.com/privacy-policy/
Terms of Usehttps://realpython.com/terms/
Securityhttps://realpython.com/security/
Contacthttps://realpython.com/contact/
https://realpython.com/

Viewport: width=device-width, initial-scale=1, shrink-to-fit=no, viewport-fit=cover

Robots: max-image-preview:large


URLs of crawlers that visited me.