open-index/open-npm huggingface dataset:
npm package: @spydr/mcp-i
Description: A CLI tool to install and manage MCP servers.
Author: Farouk Adeleke
Latest version: 1.0.5

# Install MCP CLI

### A CLI tool to install and manage MCP servers running OAuth with dynamic client registration.

There wasn't an easy solution, so I built one on top of the existing "mcp-install".

## Usage

Just run
`npx mcp-i '<command>' --client <client> --name <your-mcp-name> --gateway <gateway-provider> --host <optional-oauth-callback>`

Also works with SSE URLs
`npx mcp-i '<url>' --client <client>`

where `<client>` is one of the following:

- `claude`
- `cline`
- `roo-cline`
- `windsurf`
- `witsy`
- `enconvo`
- `cursor`

## License

MIT
npm package: @spyglasses/nuxt
Description: AI SEO, bot detection, and blocking server middleware for Nuxt (Nitro)
Author: Spyglasses
Latest version: 0.1.3

# Spyglasses for Nuxt

[![npm version](https://badge.fury.io/js/@spyglasses%2Fnuxt.svg)](https://www.npmjs.com/package/@spyglasses/nuxt)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Server middleware for Nuxt (Nitro) to detect AI Agents, bots, and AI referrers. Matches the behavior and options of the Next.js package.

## Installation

```bash
npm install @spyglasses/nuxt
# or
yarn add @spyglasses/nuxt
# or
pnpm add @spyglasses/nuxt
```

## Quick Start (Global server middleware)

Create `server/middleware/spyglasses.global.ts` in your Nuxt app:

```ts
// server/middleware/spyglasses.global.ts
import { createSpyglassesMiddleware } from '@spyglasses/nuxt';

export default createSpyglassesMiddleware({
  apiKey: process.env.SPYGLASSES_API_KEY,
  debug: process.env.SPYGLASSES_DEBUG === 'true'
});
```

That's it. The middleware runs for all requests on the server.

## Environment Variables

Same as the Next.js package: `SPYGLASSES_API_KEY`, `SPYGLASSES_CACHE_TTL`, `SPYGLASSES_DEBUG`, optional `SPYGLASSES_COLLECTOR_ENDPOINT`, `SPYGLASSES_PATTERNS_ENDPOINT`.

## Examples

See `examples` for basic usage.

## License

MIT License - see `LICENSE` for details.
npm package: @spyglassmc/core
Description: ![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)
Author: SPGoding
Latest version: 0.4.45

# `@spyglassmc/core`

![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)

[![Discord](https://img.shields.io/discord/666020457568403505?logo=discord&style=flat-square)](https://discord.gg/EbdseuS)
[![npm](https://img.shields.io/npm/v/@spyglassmc/core.svg?logo=npm&style=flat-square)](https://npmjs.com/package/@spyglassmc/core)
[![License](https://img.shields.io/github/license/SpyglassMC/Spyglass.svg?style=flat-square)](https://github.com/SpyglassMC/Spyglass/blob/master/LICENSE)
[![Gitmoji](https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67.svg?style=flat-square)](https://gitmoji.carloscuesta.me/)

This package is the core of the Spyglass Project. It defines the structure of a parser or validator, and provides the `SpyglassCore` class to help manage those things.

## Exports

* `@spyglassmc/core`: Contains all core functionalities.
* `@spyglassmc/core/test/utils.ts`: For internal development use only. Does not exist in the package published to npm.
npm package: @spyglassmc/discord-bot
Description: ![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)
Author: SPGoding
Latest version: 0.3.59

# `@spyglassmc/discord-bot`

![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)

Proof of concept.

Click [here][invite] to invite. Please note that the bot is currently private -- only SPGoding can invite them to servers.

[invite]: https://discord.com/api/oauth2/authorize?client_id=933582681436995634&permissions=0&scope=applications.commands%20bot
npm package: @spyglassmc/java-edition
Description: ![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)
Author: SPGoding
Latest version: 0.3.57

# `@spyglassmc/java-edition`

![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)

[![npm](https://img.shields.io/npm/v/@spyglassmc/java-edition.svg?logo=npm&style=flat-square)](https://npmjs.com/package/@spyglassmc/java-edition)

This package provides support for [_Minecraft: Java Edition_][java-edition] map making.

# mcfunction

## Usage

1. Register vanilla command trees and command tree patches to `CommandTreeRegistry`.
```typescript
CommandTreeRegistry.instance.register('1.15', vanillaCommandTreeFor1_15)
CommandTreeRegistry.instance.register('1.16', vanillaCommandTreeFor1_16)
CommandTreeRegistry.instance.register('1.17', vanillaCommandTreeFor1_17)

CommandTreeRegistry.instance.register('1.17-tdn', vanillaCommandTreeFor1_17, tridentCommandTreePatchFor1_17)
```
2. // TODO

## Supported Minecraft Parsers

See `ParsersToNodes` at `src/mcfunction/parser/argument.ts`.

## Exported Parsers

- `mcfunction:block_predicate`
- `mcfunction:command`
- `mcfunction:component`
- `mcfunction:particle` // TODO
- `mcfunction:tag`
- `mcfunction:team`

[java-edition]: https://minecraft.fandom.com/Java_Edition
npm package: @spyglassmc/language-server
Description: ![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)
Author: SPGoding
Latest version: 0.4.57

# `@spyglassmc/language-server`

![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)

[![npm](https://img.shields.io/npm/v/datapack-language-server.svg?logo=npm&style=flat-square)](https://npmjs.com/package/datapack-language-server)

This is a [language server][lsp] wrapped around some other Spyglass packages.

- [Installation](#installation)
	- [For Use](#for-use)
		- [Sublime Text 3](#sublime-text-3)
		- [Visual Studio Code](#visual-studio-code)
	- [For Developers](#for-developers)

# Installation

## For Use

### Sublime Text 3

1. Install [Node.js](https://nodejs.org/) if you haven't.
2. Execute `npm i -g @spyglassmc/language-server` in your command line to install the language server.
3. Install [Package Control](https://packagecontrol.io/installation) if you haven't.
4. Install [Arcensoth](https://github.com/Arcensoth)'s language-mcfunction package by following the [instructions](https://github.com/Arcensoth/language-mcfunction#installing-the-sublimetext-package) if you haven't.
5. Install [LSP](https://packagecontrol.io/packages/LSP) package.
6. Open the Command Palette and select `Preferences: LSP Settings`.
7. Configure LSP to add the Data-pack Language Server. Here's one example:
```json
{
	"clients": {
		"datapack-language-server": {
			"command": [
				"datapack-language-server",
				"--stdio"
			],
			"enabled": true,
			"languages": [
				{
					"languageId": "mcfunction",
					"scopes": [
						"source.mcfunction"
					],
					"syntaxes": [
						"Packages/language-mcfunction/mcfunction.tmLanguage"
					]
				},
				{
					"languageId": "json",
					"scopes": [
						"source.json"
					],
					"syntaxes": [
						"Packages/JavaScript/JSON.sublime-syntax"
					]
				}
			]
		}
	},
	"only_show_lsp_completions": true
}
```
8. Open the Command Palette, select `LSP: Enable Language Server Globally`, and choose `datapack-language-server`.
9. Enjoy. Do note that you need to execute the command in step 2 manually if you want to update the language server.

- TODO (for SPGoding): make a fine-tuned Sublime package, so that the language server can be updated automatically and the user doesn't need to set all these crazy stuff.

### Visual Studio Code

We have a ready-for-use [VS Code](https://code.visualstudio.com/) extension: [![VSCode Marketplace](https://img.shields.io/visual-studio-marketplace/v/SPGoding.datapack-language-server.svg?logo=visual-studio-code&style=flat-square)](https://marketplace.visualstudio.com/items?itemName=SPGoding.datapack-language-server)

## For Developers

See our [wiki](https://spyglassmc.com/wiki/Language-Server-Details) for more information.

[lsp]: https://microsoft.github.io/language-server-protocol/
npm package: @spyglassmc/mcdoc
Description: ![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)
Author: SPGoding
Latest version: 0.3.49

# `@spyglassmc/mcdoc`

![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)

[![npm](https://img.shields.io/npm/v/@spyglassmc/mcdoc.svg?logo=npm&style=flat-square)](https://npmjs.com/package/@spyglassmc/mcdoc)

This package contains parsers and processors for [the `mcdoc` language][mcdoc-format] designed by [Yurihaia][yurihaia].

# Contributions

## Languages

- `mcdoc` language that is associated with the `.mcdoc` file extension. The implementation strictly follows the [mcdoc Format][mcdoc-format]

## Processors

### Validators

[mcdoc-format]: https://spyglassmc.com/user/mcdoc
[yurihaia]: https://github.com/Yurihaia
npm package: @spyglassmc/mcdoc-cli
Description: ![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)
Latest version: 0.1.51

# `@spyglassmc/mcdoc-cli`

![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)

[![npm](https://img.shields.io/npm/v/@spyglassmc/mcdoc-cli.svg?logo=npm&style=flat-square)](https://npmjs.com/package/@spyglassmc/mcdoc-cli)
npm package: @spyglassmc/mcfunction
Description: ![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)
Author: SPGoding
Latest version: 0.2.48

# `@spyglassmc/mcfunction`

![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)

[![npm](https://img.shields.io/npm/v/@spyglassmc/mcfunction.svg?logo=npm&style=flat-square)](https://npmjs.com/package/@spyglassmc/mcfunction)

This package contains parsers and processors for [mcfunction][mcfunction].

# Usage

```typescript
import * as mcf from '@spyglassmc/mcfunction'

// Register the command tree for a specific version.
mcf.CommandTreeRegistry.instance.register('1.15', vanillaCommandTreeFor1_15, customCommandTreePatchFor1_15)

// Define a function that returns the corresponding parser for the provided argument tree node.
const argument: mcf.parser.ArgumentParserGetter = (treeNode: mcf.ArgumentTreeNode) => {
	switch (treeNode.parser) {
		case 'brigadier:double':
			return parser1
		case 'brigadier:int':
			return parser2
		// ...
		default:
			// Unsupported parser.
			// Just return `undefined`.
			return undefined
	}
}

// Get the command parser.
const commandParser = mcf.parser.command('1.15', argument)

// Or the mcfunction parser.
const mcfunctionParser = mcf.parser.entry('1.15', argument)
```

# Contributions

## Languages

- `mcfunction` language that is associated with the `.mcfunction` file extension.

## AST Nodes

## Processors

[mcfunction]: https://minecraft.fandom.com/Function_(Java_Edition)
npm package: @spyglassmc/nbt
Description: ![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)
Author: SPGoding
Latest version: 0.3.51

# `@spyglassmc/nbt`

![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)

[![npm](https://img.shields.io/npm/v/@spyglassmc/nbt.svg?logo=npm&style=flat-square)](https://npmjs.com/package/@spyglassmc/nbt)

This package contains parsers and processors for [stringified NBT][nbt-format].

# Contributions

## Languages

- `nbt` language that is associated with the `.snbt` file extension.

## AST Nodes

## Processors

[nbt-format]: https://minecraft.gamepedia.com/NBT_format
npm package: @spyglassmc/nbtdoc
Description: ![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)
Author: SPGoding
Latest version: 0.1.1

# `@spyglassmc/nbtdoc`

![banner](https://raw.githubusercontent.com/SpyglassMC/logo/main/banner.png)

[![npm](https://img.shields.io/npm/v/@spyglassmc/nbtdoc.svg?logo=npm&style=flat-square)](https://npmjs.com/package/@spyglassmc/nbtdoc)

This package contains parsers and processors for [the `nbtdoc` language][nbtdoc-format] designed by [Yurihaia][yurihaia].

# Contributions

## Languages

- `nbtdoc` language that is associated with the `.nbtdoc` file extension. The implementation strictly follows the [NBTDoc Format][nbtdoc-format]

## AST Nodes

- `nbtdoc:main`
	- `nbtdoc:compound_definition`
	- `nbtdoc:enum_definition`
	- `nbtdoc:module_declaration`
	- `nbtdoc:use_clause`
	- `nbtdoc:describe_clause`
	- `nbtdoc:inject_clause`

## Processors

### Validators

[nbtdoc-format]: https://github.com/Yurihaia/nbtdoc-rs/blob/master/docs/format.md
[yurihaia]: https://github.com/Yurihaia
npm package: @spyglassmc/web-api-server
Description: api.spyglassmc.com server
Author: SPGoding
Latest version: 0.1.13

## development

[mise](https://mise.jdx.dev/) is used to manage local development environment variables.

* `npm start`: Starts the web API server locally on port 3003
  * Make sure `packages/web-api-server/lib/runtime/` directory is created for the server to store
    data.
* `npm run load-test`: Runs load test against the local instance of web API server
npm package: @spyke/eslint-config
Description: More strict version of recommended ESLint config with Imports plug-in.
Author: Anton Alexandrenok
Latest version: 1.1.0

# @spyke/eslint-config

A stricter version of the Recommended ESLint config + Imports plugin. Most rules are turned on. Some sane JavaScript'ish formatting is enforced.

## Installation

This config is made for `eslint@7` and `eslint-plugin-import@2`. Please intall them first:

```sh
npm install --save-dev eslint@7 eslint-plugin-import@2
# or
yarn add --dev eslint@7 eslint-plugin-import@2
```

Now install the config:

```sh
npm install --save-dev @spyke/eslint-config
# or
yarn add --dev @spyke/eslint-config
```

## Usage

Create your own root config (in this case `.eslintrc.cjs`, but `.js` or `.json` will work fine too):

```js
"use strict";

module.exports = {
    env: {
        es2020: true,
    },
    extends: [
        "@spyke/eslint-config"
    ],
    parserOptions: {
        ecmaVersion: 2020,
        sourceType: "module"
    },
    root: true,
}
```

Feel free add your own rules there: they will override ones from this config.

You can also extend individual configs like `@spyke/eslint-config/base` and `@spyke/eslint-config/import` if you want to reuse them separately.

## License

Licensed under the MIT License, see [LICENSE](LICENSE) for more information.
npm package: @spykerel04d/prettier-eslint
Description: A simple package that contains a ready-to-go setup for prettier and eslint
Author: SpykeRel04D
Latest version: 1.0.2

# prettier-eslint

Ready-to-use configurations for Prettier and Eslint (TS and React)

## Getting Started

1. Install the package as a development dependency in your project:

   ```bash
   npm install --save-dev @spykerel04d/prettier-eslint
   ```

2. Import or extend the desired configuration files into your project's configuration
   files ( e.g., `.prettierrc.js`, `.eslintrc.js`, etc.).

3. Customize the configurations as needed, adding or overriding rules to fit your project
   requirements.

## ESLint

Typescript/Vanilla

```javascript
// .eslintrc.js

/** @type {import("eslint").Config} */
const eslintConfig = require('@spykerel04d/prettier-eslint').eslintConfig

module.exports = eslintConfig
```

React

```javascript
// .eslintrc.js

/** @type {import("eslint").Config} */
const eslintConfig = require('@spykerel04d/prettier-eslint').eslintReactConfig

module.exports = eslintConfig
```

**Required dependencies:**

```bash
npm install --save-dev @trivago/prettier-plugin-sort-imports @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint eslint-config-prettier eslint-plugin-prettier eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-react-refresh
```

### How can I extend some configuration locally?

If the rule needs to be local to your project, you can extend any configuration by
overriding or merging the exported object with your custom configuration.

Here's an example of merging:

```javascript
const eslintConfig = require('@spykerel04d/prettier-eslint').eslintConfig

// Merging
module.exports = {
  ...eslintConfig,
  rules: {
    ...eslintConfig.rules,
    'your-game': 'your-rules',
  },
}

// Overriding
module.exports = {
  ...eslintConfig,
  rules: {
    'your-game': 'your-rules',
  },
}
```

## Prettier

To use the Prettier configuration:

```javascript
// prettier.config.js

/** @type {import("prettier").Config} */
const prettierConfig = require('@spykerel04d/prettier-eslint').prettierConfig

module.exports = prettierConfig
```

**Required dependencies:**

```bash
npm install --save-dev prettier
```
npm package: @spyndutz/passport-local-sequelize
Description: Sequelize plugin that simplifies building username and password login with Passport (Forked: spyndutz version)
Author: Madhur Jain
Latest version: 0.10.0

# Passport-Local Sequelize
This is spyndutz's forked version of [passport-local-sequelize](https://github.com/madhurjain/passport-local-sequelize) package

Passport-Local Sequelize is a [Sequelize](http://sequelizejs.com/) plugin 
that simplifies building username and password login with [Passport](http://passportjs.org)

This plugin is heavily inspired by [Passport-Local Mongoose](https://github.com/saintedlama/passport-local-mongoose) plugin.

# Installation

    $ npm install @spyndutz/passport-local-sequelize

# Usage



```js
/* /models/user.js */

// Require all the stuff
var Sequelize = require('sequelize'),
	passportLocalSequelize = require('passport-local-sequelize');

// Setup sequelize db connection
var mydb = new Sequelize('mydb', 'myuser', 'mypass', {
	dialect: 'sqlite',

	storage: 'mydb.sqlite'
});

// A helper to define the User model with username, password fields
var User = passportLocalSequelize.defineUser(mydb, {
	favoriteColor: Sequelize.STRING
});

// --- OR ---

// Define a User yourself and use attachToUser

var User = mydb.define('User', {
	nick: Sequelize.STRING,
	myhash: Sequelize.STRING,
	mysalt: Sequelize.STRING
});

passportLocalSequelize.attachToUser(User, {
	usernameField: 'nick',
	hashField: 'myhash',
	saltField: 'mysalt'
});

module.exports = User;
```

Here's how to hook it all up to passport in your express app.

```js
var express = require('express'),
	passport = require('passport'),

	bodyParser = require('body-parser'),
	cookieParser = require('cookie-parser'),
	session = require('express-session'),

	User = require('./models/user'),

	app = express();


app.use(bodyParser());
app.use(require('connect-multiparty')());
app.use(cookieParser());
app.use(session({ secret: 'super-secret' }));

app.use(passport.initialize());
app.use(passport.session());

passport.use(User.createStrategy());

passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
```