open-index/open-npm huggingface dataset:
npm package: @sprigr/mcp-server
Description: Sprigr MCP server — local AI agent search with WASM-powered full-text search and hybrid semantic search
Latest version: 1.7.0

# @sprigr/mcp-server

MCP server for AI agents with WASM-powered local full-text search and hybrid semantic search.

Full-text searches run locally via WebAssembly (~5ms). Hybrid semantic search combines keyword matching with vector embeddings for higher relevance. Writes go to the Sprigr API. The binary index auto-refreshes when your data changes.

## Quick Start

Add to your AI client config (Claude Desktop, Cursor, Windsurf, etc.):

```json
{
  "mcpServers": {
    "sprigr": {
      "command": "npx",
      "args": ["-y", "@sprigr/mcp-server"],
      "env": {
        "SPRIGR_API_KEY": "your-api-key"
      }
    }
  }
}
```

Don't have an API key? Ask your AI agent to use the `signup` tool, or visit [sprigr.com](https://sprigr.com).

## Environment Variables

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `SPRIGR_API_KEY` | Yes | — | Your Sprigr API key |
| `SPRIGR_API_BASE` | No | `https://search.sprigr.com` | API base URL |

## How It Works

```
AI Agent ──stdio──> @sprigr/mcp-server (local Node.js)
                         │
                         ├── search        → Local WASM engine (~5ms)
                         ├── import/delete → Sprigr API → invalidate local cache
                         └── On change    → re-download binary index → reload WASM
```

- **Searches** run entirely in-process via a compiled WASM search engine, with optional hybrid semantic search for improved relevance
- **Writes** (import, delete, create index, update settings) go to the Sprigr API
- After any write, the local binary index is automatically refreshed on the next search
- Cache version checks are throttled (5s TTL) to avoid unnecessary API calls

## Available Tools

| Tool | Description |
|------|-------------|
| `signup` | Create a Sprigr account and get an API key |
| `list_indexes` | List all indexes in your account |
| `create_index` | Create a search index with searchable attributes and facets |
| `update_settings` | Update index settings (searchable attributes, facets, synonyms) |
| `import_objects` | Upsert JSON objects into an index (max 1000/call, same objectID = replace) |
| `search` | Full-text search with filters, facets, pagination, and field selection |
| `multi_search` | Search across multiple indexes in one call |
| `get_object` | Fetch a single object by ID |
| `export_objects` | Export all objects from an index as JSON (paginated) |
| `get_stats` | Get account statistics |
| `delete_objects` | Delete objects by ID (max 1000/call) |
| `delete_index` | Permanently delete an entire index |
| `clear_index` | Remove all objects but keep index settings |
| `set_alias` | Point an alias name at an index (for zero-downtime reindexing) |
| `delete_alias` | Remove an alias |
| `list_aliases` | List all index aliases |

## Requirements

- Node.js 18+

## License

MIT
npm package: @sprii/eslint-config
Description: Sprii's eslint configurations
Latest version: 0.1.3

# eslint-config

Sprii [eslint](http://eslint.org/) configurations. Based off https://github.com/moxystudio/eslint-config.


## Installation

`$ npm install --save-dev eslint @sprii/eslint-config`

Additional dependencies that need to be installed per addon:

react addon: `$ npm install --save-dev eslint-plugin-react@^3.13.0`

This config was tested with `eslint@^4.3.0` and the specific version ranges for plugins. Use other versions at your own risk. I will try to keep this project up to date with the changes of `eslint` and the plugins used here.


## Usage

First you need to choose the ECMAScript version you want to target: `es5`, `es6`, `es7` or `es8`.

Then enhance it with one or more **addons**:

- `browser` - If you are going to develop code for the browser
- `node` - If you are going to develop code for NodeJS
- `es6-modules` - If you are going to use ES6 import & export
- `react` - If you are going to use React and JSX (requires )

Finally, simply create a `.eslintrc.json` file with the chosen base configuration and addons. Feel free to override rules you won't agree with. You can look at some examples bellow.

Alternatively, you can make your own configuration by using the set of **rules** individually. If you're interested in doing that, you can check `es5.js` to see how it is done.


### Examples

Cutting edge ES6 with modules in the browser, using react:

```json
{
    "root": true,
    "extends": [
        "@sprii/eslint-config/es6",
        "@sprii/eslint-config/addons/es6-modules",
        "@sprii/eslint-config/addons/browser",
        "@sprii/eslint-config/addons/react"
    ]
}
```

Cutting edge ES6 with modules in NodeJS (requires babel or similar):

```json
{
    "root": true,
    "extends": [
        "@sprii/eslint-config/es6",
        "@sprii/eslint-config/addons/es6-modules",
        "@sprii/eslint-config/addons/node"
    ]
}
```

Use ES6 in NodeJS without any transpiler:

```json
{
    "root": true,
    "extends": [
        "@sprii/eslint-config/es6",
        "@sprii/eslint-config/addons/node"
    ]
}
```

.. and if you are programming against NodeJS v4 please use:

```json
{
    "root": true,
    "extends": [
        "@sprii/eslint-config/es6",
        "@sprii/eslint-config/addons/node"
        "@sprii/eslint-config/addons/node-v4-es6"
    ]
}
```


Good old ES5 in NodeJS:

```json
{
    "root": true,
    "extends": [
        "@sprii/eslint-config/es5",
        "@sprii/eslint-config/addons/node"
    ]
}
```

Note that by setting `root` to true, we ensure that no ancestor configuration is used which also improves `eslint` performance because no more file lookups need to be done.


## File name convention

If your file exports a single class, your filename should be exactly the name of the class. For other cases, the name of the file should be the same as the default exports (prefer camelCase).


## License

[MIT License](http://opensource.org/licenses/MIT)
npm package: @sprii/stylelint-config
Description: Sprii stylelint configuration
Latest version: 0.1.0

# stylelint-config

Sprii [stylelint](https://stylelint.io/) configuration.
To use, install the following packages:

```
$ npm install --save-dev stylelint @sprii/stylelint
```

And then just add the following configuration file `.stylelintrc.json`:

```
{
    "extends": "@sprii/stylelint-config"
}
```