Skip to main content

Posts

MCP resources–The piece everyone overlooks

I think it is hard to miss the buzz around the Model Context Protocol (MCP), the so-called USB-C for AI apps. What I noticed is that the main focus is on tools . GitHub integration tools, file system tools, API tools—the list goes on. Tools are powerful, they're exciting, and they let AI agents take action in your development environment. But the protocol exposes 2 other types of primitives what almost nobody talks about: Resources and Prompts . And that's a shame, because both might be underrated in the entire MCP specification. My goal of this post is to give at least MCP Resources the attention it deserves. Let’s dive in! The tools-only tunnel vision When Anthropic released MCP, the developer community immediately gravitated toward tools. It makes sense—tools are action-oriented and flashy. They let your AI agent create GitHub issues, run terminal commands, and interact with APIs. That's the kind of capability that makes for great demos. But MCP wasn't d...
Recent posts

Vibe Coding with GitHub Spark: From idea to app in minutes (continued)

Yesterday we started exploring GitHub Spark. We looked at the basic prompting experience, the live preview but also explored the visual editing features and the specification generation (through a PRD.md file). But we didn't have the time to check out all the features.  Let's dive in... Seamless GitHub Integration This is where Spark really shines. Unlike standalone vibe coding tools, Spark can create a GitHub repository from your project. Once created you get a repository with GitHub Actions, Dependabot, and all the standard tooling. The code is synchronized so you don’t need to leave the vibe coding experience. Remark: This is also a great way to better understand what is going on behind the scenes. It allowed me to fix some issues where I wasn’t able to solve it inside GitHub Spark. Need more power? Open a Codespace directly from Spark and continue development with the full GitHub ecosystem at your fingertips. Upload a sketch or an image You don’t have to start...

Vibe Coding with GitHub Spark: From idea to app in minutes

There are multiple platforms available to support you in your vibe coding experience. I mostly used bolt.new but also experimented with lovable.dev and v0.app. But did you know that Github has there own vibe coding platform? Time to give Github Spark a try… Enter GitHub Spark GitHub Spark, it's an AI development platform that converts plain English descriptions into complete, deployable full-stack applications. And I do mean complete—frontend, backend, authentication, database, hosting, the works. Its main focus is simplicity, allowing you to create simple applications without having to worry about all the technical details. Let’s dig into some of the features it has to offer. Pure natural language development The starting point is the same as with any of the other available platforms. You can enter a prompt that describes what you want. "I want to create mobile friendly 7 minutes workout app.." That's it. No setup, no configuration, no choosing betw...

Unlocking Collection Expressions for your own types

C# 12 introduced collection expressions, a new, simplified syntax for initializing collections: This syntax works great with built-in collection types, but what about your own custom collections? That's where CollectionBuilderAttribute comes in, allowing you to extend this modern syntax to your own types. Custom Collections left behind Imagine you've built a custom immutable collection type: Before CollectionBuilderAttribute , you couldn't use the new collection expression syntax with this type. You'd be stuck with the old way: Not exactly elegant compared to the modern syntax. Enter CollectionBuilderAttribute The CollectionBuilderAttribute bridges this gap by telling the compiler how to construct your collection from a collection expression. Here's an example: Now you can write: Beautiful! The compiler automatically calls your Create method with the items. How it works The attribute takes two parameters: Builder Type : A type con...

I love it when a plan comes together

I love it when a plan comes together A quote by Colonel John “Hannibal” Smith, the cigar-chomping leader of The A-Team , a hit 1980s TV series and one of my childhood memories. The lesson to be learned from Hannibal, is that planning is important to succeed.  With the newly introduced ‘Planning mode’, planning also finds its place in our AI assisted development workflows inside Visual Studio. What is Planning Mode? Planning mode extends GitHub Copilot's Agent Mode capabilities to handle larger, multi-step coding tasks with a structured approach. Instead of jumping straight into code generation, Planning mode creates a detailed execution plan that includes: A clear breakdown of tasks to be completed Files that need to be edited Context about the approach Copilot will take Checkpoints for transparency and control These plans are stored as Markdown files with task lists, giving you complete visibility into what Copilot intends to do before it starts mak...

Restrict MCP server access when using Github Copilot -

As GitHub Copilot expands its capabilities through the Model Context Protocol (MCP), it introduces an extra security challenge: how to give developers access to powerful AI tools while maintaining control over what external services those tools can access. This post walks you through setting up a curated MCP registry and enforcing access controls across your organization or enterprise when using Github Copilot. Why restrict access? MCP servers extend Copilot's capabilities by connecting it to external tools, databases, APIs, and services. While this opens up incredible possibilities for developer productivity, it also introduces potential security risks. Without proper controls, developers could: Connect Copilot to unauthorized external services Expose sensitive data to third-party MCP servers Use tools that don't meet your organization's security or compliance requirements Bypass established security policies through AI-assisted workflows A way is n...

Git worktrees–A first step towards a multi-agent development workflow

As AI coding assistants become more sophisticated, we're approaching a future where multiple agents might work on different parts of your codebase simultaneously. But there's a challenge: how do you let multiple processes work on the same repository without constantly stepping on each other's toes? One solution is to have agents work on dedicated machines like GitHub Copilot Agent does in a GitHub Codespace. But what if you want to have multiple agents working on your local machine? Enter git worktrees – a powerful Git feature that's been hiding in plain sight since 2015, and the perfect foundation for multi-agent development workflows. What are Git worktrees? Git worktrees allow you to check out multiple branches from the same repository simultaneously, each in its own directory. Think of it as having multiple working directories all sharing the same Git history, but each can be on a different branch. Here's the key insight: while the working directories...