Ken Muse
Beyond MCP: AI Extension APIs in VS Code
In my last couple of posts, I built a standalone MCP server and then embedded it in a VS Code extension. But what happens when you need to do more than reading local files? What if your extension needs to see what’s in the active editor, shape how the AI builds its prompts, or create a full conversational experience in the chat panel? That’s where VS Code’s AI extension APIs come in. In this post, I walk through the APIs that go beyond MCP – from direct model access to chat participants – and help you figure out when each one is the right fit.

Read this article

Adding an MCP Server to a VS Code Extension
Have you ever built a tool that solved a problem but felt a bit… fragile? That’s exactly where I found myself with my Bash-based MCP server. It worked, but it was hard to maintain that hack. In this post, I’ll show you how I took that concept and matured it into a proper VS Code extension. You’ll learn how to embed an MCP server directly into your extension, making it easier to share, test, and maintain. If you’re looking to upgrade your own development tools or just curious about how MCP servers fit into the VS Code ecosystem, this guide is for you!

Read this article

Getting Better AI Results With Deterministic Context and MCP
Have you ever watched your AI assistant suggest something completely different from what you expected? Ever had it seem to ignore clear step-by-step directions and do something different? I was frustrated when Copilot kept making inconsistent decisions about my content metadata. After trying custom instructions and task-specific prompts, I finally found the solution: give the AI exactly what it needs. Here’s how I did it.

Read this article

What Is MCP and Why Do Developers Care?
Ever notice how AI assistants are brilliant at reasoning but can’t actually check your database or call your APIs? You end up playing middleman, copying data back and forth. Model Context Protocol (MCP) changes that. It’s an open standard that lets AI assistants connect directly to your data sources and tools while keeping you in control. Let me show you more about what it is, how it works, and why it matters.

Read this article

Using Git Worktrees for Concurrent Development
Ever found yourself stuck mid-feature when a production bug demands immediate attention? What about when a colleague asks if you can take a quick look at some code? We’ve all been there, trying to safely commit incomplete work or juggling stashes so we can switch between Git branches. What if I told you Git has had a solution for over a decade (and that VS Code just added support)? Learn how Git worktrees can reduce your friction!

Read this article

Using React in Visual Studio Code Webviews
Building custom extensions and visualizations in Visual Studio Code can be a powerful way to enhance your development processes. The samples show you how to use vanilla JavaScript. This post shows you how to modify the code to use React instead.

Read this article

Improved Blogging With Visual Studio Code Webviews
Building a custom VS Code extension can open the door for innovation. Extensions can become even more powerful when you use them to create a better interface. Today we explore how to incorporate custom UIs into your extension using Webviews.

Read this article

Improved Blogging With Visual Studio Code Extensions
Combining Visual Studio Code with Hugo has given me a great workflow for my blog. To make it even better, I need to modify part of the editor’s behavior. I need a custom VS Code extension.

Read this article

Improved Blogging With Visual Studio Code Tasks
I’ve mentioned a few times that I use Visual Studio Code and Hugo for my blogging. I’ve also discussed some of the the ways I make it faster and easier to create my posts. Learn how I make my VS Code experience faster and easier by using tasks.

Read this article

Implementing Private VS Code Extensions for Dev Containers
Did you know that dev containers can have their own private Visual Studio Code extensions? By understanding some of the life cycle of the container, it’s possible to create and use extensions that are designed to support a specific dev container or Codespaces environment.

Read this article