open-index/open-npm huggingface dataset:
npm package: @iflow-mcp/hemanth-hello-remote-mcp
Description: mcp-remote-server MCP server
Latest version: 0.0.3

# mcp-remote-server

A Model Context Protocol (MCP) server built with mcp-framework.

## Quick Start

```bash
# Install dependencies
npm install

# Build the project
npm run build

# Start the server
npm start
```

The server will run on port **1947** at endpoint **/mcp** by default.

## Project Structure

```
mcp-remote-server/
├── src/
│   ├── tools/                # MCP Tools
│   │   └── XkcdTool.ts       # Tool: Fetches random xkcd comics
│   ├── resources/            # MCP Resources
│   │   ├── DynamicResource.ts  # Fetches data from JSONPlaceholder
│   │   ├── RealTimeResource.ts # Echo WebSocket resource
│   │   └── StaticResource.ts   # Returns static JSON data
│   └── index.ts              # Server entry point
├── package.json
├── tsconfig.json
└── README.md
```

## Included Tools

### XkcdTool
- **Name:** `xkcd`
- **Description:** Fetches a random xkcd comic image and its alt text.

## Included Resources

### DynamicResource
- **URI:** `resource://market-data`
- **Description:** Fetches data from [JSONPlaceholder](https://jsonplaceholder.typicode.com/posts) (free, no API key required).

### EchoResource
- **URI:** `resource://echo`
- **Description:** Connects to a public WebSocket echo server (`wss://echo.websocket.org`).

### StaticResource
- **URI:** `resource://static`
- **Description:** Returns static JSON data for testing.

## Adding Components

You can add more tools using the CLI:

```bash
# Add a new tool
mcp add tool my-tool
```

## Tool Development Example

```typescript
import { MCPTool } from "mcp-framework";
import { z } from "zod";

interface MyToolInput {
  message: string;
}

class MyTool extends MCPTool<MyToolInput> {
  name = "my_tool";
  description = "Describes what your tool does";

  schema = {
    message: {
      type: z.string(),
      description: "Description of this input parameter",
    },
  };

  async execute(input: MyToolInput) {
    // Your tool logic here
    return `Processed: ${input.message}`;
  }
}

export default MyTool;
```

## Running and Testing

1. Make changes to your tools or resources as needed.
2. Run `npm run build` to compile.
3. Start the server with `npm start`.
4. The server will automatically load your tools and resources on startup.

## Server Details
- **Port:** 1947
- **Endpoint:** `/mcp`
- **Transport:** HTTP stream
- **Session management:** Enabled
- **CORS:** Enabled for all origins

## Learn More

- [MCP Framework Github](https://github.com/QuantGeekDev/mcp-framework)
- [MCP Framework Docs](https://mcp-framework.com)
npm package: @iflow-mcp/hemanth-mcp-ui-server
Description: > Sample implementation of [MCP Apps Extension (SEP-1865)](https://github.com/modelcontextprotocol/ext-apps) - interactive HTML/JS UIs through MCP tools.
Latest version: 1.0.0

# MCP Ext Apps
> Sample implementation of [MCP Apps Extension (SEP-1865)](https://github.com/modelcontextprotocol/ext-apps) - interactive HTML/JS UIs through MCP tools.

https://github.com/user-attachments/assets/dd4c968f-1b82-4975-8b89-374933363a99

## Quick Start

```bash
npm install
npm start
```

Open http://localhost:8080

## How It Works

```
Host Client                              MCP Server
┌────────────────────┐                  ┌──────────────┐
│  tools-sidebar     │ ── call tool ─> │  Tools:      │
│  app-container     │ <── HTML UI ─── │  - dashboard │
│  [sandboxed iframe]│                 │  - clock     │
└────────────────────┘                  └──────────────┘
   localhost:8080                        localhost:3001
```

1. Host connects to MCP server, lists tools
2. User clicks a tool, host calls it via MCP
3. Tool returns `text/html+mcp` resource with `ui://` URI
4. Host renders in sandboxed iframe with CSP
5. UI communicates via JSON-RPC 2.0 over `postMessage`

## SEP-1865 Compliance

- `ui://` scheme for resource URIs
- `text/html+mcp` MIME type
- `_meta.ui/resourceUri` in tool responses
- `ui/initialize` handshake protocol
- JSON-RPC 2.0 message format
- Sandboxed iframe with CSP headers

## Scripts

```bash
npm start       # Build + start server
npm run server  # MCP server (port 3001)
npm run host    # Host client (port 8080)
```

## License

MIT