Skip to main content
Glama
micfogas

Pic Nicked MCP

by micfogas
README.md
# Pic Nicked MCP

> **Search. See. Save.** – An MCP that nicks Google photos (pics) into your chat.

## Usage & Requirements

### Requirements

- Node.js v20+
- Google Cloud Platform account (free tier sufficient)
- Devin

### Setup Guide

Follow these steps to set up this MCP:

#### Create Google Custom search engine

1. Go to [Google Programmable Search Engine](https://programmablesearchengine.google.com/controlpanel/all)
2. **"Add"** to create a new search engine
3. In **"Sites to search"**, enter `*.reddit.com/` for example, to include reddit.com in your possible search results (note: you can only add up to 50 TLDs)
4. Name your search engine (e.g., "PicNick")
5. Enable **"Image search"** option
6. Click **"Create"**
7. Copy the **Search engine ID** - save this

#### Get Google API Key

1. Go to [Google Cloud Console API Credentials](https://console.cloud.google.com/apis/credentials)
2. Select a project
3. Click **"+ CREATE CREDENTIALS"** then **"API key"**
4. Copy the generated API key

#### Configure MCP

Add the following configuration to your MCP settings:

```json
{
  "mcpServers": {
    "googleImagesSearch": {
      "command": "npx",
      "args": ["-y", "@micfogas/mcp-picnick"],
      "env": {
        "API_KEY": "google-api-key",
        "SEARCH_ENGINE_ID": "search-engine-id"
      },
      "autoApprove": ["persist_image", "search_image"]
    }
  }
}
```

Replace `google-api-key` and `search-engine-id` appropriately.

### Example

Ask your assistant to search for images

   ```
   Find 5 images of your mom
   ```

Request additional results

   ```
   Find 5 more images
   ```

Save a specific result to your project
   ```
   Save the 3rd image to the "yourmom" folder
   ```

The MCP will display the results as images in your chat history, and you can save them to your project.

**Quick start**:

1. Copy `.envrc.example` to `.envrc` and add your Google API credentials
2. Run `pnpm install && pnpm dev`
3. Update your MCP configuration for development:

```json
{
  "mcpServers": {
    "googleImagesSearch": {
      "command": "node",
      "args": ["/abs/path/to/project/src/index.js", "--debug", "--pretty-print"],
      "env": {
        "API_KEY": "google-api-key",
        "SEARCH_ENGINE_ID": "search-engine-id"
      },
      "autoApprove": ["search_image", "persist_image"]
    }
  }
}
```

##  Tools

**🔍 search_image** - Find images

- `query` (req) - exampple, your mom
- `count` (1-10, Def. 2) - How many
- `safe` ('off'/'medium'/'high') - safefilter
- `startIndex` - because

**💾 persist_image** - Download and save images to your project

- `url` (req) - image to dl
- `targetPath` (req) - Where to save it

TDQS

B3.3/5.0

Scored across 2 tools

Disambiguation5/5

search_image and persist_image have completely distinct purposes: one looks up images online, the other saves a specific image locally. There is no overlap or ambiguity between them.

Naming Consistency5/5

Both tools follow the exact same verb_noun pattern with snake_case (search_image, persist_image), making the naming predictable and consistent.

Tool Count3/5

With only 2 tools, the server feels minimal and is on the thin side. The count is acceptable if the scope is strictly search-and-save, but it is borderline for a utility server.

Completeness3/5

The core operations (search and persist) are covered, but there is no way to list, delete, or otherwise manage persisted images. This is a notable gap in the image lifecycle, making the surface feel incomplete.

Maintenance

ActivityStale
ResponsivenessNo issues