Full Spec MCP: Hidden Capibilities — Harald Kirschner, Microsoft/VSCode

Setting the Scene and Current State of MCP 00:03

  • The MCP (Model Context Protocol) ecosystem is growing rapidly, with excitement and collaboration but also significant room for improvement.
  • The spec is still early in development; the MCP steering committee recently held its first in-person meeting.
  • Adoption currently centers on tools due to their immediate usefulness, and other features of the MCP spec are underutilized.
  • Microsoft's VS Code has been progressing from basic tool support to full MCP spec implementation, with the latest (Insiders) build supporting the full spec.

Tools and Their Limitations 03:13

  • Tools provide well-defined actions and are commonly used due to ease of integration.
  • Overabundance of tools leads to quality issues: AI confusion from too many tools, overlapping domains, and repetitiveness can degrade performance.
  • VS Code introduced features like per-chat tool selection and user-defined tool sets to manage tool complexity and improve usability.
  • The MCP spec enables dynamic discovery of tools, allowing servers to adjust available tools based on context (e.g., only showing a battle tool when a monster is present in a game).

Beyond Tools: Unlocking Full MCP Capabilities 05:55

  • Resources extend capabilities by letting servers provide references to artifacts (e.g., files, screenshots) for both user and LLM to access.
  • Better state awareness emerges when resources and environment info (like Python settings or installed packages) are leveraged, enabling more context-aware and dynamic experiences.
  • MCP servers can enhance end-to-end developer workflows by integrating with CI/CD pipelines and other dev tools.

Unlocking "Sampling" and Advanced Features 07:47

  • Sampling is an underused MCP primitive allowing servers to request completions directly from the client's LLM.
  • In VS Code Insiders, sampling is now enabled, supporting additional workflows like resource summarization and website formatting for LLMs.
  • Sampling provides a form of progressive enhancement, allowing gradual adoption and richer interactions as client/server capabilities improve.

Dynamic Environments and Developer Experience 09:00

  • MCP servers can update roots, tools, and prompts dynamically as the user's workspace or context changes, providing a highly adaptive experience.
  • Developer debugging and logging has been enhanced in VS Code with a new "dev mode" and attached debugger, simplifying the diagnosis of server issues for Python and Node.

Advancing the Spec: Drafts and New Features 10:25

  • Staying current with the evolving MCP spec is important; community feedback helps stabilize and improve new features.
  • The recently updated authorization spec delivers enterprise-grade access controls, with ongoing work on HTTP streaming support for better server efficiency.
  • Discovery of MCP servers remains a challenge, but a community registry is being developed to make server discovery easier.
  • An upcoming feature, "elicitations", will allow tools to directly prompt users for needed input, increasing interactivity and statefulness.

Ecosystem Growth and Community Involvement 12:41

  • VS Code and other clients already support the full MCP spec, enabling best practices and closing the interoperability gap as more users adopt these features.
  • Users and developers are encouraged to contribute feedback, participate in RFCs, and help shape the ecosystem by reporting issues and sharing experiences.
  • The transformative potential of MCP depends on widespread adoption of the full spec and community-driven progress—developers are urged to get involved and ensure new features are well-supported.

Closing Remarks and Calls to Action 14:31

  • Attendees are invited to engage with VS Code team members and the MCP steering committee to ask questions and provide feedback.
  • The session ends with encouragement for ongoing community participation to drive the MCP ecosystem forward.