# M365 Galleries Mcp

> MCP Server for the Microsoft 365 Galleries

- **Type:** MCP server
- **Install:** `agentstack add mcp-pnp-m365-galleries-mcp`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [pnp](https://agentstack.voostack.com/s/pnp)
- **Installs:** 0
- **Category:** [Integrations](https://agentstack.voostack.com/c/integrations)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [pnp](https://github.com/pnp)
- **Source:** https://github.com/pnp/m365-galleries-mcp

## Install

```sh
agentstack add mcp-pnp-m365-galleries-mcp
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Microsoft 365 Galleries MCP Servers

MCP Servers for the Microsoft 365 & Power Platform Community Samples Gallery.

## Overview

This repository contains two implementations of the same Model Context Protocol (MCP) Server that provides access to the Microsoft 365 & Power Platform Community Samples Gallery. 

Both projects expose identical functionality but use different communication protocols:

## Projects

### 1. SampleGalleriesMCPServerStdio
- **Protocol**: STDIO (Standard Input/Output)
- **Use Case**: Ideal for local development and integration with tools that support STDIO-based MCP servers
- **Communication**: Uses standard input/output streams for message exchange

### 2. SampleGalleriesMCPServerHttp
- **Protocol**: HTTP Streaming
- **Use Case**: Perfect for web-based applications and services that require HTTP-based communication
- **Communication**: Uses HTTP streaming for real-time message exchange

## Functionality

Both MCP servers provide the same core functionality through the following tools:

### Available MCP Tools

#### 1. `SamplesByProduct`
Retrieves samples filtered by a specific Microsoft 365 or Power Platform product.

**Input Arguments:**
- `product` (string, required): The product identifier to filter samples (e.g., "SharePoint", "Teams", "Power Apps")
- `pageIndex` (int, required): The page number for pagination (starting from 1)
- `pageSize` (int, required): Number of samples to return per page

#### 2. `SamplesByAuthor`
Retrieves samples created by a specific author.

**Input Arguments:**
- `author` (string, required): The author identifier to filter samples
- `pageIndex` (int, required): The page number for pagination (starting from 1)
- `pageSize` (int, required): Number of samples to return per page

#### 3. `SamplesByKeyword`
Searches for samples using keyword-based text search.

**Input Arguments:**
- `keyword` (string, required): The search keyword or phrase to find in sample titles, descriptions, or metadata
- `pageIndex` (int, required): The page number for pagination (starting from 1)
- `pageSize` (int, required): Number of samples to return per page

#### 4. `SearchSamples`
Performs advanced search with comprehensive filtering, sorting, and pagination options.

**Input Arguments:**
- `search` (SearchSamples object, required): Complex search parameters including:
  - **Filter** (optional): Advanced filtering options
    - `Search` (string): Text to search across all sample content
    - `ProductId` (string array): Array of product identifiers to filter by
    - `AuthorId` (string): Specific author identifier
    - `CategoryId` (string): Category identifier for filtering
    - `FeaturedOnly` (boolean): Return only featured samples
    - `Metadata` (array): Additional metadata-based filters with key-value pairs
  - **Sort** (optional): Sorting configuration
    - `Field` (enum): Sort by Title, CreationDateTime, or UpdateDateTime
    - `Descending` (boolean): Sort in descending order if true
  - **Pagination** (optional): Pagination settings
    - `Index` (int): Page number (starting from 1)
    - `Size` (int): Number of items per page (default: 20)

### Sample Data Structure

Each sample returned contains comprehensive information including:
- Sample ID, name, version, and title
- Short description and source information
- Download URL and sample URL
- Associated products and categories
- Author information and creation/update timestamps
- Thumbnails and preview images
- Metadata tags and references
- Featured status and tracking information

## Getting Started

Choose the implementation that best fits your integration needs:
- Use **SampleGalleriesMCPServerStdio** for command-line tools and local development
- Use **SampleGalleriesMCPServerHttp** for web applications and HTTP-based integrations

Both servers connect to the same Microsoft 365 & Power Platform Community Samples Gallery API and provide identical data and functionality.

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [pnp](https://github.com/pnp)
- **Source:** [pnp/m365-galleries-mcp](https://github.com/pnp/m365-galleries-mcp)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-pnp-m365-galleries-mcp
- Seller: https://agentstack.voostack.com/s/pnp
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
