npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@o-bots7160/advantagescope-mcp

v0.5.0

Published

MCP server for creating and editing AdvantageScope configuration JSON files

Downloads

765

Readme

advantagescope-mcp

An MCP (Model Context Protocol) server for creating, reading, modifying, and validating AdvantageScope configuration JSON files. Designed for FRC teams to programmatically manage custom assets, layouts, and preferences using AI assistants like GitHub Copilot.

Features

  • Custom asset management — create and validate 2D fields, 3D fields, robot models, and joystick configs
  • Layout editing — create, modify, and manage AdvantageScope window/tab state files
  • Source management — add, update, and remove data sources on SourceListState tabs with full validation of types, logTypes, options, and parent/child relationships
  • Tab type discovery — query detailed schemas for each tab type including WPILib code hints for publishing data
  • Preferences management — read and update AdvantageScope preferences with validation
  • Schema validation — validate any asset config against its Zod schema before saving

Installation

Install from npm:

npm install @o-bots7160/advantagescope-mcp

Or build from source:

git clone https://github.com/o-bots7160/advantagescope-mcp.git
cd advantagescope-mcp
npm install && npm run build

Usage with VS Code / GitHub Copilot

Add to your .vscode/mcp.json:

{
  "servers": {
    "advantagescope": {
      "command": "npx",
      "args": [
        "-y",
        "@o-bots7160/advantagescope-mcp"
      ]
    }
  }
}

Available Tools

Read / Inspect

  • list_assets — List AdvantageScope custom asset directories, optionally filtered by type
  • get_asset_config — Read an asset's config.json with auto-detected asset type
  • validate_asset_config — Validate an asset config.json against its schema
  • list_tab_types — List all AdvantageScope tab types with IDs, data types, visualization options, configuration, and notes
  • get_tab_type_schema — Get full schema for a tab type: controller format, valid source types, options, parent/child relationships, and WPILib code hints
  • get_layout — Read a layout state JSON file and get a summary of hubs and tabs
  • get_tab — Get full details of a specific tab including controller and renderer config
  • get_preferences — Read AdvantageScope preferences (returns defaults for missing fields)

Create

  • create_field2d_config — Create a new 2D field asset config.json
  • create_field3d_config — Create a new 3D field asset config.json
  • create_robot_config — Create a new 3D robot model config.json
  • create_joystick_config — Create a new joystick config.json
  • create_layout — Create a new layout state JSON file with a default window

Modify

  • update_asset_config — Merge updates into an existing asset config.json with validation
  • update_preferences — Update AdvantageScope preferences (merges with existing)
  • update_tab — Update an existing tab's title, controller, and/or renderer config (objects are shallow-merged; arrays/null are replaced)
  • add_tab — Add a tab to an existing layout by type ID with optional controller/renderer config
  • add_hub — Add a new hub (window) to a layout with optional position and size
  • add_source — Add a validated data source to a SourceListState tab (LineGraph, Field2d/3d, Statistics, Swerve, Mechanism, Points)
  • update_source — Update an existing source in a SourceListState tab by index
  • remove_source — Remove a source from a SourceListState tab by index
  • move_tab — Move a tab from one position to another within a hub, preserving all config
  • reorder_tabs — Reorder all tabs in a hub by specifying a new index order array

Delete

  • delete_asset — Delete an AdvantageScope custom asset directory and all its contents
  • remove_tab — Remove a tab from a layout by index
  • remove_hub — Remove a hub (window) from a layout by index (cannot remove the last hub)

Development

npm run build        # Compile TypeScript
npm run dev          # Watch mode
npm test             # Run tests
npm run test:watch   # Watch tests

License

This project is licensed under the MIT License.

This project is not affiliated with or endorsed by Littleton Robotics or AdvantageScope. AdvantageScope is developed by Littleton Robotics under the BSD 3-Clause License.