open-index/open-npm huggingface dataset:
npm package: @saqoosha/xai-search-mcp
Description: Minimal MCP server for xAI Grok web search and content fetching
Author: Saqoosha
Latest version: 0.1.0

# @saqoosha/xai-search-mcp

Minimal [MCP](https://modelcontextprotocol.io/) server for web search and content fetching via [xAI](https://x.ai)'s Grok API.

## Tools

| Tool | Description |
|---|---|
| `web_search` | Search the web, returns JSON array of `{title, url, description}` |
| `web_fetch` | Fetch URL content, returns structured Markdown |

## Setup

### 1. Get an xAI API key

Sign up at [x.ai](https://x.ai) and create an API key.

### 2. Add to Claude Code

Add to your `~/.claude.json`:

```json
{
  "mcpServers": {
    "xai-search": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@saqoosha/xai-search-mcp"],
      "env": {
        "XAI_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

### 3. Optional environment variables

| Variable | Default | Description |
|---|---|---|
| `XAI_API_KEY` | (required) | Your xAI API key |
| `XAI_MODEL` | `grok-4-fast` | Grok model to use (must be grok-4 family for web search) |
| `XAI_API_URL` | `https://api.x.ai/v1` | xAI API endpoint |

## License

MIT
npm package: @saqqdy/svg.draggable.js
Description: An extension for svg.js which allows to drag elements with your mouse
Author: saqqdy
Latest version: 2.2.2

# svg.draggable.js

A plugin for the [svgdotjs.github.io](https://svgdotjs.github.io/) library to make elements draggable.

Svg.draggable.js is licensed under the terms of the MIT License.

## Usage

Install the plugin:

    bower install svg.draggable.js

Include this plugin after including the svg.js library in your html document.

```html
<script src="svg.js"></script>
<script src="svg.draggable.js"></script>
```

To make an element draggable just call `draggable()` in the element

```javascript
var draw = SVG('canvas').size(400, 400)
var rect = draw.rect(100, 100)

rect.draggable()
```

Yes indeed, that's it! Now the `rect` is draggable.

## Events
The Plugin fires 4 different events

- beforedrag (cancelable)
- dragstart
- dragmove (cancelable)
- dragend

You can bind/unbind listeners to this events:

```javascript
// bind
rect.on('dragstart.namespace', function(event){

	// event.detail.event hold the given data explained below

})

// unbind
rect.off('dragstart.namespace')
```

### event.detail

`beforedrag`, `dragstart`, `dragmove` and `dragend` gives you the `event` and the `handler` which calculates the drag.
Except for `beforedrag` the events also give you:

 - `detail.m` transformation matrix to calculate screen coords to coords in the elements userspace
 - `detail.p` pageX and pageY transformed into the elements userspace

### cancelable events

You can prevent the default action of `beforedrag` and `dragmove` with a call to `event.preventDefault()` in the callback function.
The shape won't be dragged in this case. That is helpfull if you want to implement your own drag handling.

```javascript
rect.draggable().on('beforedrag', function(e){
  e.preventDefault()
  // no other events are bound
  // drag was completely prevented
})

rect.draggable().on('dragmove', function(e){
  e.preventDefault()
  this.move(e.detail.p.x, e.detail.p.y)
  // events are still bound e.g. dragend will fire anyway
})
```
 
## Constraint
The drag functionality can be limited within a given box. You can pass the the constraint values as an object:

```javascript
rect.draggable({
  minX: 10
, minY: 15
, maxX: 200
, maxY: 100
, snapToGrid: 20 
})
```

For more dynamic constraints a function can be passed as well:

```javascript
rect.draggable(function(x, y) {
  return { x: x < 1000, y: y < 300 }
})
```

**Note** that every constraint given is evaluated in the elements coordinate system and not in the screen-space

## Remove
The draggable functionality can be removed calling draggable again with false as argument:

```javascript
rect.draggable(false)
```


## Restrictions

- If your root-svg is transformed this plugin won't work properly (Viewbox is possible)
- Furthermore it is not possible to move a rotated or flipped group properly. However transformed nested SVGs are possible and should be used instead.


## Dependencies
This module requires svg.js >= v2.0.1
npm package: @saqqdy/svg.resize.js
Description: An extension for svg.js which allows to resize elements which are selected
Latest version: 1.4.3

svg.resize.js
=============

An extension of [svg.js](https://github.com/saqqdy/svg.js) which allows to resize elements which are selected with [svg.select.js](https://github.com/saqqdy/svg.select.js)

# Demo

For a demo see http://saqqdy.github.io/svg.resize.js/

# Get Started

- Install `svg.resize.js` using bower:

		bower install svg.resize.js

- Include the script after svg.js and svg.select.js into your page

		<script src="svg.js"></script>
		<script src="svg.select.js"></script>
		<script src="svg.resize.js"></script>

- Select a rectangle and make it resizeable:

		<div id="myDrawing"></div>

		var drawing = new SVG('myDrawing').size(500, 500);
		drawing.rect(50,50).selectize().resize()

# Usage

Activate resizing

    var draw = SVG('drawing');
	var rect = draw.rect(100,100);
    rect.selectize().resize();

Deactivate resizing

	rect.resize('stop');

Keep element within constrained box

	var draw = SVG('drawing');
	var rect = draw.rect(100, 100);
	var opt = {
		constraint: {
			minX: 0,
			minY: 0,
			maxX: 200,
			maxY: 300
		}
	};
	rect.selectize().resize(opt)


# Options

- `snapToGrid`: Snaps the shape to a virtual grid while resizing (default `1`)
- `snapToAngle`: Snaps to an angle when rotating (default `0.1`)
- `constraint`: Keep element within constrained box (see usage above); The box snaps to the grid defined by `snapToGrid`.
- `saveAspectRatio`: Save aspect ratio of the element while resizing with left-top, left-bottom, right-top, right-bottom points.


# Events

- `resizing`: Fired when changes occur
- `resizedone`: Fired when resizing is done

# Known Issues

- resize nested svgs does not work
npm package: @saquibshahid/create-my-backend
Description: Interactive CLI to scaffold a class-based Node.js + TypeScript backend
Latest version: 1.0.4

# create-my-backend

Interactive CLI to scaffold a class-based Node.js + TypeScript backend starter.

## Usage

```bash
npx create-my-backend
```

## Features

- Interactive prompts
- Layered templates with safe merging
- Optional database, auth, and linting
- Placeholder replacement
- Optional dependency installation

## Publishing

```bash
npm publish
```
npm package: @saquibshahid/create-my-main-backend
Description: Interactive CLI to scaffold a class-based Node.js + TypeScript backend
Latest version: 1.0.3

# create-my-backend

Interactive CLI to scaffold a class-based Node.js + TypeScript backend starter.

## Usage

```bash
npx create-my-backend
```

## Features

- Interactive prompts
- Layered templates with safe merging
- Optional database, auth, and linting
- Placeholder replacement
- Optional dependency installation

## Publishing

```bash
npm publish
```
npm package: @saquibshahid/create-my-proxy-backend
Description: Interactive CLI to scaffold a class-based Node.js + TypeScript backend
Latest version: 1.0.1

# create-my-backend

Interactive CLI to scaffold a class-based Node.js + TypeScript backend starter.

## Usage

```bash
npx create-my-backend
```

## Features

- Interactive prompts
- Layered templates with safe merging
- Base proxy template only
- Linting included by default
- Optional dependency installation

## Publishing

```bash
npm publish
```