open-index/open-npm huggingface dataset:
npm package: @supy-io/ngx-intercom
Description: [![npm](https://img.shields.io/npm/v/@supy-io/ngx-intercom.svg)](https://www.npmjs.com/package/@supy-io/ngx-intercom) [![npm](https://img.shields.io/npm/dm/@supy-io/ngx-intercom.svg)](https://www.npmjs.com/@supy-io/ngx-intercom)
Author: scott-wyatt
Latest version: 14.2.12

# @supy-io/ngx-intercom

[![npm](https://img.shields.io/npm/v/@supy-io/ngx-intercom.svg)](https://www.npmjs.com/package/@supy-io/ngx-intercom)
[![npm](https://img.shields.io/npm/dm/@supy-io/ngx-intercom.svg)](https://www.npmjs.com/@supy-io/ngx-intercom)

[//]: # ([![Build status][ci-image]][ci-url])
[![Maintenance](https://img.shields.io/maintenance/yes/2022.svg)]()

This is an Intercom wrapper for Angular 2+ which supports AoT and SSR.

It intends to support all documented intercom methods and PRs for functionality is greatly appreciated.

### STABLE VERSION

`master` is now hosting the latest stable version of `@supy-io/ngx-intercom`.

If you find issues with this version, please file an issue as soon as possible so we can take a look at it. We appreciate your cooperation!

### Installation

This package is on NPM, so just run
 ```sh
$ npm install @supy-io/ngx-intercom@latest
 ```

### Configuration

1. Import `IntercomModule` to `app.module.ts`. The module will automatically include the APP_ID instantiation, so you DO NOT need to copy the install script from Intercom and place it in your `index.html`.

```ts
import { IntercomModule } from '@supy-io/ngx-intercom';

@NgModule({
  imports: [
    ...
    IntercomModule.forRoot({
      appId: <your_app_id>, // from your Intercom config
      updateOnRouterChange: true // will automatically run `update` on router event changes. Default: `false`
    })
    ...
  ]
})
export class AppModule { }
```

2. Use in your components/directives/whatever you want!

```ts
// App
import { Component, OnInit } from '@angular/core';
import { Intercom } from '@supy-io/ngx-intercom';

@Component({
  selector: 'app',
  template: `...`
})
export class AppComponent implements OnInit {
  constructor(
    public intercom: Intercom
  ){}

  ngOnInit() {
    this.intercom.boot({
      app_id: <app_id>, // Please, pass your APP_ID here in case you don't use IntercomConfig
      // Supports all optional configuration.
      widget: {
        "activator": "#intercom" 
      }
    });
  }
}
```

### Development
To run live testing: `ng test`

To run tests: `npm test`

To run distribution: `npm run build:dist`

To publish `npm run build:dist && npm publish ./dist`


### Credits
Maintained by [Scott Wyatt](https://github.com/scott-wyatt) and [Wilson Hobbs](https://www.twitter.com/wbhob) in 2017 with contributions from [Florian Reifschneider](https://github.com/flore2003), [Devon Sams](https://www.twitter.com/POS1TRON), [Humberto Rocha](https://github.com/humrochagf), and [Luca GOUTY](http://luca.gouty.fr)


[ci-image]: https://img.shields.io/circleci/project/github/CaliStyle/@supy-io/ngx-intercom/master.svg

[//]: # ([ci-url]: https://circleci.com/gh/CaliStyle/@supy-io/ngx-intercom/tree/master)
npm package: @suqingdong/use-eventsource
Description: A custom React hook for managing Server-Sent Events (SSE) connections in React applications.
Author: suqingdong
Latest version: 1.0.5

# @suqingdong/use-eventsource

`@suqingdong/use-eventsource` is a custom React hook for managing Server-Sent Events (SSE) connections in React applications. This hook simplifies the process of establishing and handling SSE connections, allowing developers to easily integrate real-time data streaming into their React components.

## Installation

You can install `@suqingdong/use-eventsource` via npm:

```bash
npm install @suqingdong/use-eventsource
```

## Usage

```javascript
import { useEventSource } from '@suqingdong/use-eventsource';

const MyComponent = () => {
  const { data, reconnect, terminate } = useEventSource({ url: 'your-sse-endpoint' });

  return (
    <div>
      <p>Received data: {data}</p>
      <button onClick={reconnect}>Reconnect</button>
      <button onClick={terminate}>Terminate</button>
    </div>
  );
};

export default MyComponent;
```

Replace `'your-sse-endpoint'` with the URL of your Server-Sent Events endpoint.

## API

### useEventSource(options: EventSourceOptions): { data: string, reconnect: () => void, terminate: () => void }

#### Parameters

- `options` (EventSourceOptions): An object containing the following properties:
  - `url` (string): The URL of the Server-Sent Events endpoint.
  - `mode` (Mode): (optional) The mode of data reception. Can be `'chunk'` or `'add'`. Defaults to `'chunk'`.
  - `decodeData` (boolean): (optional) Whether to decode received data. Defaults to `true`.

#### Returns

An object containing the following properties:
- `data` (string): The received data.
- `reconnect` (function): A function to reconnect to the Server-Sent Events endpoint.
- `terminate` (function): A function to terminate the SSE connection.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
npm package: @sura_ai/papers
Description: MCP server for academic paper metadata resolution. Search papers, resolve DOIs, and traverse citation graphs via CrossRef, OpenAlex, and Semantic Scholar.
Author: bstn
Latest version: 0.1.5

# @sura_ai/papers

MCP server for academic paper metadata resolution. Search papers, resolve DOIs, and traverse citation graphs — all from your AI assistant.

Built on public academic APIs (CrossRef, OpenAlex, Semantic Scholar). No account or API key required to get started.

## What it does

This server gives your AI assistant access to the academic literature. It can:

- **Search for papers** by title, topic, or keywords across CrossRef
- **Search for full text** papers via CORE (opt-in, requires API key)
- **Resolve DOIs** to full metadata (title, authors, journal, year, abstract, etc.)
- **Look up papers by title** with fuzzy matching and confidence scoring
- **Traverse citation graphs** — find what a paper cites and what cites it, with citation context sentences when available

Data is fetched from multiple sources and merged for the best coverage:
- **CrossRef** — bibliographic metadata, DOI resolution, full-text search
- **OpenAlex** — abstracts, citation counts, open access status
- **Semantic Scholar** — citation context, TLDR summaries, influence scores
- **CORE** — full text access for 46M+ open access papers (opt-in)

## Tools

| Tool | Description |
|------|-------------|
| `search_papers` | Search for academic papers by query (up to 20 results). Set `fullText=true` to search CORE for papers with full text. |
| `get_paper_metadata` | Get metadata by DOI or title (tries DOI first, falls back to fuzzy title search). Set `fullText=true` to also fetch full text from CORE. |
| `get_citation_graph` | Traverse references and/or citations for a paper (up to 50 per direction) |

## Setup

### Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "papers": {
      "command": "npx",
      "args": ["-y", "@sura_ai/papers"]
    }
  }
}
```

### Claude Code

```bash
claude mcp add papers -- npx -y @sura_ai/papers
```

## Environment Variables

All optional. Without them, the server uses CrossRef (free, no key needed) with basic rate limits.

| Variable | Effect |
|----------|--------|
| `PAPERS_CONTACT_EMAIL` | Email for CrossRef/OpenAlex polite pool — significantly higher rate limits |
| `OPENALEX_API_KEY` | Enables OpenAlex enrichment (abstracts, citation counts, open access info) |
| `SEMANTIC_SCHOLAR_API_KEY` | Higher rate limits for Semantic Scholar (citation context, TLDR, influence) |
| `CORE_API_KEY` | Enables CORE full text search and retrieval ([register here](https://core.ac.uk/services/api)) |

### With env vars

```json
{
  "mcpServers": {
    "papers": {
      "command": "npx",
      "args": ["-y", "@sura_ai/papers"],
      "env": {
        "PAPERS_CONTACT_EMAIL": "you@example.com",
        "OPENALEX_API_KEY": "your-openalex-key",
        "SEMANTIC_SCHOLAR_API_KEY": "your-s2-key",
        "CORE_API_KEY": "your-core-key"
      }
    }
  }
}
```

## License

MIT