What is Hackers' Pub?

Hackers' Pub is a place for software engineers to share their knowledge and experience with each other. It's also an ActivityPub-enabled social network, so you can follow your favorite hackers in the fediverse and get their latest posts in your feed.

0
0
0
0
0

MCP Expert Zone: Common Questions from Microsoft Build 2025

Summary: A recap of the most frequently asked questions about the Model Context Protocol (MCP) from my time as an expert at the MCP booth during Microsoft Build 2025. Covers what MCP is, how it works, authentication, differences from OpenAPI, agent-to-agent communication, and practical advice for developers.

I was a designated expert for a few shifts on the MCP booth at Microsoft Build 2025. Some people call it booth duty, it’s not glamorous; you stand there waiting for people to come and ask questions.

However, because Satya and others were constantly giving demos and mentioning MCP every few seconds, this was one of the most visited booths. I got my fair share of people.

I didn’t think I needed to do yet another blog post about MCP, after all, there are already hundreds of resources out there, but in the spirit of recollection, here are the most common questions I got this week. I hope some people find it useful.

The MCP Booth at Microsoft Build 2025


What is MCP?

The most common question I received was either, “What is MCP?” or, “I think I understand MCP, but I want to confirm.”

I first answered as an analogy:

  • Analogy: MCP is a spec/protocol that allows agents to perform actions outside their realm of “thinking.” Think of it like adding skills to Alexa: by default, Alexa can answer questions, but to control your Samsung oven, you need to add a skill. Similarly, MCP lets agents do more by exposing new capabilities.

Then I used to get:

But WHAT is MCP? Is MCP like HTTP? Is it an app? A layer?

  • Technical: MCP is a protocol—a specification for communication between agents. It’s not a network protocol like HTTP or FTP, but more like ATProto (behind Bluesky) or ActivityPub (behind the Fediverse). In remote scenarios, MCP runs over HTTP (ports 80, 443, etc.), using endpoints like /sse and /message, and defines how to expose tools, resources, receive messages, and manage sessions.

People seems to get confused by the word protocol, so I reiterated that it was not a network protocol.


How it works?

You implement an MCP server that exposes tools (APIs, functions, or resources) and follows the MCP protocol for message exchange. MCP defines a standard way for agents (like AI assistants or bots) to communicate and perform actions. Agents connect to your server, discover available tools, and send or receive messages using the defined endpoints. Sessions are maintained (often via Server-Sent Events for remote servers), and agents can poll or stream updates. An MCP client can, for example, ping at regular intervals to retrieve new tools.

It can work in two ways—local or remote—but the specification and the way to expose tools (APIs, functions, prompts, or resources) are the same: the MCP protocol for message exchange.


How much does MCP cost? How can I enable it in my Azure Portal?

MCP does not cost anything. It’s an open specification—anyone can implement it, either as a client or a server. There is nothing to enable in the Azure Portal (one customer even asked me to look for MCP there); instead, you host an MCP server yourself, such as in a Web App, HTTP service, or Azure Functions.


How can I bring my whole legacy data or 100 tables of databases to MCP?

You don’t.

Before jumping to answer this question (or similar ones), I drill down into the why. What is the purpose? In MCP, like any other tool (GraphQL, BigData, OpenAPI, etc.), it is just one more tool. What you really need to define—and this depends on your scenario—are questions like: Who is the consumer? How are you limiting data to certain parts? Are they only reading or writing? How fast do you need it? How are you partitioning? What level of granularity do you want to expose (entire tables, specific queries, or business operations)? How will you handle data privacy and compliance requirements? What monitoring or auditing will you need for agent access to your data?

You don’t need to expose your entire database. Instead, you create MCP tools that wrap the specific actions or queries you want agents to perform (e.g., “GetCustomerById" or “ListOrders"). MCP is about exposing capabilities, not raw data.

Bringing the data is fairly straightforward, but we should think on the why before jumping to the solution. I expect tools like Microsoft Fabric to provide MCP servers soon, so hopefully this part is solved.


How can I do (X) type of authentication?

MCP itself doesn’t mandate a specific authentication method. You can use standard HTTP authentication mechanisms (OAuth, API keys, JWT, user/password, Microsoft Entra, etc.) at your endpoints. If you’re using an existing Agent MCP client (like VSCode, Cursor, Copilot Connectors), you’re limited to the auth mechanisms it supports. For custom scenarios, you can handle authentication externally and pass tokens to your local MCP server.

I often used extreme examples to illustrate this. For instance, if you needed a unique authentication mechanism—say, verifying a user by having them dance and sing on video—you would handle that authentication externally in your own app. After validating the user, you would store the resulting tokens and pass them to your local MCP server.

I compared this to how az login (the Azure CLI utility) works: it opens a browser for authentication, stores credentials locally, and then uses them to connect to Azure. Similarly, your local MCP server can manage custom authentication, store tokens, and allow tools like VSCode to use those tokens for access. This is essentially how the Azure MCP server operates.

While this approach can be cumbersome—since it may require users to install software locally—solutions like Docker have helped streamline the process. In the future, I expect VSCode and other agentic clients to offer more integrated authentication options. You could even create a VSCode extension for your custom authentication method and pass the tokens into the configuration’s $input field.


How can I be the official MCP server for X?

There’s no central registry for “official" MCP servers, but you can list your server at the official server list for visibility. Discovery is organic and depends on each MCP client implementation. In the future, agent platforms (e.g Copilot Studio) may have their own directories or marketplaces.


What is the difference between OpenAPI (or REST API, or SOAP, etc.) and MCP? Why can’t I just use OpenAPI?

Sure you can. You can expose OpenAPI schemas to agents, and many people do this to enable agent actions. However, MCP is fundamentally different and simpler, representing a new paradigm.

OpenAPI describes REST APIs for both humans and machines, but it doesn’t define how agents should dynamically discover, interact with, or invoke tools. MCP, on the other hand, is purpose-built for agent-to-agent or agent-to-tool communication, with conventions for discovery, invocation, and session management. While OpenAPI is focused on CRUD operations and endpoint definitions (and most of the time single stateless requests), MCP is more intent-driven—its tools are designed to map directly to user intents rather than just exposing low-level endpoints.

In few words, OpenAPI is schema-first and stateless, while MCP is intent-first and session-aware.

For example, in a typical REST API for an e-commerce scenario, you might need to call several endpoints to complete a checkout (e.g., GET /products, GET /product/{id}, POST /cart, PUT /cart/checkout). In MCP, you could expose a single tool like addProductToCartAndCheckout, which encapsulates the entire user intent in one action. This makes MCP tools more aligned with how agents interpret and fulfill user requests.

In practice, I’ve added C# annotations to an existing HTTP REST API and was able to expose both REST and MCP interfaces from the same service, serving different types of clients. However, to get the most out of MCP, you should design your tools thoughtfully; just as you wouldn’t map business entities 1:1 to database tables or REST endpoints, you shouldn’t map every REST endpoint directly to an MCP tool. The goal is to expose meaningful capabilities that match user or agent intents.


Can I use MCP to communicate between Agent-to-Agent?

Absolutely. MCP is designed to support agent-to-agent communication. For example, you could have one agent dedicated to handling CRM-related intents (such as Salesforce requests). This agent might expose a single MCP tool (like “CRM handler”), which receives natural language requests from other agents. The CRM agent then uses MCP to communicate with the underlying Salesforce MCP server and fulfill the request. Because MCP is a protocol and specification, you can extend it to fit custom scenarios and workflows, enabling flexible agent-to-agent interactions.


How does an agent know which MCP tool to call?

I don’t have insights over how internally VSCode or other MCP clients handle that call. Of course, if you implement your own MCP client you would have complete control over it. What I know is that description is super important. It is a shame, that you cannot provide few-shots to VSCode yet, or other tools to make it more deterministic. I could think in 3 strategies of how to route calls:

  1. NLP, tokenizing, using utterances and trying to detect the user intent. Not different that how LUIS and bot framework use todo it.
  2. Vector embeddings, storing the MCP tools in a vector embeddings database, and finding the closest one to the user request.
  3. LLM matching, asking to an LLM to find the closest match (which is at the end an expensive modification of vector embeddings).

Customers and people seems to try to find to make it more deterministic.


Where do I start?

We shared this repo as the holy grail of MCP and recommend looking at the sample implementations. Try exposing a simple tool (like a “hello world" function) as an MCP server, then connect an agent to it. Don’t be misled by the name “beginners” in the title, “mcp-for-beginners” repo is comprehensive, covering everything from the basics to advanced concepts and early insights from real-world implementation.


Is it good to invest in MCP for my company?

If you want to make your services accessible to AI agents or participate in the growing ecosystem of agent-based automation, MCP is a good investment. It’s open, flexible, and designed for interoperability. Early adoption can be advantageous.


How do I distribute my MCP server to users/developers/customers? How can they find me?

You can publish your MCP server’s endpoint and documentation on your website, developer portal, or relevant directories. As the ecosystem grows, more discovery mechanisms will emerge (like registries or marketplaces). For now, clear documentation and outreach are key. Some share configuration files (like mcp.json for VSCode) directly with developers (I don’t recommend this).

Anthropic is actively collaborating on the development of an official MCP Registry, as outlined in the MCP roadmap. This registry aims to provide a centralized directory for MCP servers, making it easier for agents and developers to discover, register, and connect to available MCP endpoints. While this would allow to have private registries, or it will be only a public one, I don’t know.


Final thoughts

MCP isn’t complicated, but it does require intentional design. The key is to focus on exposing meaningful capabilities, not just raw data or low-level endpoints. Think in terms of what an agent should be able to do, not just what your API can do.

The ecosystem is evolving fast. What feels like a hack today might be a best practice tomorrow. We’re already seeing early patterns emerge, like wrapping business operations as tools, using MCP for agent-to-agent orchestration, and integrating with developer environments like VSCode.

Experimentation isn’t just encouraged—it’s essential. Try building a small MCP server, wire it up to an agent, and see what happens. You’ll learn more in a weekend of tinkering than in a week of reading docs. There is no better way to understand and click with MCP than by experimenting with it hands-on.

And if you’re still unsure where to start, just remember: “hello world" (or better, “water my plants!”) is a valid MCP tool.

If you have more questions or want to jam on ideas, reach out. I’d love to hear what you’re building.

Also readable in: https://maho.dev/2025/05/mcp-expert-zone-common-questions-from-microsoft-build-2025/ by @mapacheMaho 🦝🍻:

0
0
0
1
0
0
0
0
0
0
0
1
2

Did I ever tell you about that one time I needed to reinstall LinuxPPC, and I was going to wipe the drive anyway, so before I rebooted into the installer I tried running `rm -rf *` as root, just to see what would happen?

As I remember, it got as far as like /dev, and then it somehow deleted something that instantly made the system incapable of deleting files, and halted. After that I was able to cd around the system but VERY little worked

0

성폭행 재판 앞둔 노르웨이 왕세자 의붓아들, 추가 혐의로 구속 www.yna.co.kr/view/AKR2026... "그는 이미 성폭행 4건을 포함해 전 연인을 상대로 한 폭력, 마약 소지, 교통 법규 위반 등 38개 혐의로 기소돼 오는 3일부터 재판을 앞두고 있다. 지금까지 불구속 상태로 재판을 기다려 온 그는 술과 코카인에 취한 상태에서 여자친구를 때리고 집에 있는 물건을 부쉈다고 인정했으나, 성범죄 혐의와 대부분의 폭력 혐의는 부인하고 있다."

성폭행 재판 앞둔 노르웨이 왕세자 의붓아들, 추가 혐의...

0
0
0
0
0
0

RE: mastodon.social/@mcc/116003296

I'm trying to see if I can remember what this was like. It was very, very many years ago. But if I remember right, I had cd, because that's not a command it's a shell builtin, but I no longer had ls, but I could type "echo *" and that technically *would* give me a file listing.

0
0
1
0
0
0
0

You don't use open source software because it's better (it usually isn't).

You don't use open source software because it's freer (it only sometimes is).

You don't use open source software because it's got better politics (it isn't always).

You use open source software because *it is the only option*. In the long run, if it isn't open source, it doesn't exist.

image source: keithstack.com

Email explaining Adobe is abruptly discontinuing Adobe Animate in one month.

@mcc any software that needs to communicate with a license server has a single point of failure. If someone’s writing code to deliberately stop their product working in a given circumstance then they are baking In unreliability and increasing support costs. There’s very few less rewarding tasks than convincing software that you’ve paid for that you’re not actually a thief.

0
0
0
0
0
1
0
0
1
0
0
0
1

Thousands of sick and wounded Palestinians are eagerly waiting to leave Gaza for urgent medical care abroad as Israel opens the Rafah border with Egypt for “limited” crossings. Only five patients managed to exit today.

The border crossing – after being closed by Israel for nearly two years – will reportedly operate for six hours a day and allow the exit of only 150 people.


0
1
0
0
0

youtube.com/shorts/QAW9Q... 조만간 많은 회사(?)에서 일어날 일 ㅎㅎㅋㅋㅋ 짧지만 잘 만든듯 ㅎㅎ 근데 사장이 이렇게 직접 시도해보기라도 하면 다행임 윗선은 대체로 요새 뭐가 일어나는지 잘 모르거나 생각이 없음...

CEO replaces company with Claw...

0
1
1
1

The Linux kernel community has quietly drafted a continuity plan for a post‑Torvalds era. 🐧

Rather than naming a successor, it outlines a collective process to select future maintainers — reducing “bus-factor-of-one” risk while preserving open governance and trust. ⚙️

Linus Torvalds says he has no plans to retire. ⏳

🔗 zdnet.com/article/linux-commun

0

another page from 非人哉 "Inhuman!" that amused me because I'm a Halloween stan:

"Happy Halloween! The office is holding a festive little pumpkin carving contest. Here you go."

"H-HALLOWEEN?! Sir, did you forget we're all CHINESE spirits? You expect us to know what to do with a pumpkin?! Do we look like vampires and werewolves to you?!"

"... When did you guys learn how to do that?"

comic of a fox girl being handed a pumpkin and being astonished that the dragon, the bunny girl, etc are having no trouble carving theirs
0