π οΈ Skill: Placement Spreadsheet Filler (MCP Tool)
An MCP tool that automatically fills student placement details into Google Sheets or Excel files. The tool reads the student's profile from a local JSON file, fetches the headers from the target spreadsheet, smart-maps profile fields to columns, and
Install in one line
CLI$Β mfkvault install skill-placement-spreadsheet-filler-mcp-toolRequires the MFKVault CLI. Prefer MCP?
Free to install β no account needed
Copy the command below and paste into your agent.
Instant access β’ No coding needed β’ No account needed
What you get in 5 minutes
- Full skill code ready to install
- Works with 4 AI agents
- Lifetime updates included
Description
# π οΈ Skill: Placement Spreadsheet Filler (MCP Tool) --- ## Skill Name `placement-sheet-filler` ## Description An MCP tool that automatically fills student placement details into Google Sheets or Excel files. The tool reads the student's profile from a local JSON file, fetches the headers from the target spreadsheet, smart-maps profile fields to columns, and appends a new row. --- ## Exposed MCP Tools ### 1. `fill_sheet` > Primary tool. Fills student data into a given spreadsheet. **Parameters:** | Parameter | Type | Required | Description | |---|---|---|---| | `sheet_url` | string | β | Google Sheets URL or Excel file path/URL | | `sheet_name` | string | β | Specific tab/sheet name (defaults to first sheet) | | `profile_path` | string | β | Path to local student profile JSON file | | `dry_run` | boolean | β | If true, preview mapping without writing (default: false) | **Returns:** ```json { "status": "success", "row_appended": 42, "mapped_fields": { "Name": "John Doe", "Roll Number": "21CS001", "Branch": "CSE", "CGPA": "8.9" }, "unmapped_columns": ["Internship Duration"] } ``` --- ### 2. `preview_mapping` > Shows how profile fields will map to spreadsheet columns without writing anything. **Parameters:** | Parameter | Type | Required | Description | |---|---|---|---| | `sheet_url` | string | β | Google Sheets URL or Excel file path | | `profile_path` | string | β | Path to local student profile JSON file | **Returns:** Column β Profile field mapping as a table. --- ### 3. `update_profile` > Updates one or more fields in the local student profile. **Parameters:** | Parameter | Type | Required | Description | |---|---|---|---| | `profile_path` | string | β | Path to profile JSON | | `updates` | object | β | Key-value pairs to update (e.g. `{"cgpa": "9.1"}`) | --- ### 4. `check_profile` > Reads and displays the current student profile. **Parameters:** | Parameter | Type | Required | Description | |---|---|---|---| | `profile_path` | string | β | Path to profile JSON | --- ## Student Profile Format (JSON) ```json { "name": "John Doe", "roll_no": "21CS001", "branch": "Computer Science & Engineering", "cgpa": "8.9", "email": "[email protected]", "phone": "+91 9876543210", "resume_link": "https://drive.google.com/..." } ``` > π‘ **Extensible**: New fields can be added to this file at any time. The mapping engine will automatically discover them. --- ## Smart Column Mapping Algorithm The tool uses a **multi-stage fuzzy + semantic mapping** strategy: ``` Stage 1: Exact match e.g., column "email" β profile field "email" Stage 2: Fuzzy string match (Levenshtein distance) e.g., column "Roll Number" β profile field "roll_no" Stage 3: Synonym/alias table e.g., column "CGPA / GPA" β profile field "cgpa" Stage 4: LLM-assisted mapping (fallback) e.g., column "Academic Performance" β profile field "cgpa" Stage 5: Skip + report Columns with no confident match are listed as "unmapped_columns" ``` **Confidence threshold**: Matches below 60% confidence are skipped and reported. --- ## Authentication ### Google Sheets - Uses **OAuth 2.0** with the student's own Google account. - On first use, the user opens a one-time auth URL in their browser. - Token is cached locally for future use. - Scope: `https://www.googleapis.com/auth/spreadsheets` ### Excel - For local files: direct `openpyxl` read/write. - For cloud-hosted Excel (OneDrive/SharePoint): URL download + re-upload via Microsoft Graph API *(future scope)*. --- ## Error Handling | Scenario | Behaviour | |---|---| | Profile field not in sheet | Silently skipped, reported in response | | Sheet column not in profile | Listed under `unmapped_columns` | | Auth failure | Returns auth URL for re-authentication | | Network error | Retry 3x, then return error message | | Sheet not found / wrong tab name | Returns list of available tab names | | Duplicate row detection (future) | Warn user, confirm before appending | --- ## Hosting Notes - MCP server runs as a **stateless HTTP service**. - Each request carries the `profile_path` (student-side) and `sheet_url`. - No student data persists on the server β all profile data stays local with the student. - Deployable on: **Railway, Render, VPS, Docker**. --- ## Usage Example (MCP Client) ``` User: Fill my details in this Google Sheet: https://docs.google.com/spreadsheets/d/... Tool Call: fill_sheet( sheet_url = "https://docs.google.com/...", profile_path = "/home/student/profile.json" ) Response: β Row appended successfully! Mapped: Name, Roll No, Branch, CGPA, Email, Phone Unmapped columns: ["Preferred Location", "Internship Duration"] ``` --- ## File Structure (Project) ``` placement-sheet-filler/ βββ server.py # MCP server entry point βββ tools/ β βββ fill_sheet.py # fill_sheet tool logic β βββ preview_mapping.py # preview_mapping tool logic β βββ update_profile.py # update_profile tool logic β βββ check_profile.py # check_profile tool logic βββ core/ β βββ mapper.py # Smart column mapping engine β βββ sheets_client.py # Google Sheets API wrapper β βββ excel_client.py # openpyxl Excel wrapper βββ auth/ β βββ google_auth.py # OAuth 2.0 flow handler βββ profile.json # Student profile (local, not committed) βββ requirements.txt βββ README.md ```
Security Status
Unvetted
Not yet security scanned
Related AI Tools
More Make Money tools you might like
Linear
FreeManaging Linear issues, projects, and teams. Use when working with Linear tasks, creating issues, updating status, querying projects, or managing team workflows.
Social Autoposter
Free"Automate social media posting across Reddit, X/Twitter, LinkedIn, and Moltbook. Find threads, post comments, create original posts, track engagement stats. Use when: 'post to social', 'social autoposter', 'find threads to comment on', 'create a post
PICT Test Designer
FreeDesign comprehensive test cases using PICT (Pairwise Independent Combinatorial Testing) for any piece of requirements or code. Analyzes inputs, generates PICT models with parameters, values, and constraints for valid scenarios using pairwise testing.
Product Manager Skills
FreePM skill for Claude Code, Codex, Cursor, and Windsurf. Diagnoses SaaS metrics, critiques PRDs, plans roadmaps, runs discovery, coaches PM career transitions, pressure-tests AI product decisions, and designs PLG growth strategies. Seven knowledge doma
paper-fetch
FreeUse when the user wants to download a paper PDF from a DOI, title, or URL via legal open-access sources. Tries Unpaywall, arXiv, bioRxiv/medRxiv, PubMed Central, and Semantic Scholar in order. Never uses Sci-Hub or paywall bypass.
Beautiful Prose (Claude Skill)
FreeA hard-edged writing style contract for timeless, forceful English prose without modern AI tics. Use when users ask for prose or rewrites that must be clean, exact, concrete, and free of AI cadence, filler, or therapeutic tone.