Skip to content
MCP

Get Started

Quickstart: Your First Success

The fastest path to a running MCP server on your own machine. Follow each step in order. By the end, the server will answer a health check and pass the smoke test β€” your first concrete win.

🎯 What you'll be able to do

  • Install the prerequisites on Windows
  • Open the reference project in VS Code
  • Create and activate a Python virtual environment
  • Install dependencies and start the server locally
  • Run the smoke test and inspect the /mcp endpoint
  • Recognise exactly what success looks like

The first-success path

Your route to first success. Any failure step routes you to Troubleshooting.
Where do I type these commands?
Every command on this page is Windows PowerShell. Open a PowerShell terminal inside VS Code with Terminal β†’ New Terminal, or press Ctrl + ` (backtick).

1. Install prerequisites

Install these once. The Development Environment chapter explains each in detail; for now, just get them on your machine.

ToolWhy you need it
VS CodeEditor and integrated terminal
Python 3.11 or laterRuns the MCP server
GitSource control
Node.js LTSRuns MCP Inspector via npx
PowerShell 7 (or Windows PowerShell)Runs the project scripts
Tip
Verify Python is installed by running python --version. You should see Python 3.11.x or higher.

2. Open the project in VS Code

Open the reference implementation folder. Always quote Windows paths that contain spaces:

PowerShell
cd "C:\Users\uacholonu\OneDrive - Microsoft\Documents\DevZone\CoworkDev\Plugin Projects\My MCP Builds\Microsoft Scout Opus 4.8\jira-mcp-copilot-studio"
code .

3. Create and activate a virtual environment

A virtual environment (β€œvenv”) is a private folder of Python packages for this project only. It stops this project's dependencies from clashing with anything else on your computer.

PowerShell
python -m venv .venv
.\.venv\Scripts\Activate.ps1

When activation works, your prompt is prefixed with (.venv).

4. Install dependencies

PowerShell
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"

The -e ".[dev]" part installs the project itself (in editable mode) plus its development tools like the test runner and linter.

5. Start the server

The included helper script does steps 3–5 for you if you skipped them: it creates .venv if missing, installs dependencies, copies .env.example to .env, and starts the server.

PowerShell
.\scripts\run_local.ps1
Expected output
Starting MCP server on http://localhost:8080/mcp ...

6. Check health

Leave the server running. Open a second terminal and ask it if it's alive:

PowerShell
Invoke-RestMethod http://localhost:8080/healthz
Invoke-RestMethod http://localhost:8080/readyz
Expected output
status version
------ -------
ok     1.0.0

status server
------ ------
ready  microsoft-scout-jira-mcp
Beginner note
/healthz means β€œthe process is alive.” /readyz means β€œit's ready to take traffic.” Cloud platforms use these two probes to decide whether to route requests to your server.

7. Run the smoke test

A smoke test is a tiny end-to-end check. This one confirms the essentials without needing a real Jira token.

PowerShell
python scripts\smoke.py
The smoke test checks…Expected result
/healthzReturns 200 locally
/mcpWithout a bearer token, returns 401 (good β€” it refuses anonymous calls)
MCP initializeReturns 200 with a placeholder bearer
tools/listChecked only when you supply a real Atlassian token
A 401 here is a pass, not a failure
It can feel wrong to celebrate a 401 Unauthorized, but it proves the server correctly refuses requests with no token. That refusal is a security feature.

8. Inspect the /mcp endpoint

Use the official MCP Inspector to see the transport and discover tools:

PowerShell
npx @modelcontextprotocol/inspector
Inspector settingValue
TransportStreamable HTTP
URLhttp://localhost:8080/mcp
Note
Tool calls that actually hit Jira need a real Atlassian OAuth access token. The Inspector is still valuable now for verifying MCP transport and tool discovery. You'll wire up real tokens in the Copilot Studio & OAuth chapter.

What success looks like

What success looks like
  • The server prints its startup line and keeps running.
  • /healthz returns status: ok.
  • The smoke test reports a pass.
  • /mcp without a token returns 401; with the placeholder bearer, initialize returns 200.
If all four are true, you have a working MCP server on your machine. πŸŽ‰

❓ Concept check

You started the server and /healthz works, but the smoke test fails on the /mcp step saying it got 200 instead of 401. What does that suggest?

πŸ“Œ Chapter summary

  • A virtual environment keeps this project's packages separate from the rest of your system.
  • run_local.ps1 automates setup and starts the server on port 8080.
  • /healthz and the smoke test prove the server is alive and that /mcp correctly rejects unauthenticated calls.
  • Hitting Jira for real needs an Atlassian token β€” that comes later.

βœ… End-of-chapter review

0/6 done