Set Up Our MCP Host

Our MCP server is ready. πŸš€

But a server by itself isn’t very useful. We need an application that can connect to our MCP server and use the capabilities it provides.

For this tutorial, we’ll use Jan as our MCP host.

Jan

Jan is a desktop AI application that can run local AI models and connect to MCP servers.

Our setup will look like this:

MCP

Jan

Local Model

Our MCP Server

Let’s set it up step by step.

πŸ“₯ 4.1 Install Jan

First, download and install Jan for your operating system.

Download Jan

Once the installation is complete, open Jan.

You should see the Jan application running on your machine.

🧠 4.2 Download a Local Model

Jan can run AI models locally on your computer.

For this tutorial, you don’t need a large model. A small model is enough to follow the examples.

Open the model section in Jan and download a model that your computer can comfortably run.

The exact model you choose isn’t important for this tutorial.

What matters is that Jan has a working model that can send requests.

βš™οΈ 4.3 Enable and Configure MCP

Next, we need to configure MCP in Jan.

Open Jan’s settings and find the MCP configuration.

MCP allows Jan to connect to external MCP servers and use the tools exposed by those servers.

Our goal is to tell Jan where our MCP server is located and how it should be started.

βž• 4.4 Add Our MCP Server

Now we’ll add the MCP server we created in the previous chapter.

Our project currently looks like:

calculator-mcp/
β”‚
β”œβ”€β”€ .venv/
β”‚
└── server.py

Jan needs to know how to start server.py.

The exact configuration depends on your operating system and the way Jan expects MCP servers to be configured.

For example, conceptually, Jan needs information similar to:

Server name: Calculator Server
Command: python
Arguments:
server.py

The important idea is that Jan will start our Python MCP server as a separate process and communicate with it using MCP.

▢️ 4.5 Start Our MCP Server

Before connecting everything together, let’s make sure our server can start successfully.

From our project directory, run:

Terminal window
python server.py

If you’re using macOS or Linux and your Python command is python3, use:

Terminal window
python3 server.py

Keep the server available while we configure the connection.

πŸ”Œ 4.6 Connect Our Server to Jan

Now return to Jan.

With our MCP server configured, Jan can start the server and establish the MCP connection.

The overall flow is now:

starts

creates

MCP connection

Jan

server.py

MCP Server

Once the connection is established, Jan can communicate with our MCP server.

βœ… 4.7 Verify the Connection

Let’s verify that everything is working.

Check the MCP section in Jan and make sure our Calculator Server appears as connected or available.

If the server is not connecting, check:

  • The Python executable path
  • The server.py path
  • The virtual environment
  • Jan’s MCP configuration
  • Any error messages shown by Jan

Once Jan shows that the server is connected, we’re ready for the next step.

πŸ’¬ 4.8 Send Our First Request from Jan

Now comes the exciting part. πŸš€

Let’s send our first request from Jan.

For example:

Hello!

At this point, we’re mainly verifying that Jan can communicate with our MCP server.

The flow is:

Hello!

MCP

You

Jan

Our MCP Server

We’ve now connected our AI application to our own MCP server.

That’s an important milestone.

Later, when we add tools to the server, Jan will be able to discover and use those tools through MCP.

πŸ” 4.9 What If You Don’t Want to Use Jan?

Jan is our primary setup for this tutorial, but it isn’t required for MCP itself.

MCP is designed to work across different compatible clients and hosts.

You can also use clients such as:

  • Claude Code
  • Codex
  • Other MCP-compatible clients

The important thing to remember is:

The MCP server code remains the same.

For example, our server:

server.py

doesn’t need to be rewritten just because we change from Jan to another MCP-compatible client.

Only the client-side configuration changes.

Conceptually:

MCP Server

Jan

Claude Code

Codex

Other MCP Clients

This is one of the strengths of MCP.

We can build our server once and allow different MCP clients to connect to it.

➑️ What’s Next?

We now have the complete foundation:

Python Project

MCP Server

MCP Host

Connected

But our server still needs something useful to offer.

Let’s build our first MCP tool.

We’ll start with something extremely simple:

add(10, 20)

In the next chapter, we’ll create this tool and see how Jan can discover and use it.