npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@iflow-mcp/fabianwilliams-graph-search-mcp

v0.1.2

Published

MCP tool to search for files in Microsoft 365 via Microsoft Graph API

Readme

❗️🚨 PLEASE USE THIS ONLY IN A DEVELOPER ENVIRONMENT — NOT FOR PRODUCTION 🚨❗️

⚠️ This implementation uses App-Only Authentication with a Client Secret, which is not recommended for production environments.
It is intended solely for local development and testing purposes.
For more information, see the Microsoft identity platform security guidance.


🔍 Search Microsoft 365 Files with Model Context Protocol (MCP) + Microsoft Graph

Ever wanted to ask an AI assistant like Claude or ChatGPT to search your OneDrive or Microsoft 365 files — and actually get a real, accurate result? This project shows you exactly how to do that using Model Context Protocol (MCP), Microsoft Graph, and a set of handy utilities and plugins you can run locally or publish to npm.

🧠 No deep coding knowledge required — we break it down step by step.


📺 Overview

This repo is a companion to this 5-minute YouTube video that walks through how MCP tools work with Microsoft Graph to search files and manipulate date formats.

➡️ Watch it first for context!

Fabs MCP Tools in Claude


🧰 What’s Inside?

This project includes:

  • ✅ MCP tools to query Microsoft Graph securely using app-only auth
  • ✅ Utilities to convert dates to Graph-compatible formats
  • ✅ A working example of how to run these tools inside Claude
  • ✅ Full transcript and usage examples

💡 Use Case: Convert a Date to Microsoft Graph Format

Need to filter files in Graph by date? This tool converts a human-friendly date into the ISO 8601 string Microsoft Graph expects.

Prompt inside Claude

I want to convert today’s date Sunday 23rd March 2025 to a date I can use in Graph

Claude uses the toGraphTime tool from your local MCP server.

Claude Result Using Graph Time Tool

Result:

2025-03-23T00:00:00.000Z

🧠 This string is now ready to use in your Microsoft Graph API calls!


📁 Use Case: Search for Word Documents in OneDrive

The Fabs-Graph-Search tool allows Claude to find .docx files in OneDrive using Microsoft Graph.

In Claude, we enabled the search tool from the MCP Developer settings:

Search Tool Running in Claude

Then we ran this prompt:

Give me a list of all the Word docs I have

Claude executed the MCP plugin and returned results from Microsoft Graph:

Search Results from MCP Tool

We confirmed the results matched what's in Adele Vance’s OneDrive:

Adele Vance OneDrive Screenshot

Claude responded:

I found these Word documents in your Microsoft 365 storage:

  1. CraftingACompellingProductVisionbyEbiAtawodi.docx
  2. ProjectRoundtreeStatusReport.docx
  3. Semantic Kernel and AutoGen Script.docx
  4. StoryBoard-FabianOnJohnMaedaCozyKitchen-Draft.docx

🛠 How This Works

This tool is powered by an MCP server you control. Here’s how it’s built and connected:

Local Server Setup (Node.js MCP)

const server = new McpServer({
  name: 'Fabs-Graph-Utils',
  version: '1.0.1',
});

server.tool(buildGraphUrl, fromGraphTime, toGraphTime);

📸 Screenshot: Your code and publish process using changesets

Publishing MCP Tools to NPM


🚦 Approving Tools in Claude

When Claude detects your MCP tool, it prompts you to allow it.

Tool Permission Prompt

🔐 Tools are sandboxed — you control what’s exposed and run.


🧰 Tools Included

| Tool Name | Description | | ---------------------- | ------------------------------------------------------- | | buildGraphUrl | Constructs a Microsoft Graph API URL from parts | | fromGraphTime | Converts Graph ISO date → JavaScript Date | | toGraphTime | Converts JavaScript Date → Graph ISO format | | searchDriveItems | Queries files in OneDrive using Graph search endpoint | | lokka-MicrosoftGraph | Full-featured Graph search plugin (inspired by @merill) |


🧪 Try It Yourself

  1. Clone the repo
  2. Run npm install
  3. Use npm run start to start the MCP server
  4. Inside Claude (or any assistant supporting MCP), connect to your local tool
  5. Ask questions like:
    • “List all Word documents I have access to”
    • “Convert today’s date to Graph format”
    • “What files has AdeleV created recently?”

🧠 Inspired By


📦 NPM Package


🧠 Bonus: Learn More


💬 Feedback?

Open an issue here in Github or hit me up in the comments of the YouTube video!


Made with 💡 + MCP by @fabianwilliams