1. Conduid
  2. Other
  3. 101
MCP server · Other

101

MCP server example practice

Unclaimed other
34Low

Scored 11 days ago · breakdown

About 101

101 is an MCP server in the Other category: mCP server example practice.

The repository has 1 stars and 0 forks.

Install

From source
git clone https://github.com/mattduguid/mcp-101

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about 101

Powered by Claude · Grounded in docs

I know everything about 101. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

mcp-101

overview

  • mcp-101 is a minimal proof-of-concept (POC) for running a local AI assistant that can answer questions from your own files.
  • it uses just the essentials: Python, Ollama, LlamaIndex, and a simple VS Code extension UI.
  • designed to test and validate the concept locally before iterating or scaling further.

install python

  • mac
brew install python
python3 --version
pip3 --version
  • linux
sudo apt update
sudo apt install -y python3 python3-pip
python3 --version
pip3 --version
  • windows
winget install Python.Python.3
python3 --version
pip3 --version

install ollama

download ollama container(s)

# downloads on first run ~4.1GB
ollama run nomic-embed-text 
# OR
ollama run mistral

create requirements.txt for python and install

edit requirements.txt and add,

llama-index
llama-index-llms-ollama
llama-index-embeddings-ollama
llama-index-readers-web
llama-index-readers-file
fastapi
uvicorn
pip3 install -r requirements.txt

create folder of content for MCP server to index

mkdir /data
# copy in any text files you want searched eg: *.pdf, *.md, *.txt, etc
  • used two different file types (.pdf/.md) containing recipes located here /data
  • used two different web URLs, one for a wiki about the city of Porirua and one for a wiki of a work mate contained in the python code located here /main.py#L32-L39

create MCP server

/main.py which contains the code to run the MCP server including links to my sample .pdf/.md/web urls for custom content,

run and test (from cli)

# run MCP server
python3 main.py

🔁 Loading documents...
🚀 Serving on http://localhost:8000/ask
INFO:     Will watch for changes in these directories: ['/<OMITTED>/mcp-101']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [3360] using StatReload
🔁 Loading documents...
🔁 Loading documents...
INFO:     Started server process [3370]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
# test query the MCP server
curl -X POST http://localhost:8000/ask -H "Content-Type: application/json" -d '{"query": "what is porirua"}'

{"answer":" Porirua is a city located in the North Island of New Zealand."}%

create visual studio plugin

install node

  • mac
# Download and install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"

# Download and install Node.js
nvm install 22

# Verify the Node.js version
node -v # Should print "v22.16.0".
nvm current # Should print "v22.16.0".

# Verify npm version
npm -v # Should print "10.9.2".

# install the visual studio code extension manager, allows creation of redistributable .vsix file
npm install -g vsce
  • linux
# Download and install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"

# Download and install Node.js
nvm install 22

# Verify the Node.js version
node -v # Should print "v22.16.0".

nvm current # Should print "v22.16.0".

# Verify npm version
npm -v # Should print "10.9.2".

# install the visual studio code extension manager, allows creation of redistributable .vsix file
npm install -g vsce
  • windows
# Download and install Chocolatey
powershell -c "irm https://community.chocolatey.org/install.ps1|iex"

# Download and install Node.js
choco install nodejs-lts --version="22"

# Verify the Node.js version
node -v # Should print "v22.16.0".

# Verify npm version
npm -v # Should print "10.9.2".

# install the visual studio code extension manager, allows creation of redistributable .vsix file
npm install -g vsce

create initial scaffold for a visual studio code extension

# create folder for visual studio code extension
cd <PATH_TO_REPO>
mkdir vscode-extensions-mcp-101
cd vscode-extensions-mcp-101

# create initial visual studio code extension scaffold
npm install -g yo generator-code
yo code

? What type of extension do you want to create? New Extension (TypeScript)
? What's the name of your extension? mcp-101
? What's the identifier of your extension? mcp-101
? What's the description of your extension? mcp-101
? Initialize a git repository? No
? Which bundler to use? webpack
? Which package manager to use? npm

Writing in /<OMITTED>/mcp-101...
   create mcp-101/.vscode/extensions.json
   create mcp-101/.vscode/launch.json
   create mcp-101/.vscode/settings.json
   create mcp-101/.vscode/tasks.json
   create mcp-101/package.json
   create mcp-101/tsconfig.json
   create mcp-101/.vscodeignore
   create mcp-101/webpack.config.js
   create mcp-101/vsc-extension-quickstart.md
   create mcp-101/README.md
   create mcp-101/CHANGELOG.md
   create mcp-101/src/extension.ts
   create mcp-101/src/test/extension.test.ts
   create mcp-101/.vscode-test.mjs
   create mcp-101/eslint.config.mjs

added 364 packages, and audited 365 packages in 9s

88 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

Your extension mcp-101 has been created!

To start editing with Visual Studio Code, use the following commands:

     code mcp-101

Open vsc-extension-quickstart.md inside the new extension for further instructions
on how to modify, test and publish your extension.

To run the extension you need to install the recommended extension 'amodio.tsl-problem-matcher'.

For more information, also visit http://code.visualstudio.com and follow us @code.

add custom code to scaffold

/vscode-extensions-mcp-101/src/extension.ts contains the code for the visual studio code extension,

edit package.json in scaffold

/vscode-extensions-mcp-101/package.json contains settings for the visual studio code extension,

specifically we,

  • add "icon" which is our 128 pixel x 128 pixel in /icon.png used for the extension
  • add "publisher" and "repository" which are required for packaging into a .vsix
  • change "activationEvents" and "contributes/commands" for running the extension
  • add "keybindings" for easy keyboard shortcuts
...
"icon": "icon.png",
...
"publisher": "mattduguid", 
"repository": {
  "type": "git",
  "url": "https://github.com/mattduguid/mcp-101.git"
},
...
"activationEvents": [
  "onCommand:mcp-101.chat"
],
...
"contributes": {
    "commands": [
      {
        "command": "mcp-101.chat",
        "title": "Matt Chat mcp-101: Open"
      }
    ]
  },
...
"keybindings": [
  {
    "command": "mcp-101.chat",
    "key": "ctrl+alt+m",
    "mac": "ctrl+cmd+m",
    "when": "editorTextFocus || editorFocus || explorerViewletVisible || inCompositeEditor || sideBarVisible || panelVisible"
  }
],

build a redistributable .vsix for easy install/uninstall

create some files required for packaging into a .vsix,

cd /<OMITTED>/mcp-101/vscode-extensions-mcp-101
echo "# mcp-101" > README.md
echo "## Changelog" > CHANGELOG.md
echo "## License" > LICENSE.md

compile & package it,

cd /<OMITTED>/mcp-101/vscode-extensions-mcp-101
vsce package                  
Executing prepublish script 'npm run vscode:prepublish'...

> mcp-101@0.0.1 vscode:prepublish
> npm run package

> mcp-101@0.0.1 package
> webpack --mode production --devtool hidden-source-map

    [webpack-cli] Compiler starting... 
    [webpack-cli] Compiler is using config: '/<OMITTED>/mcp-101/vscode-extensions-mcp-101/webpack.config.js'
    [webpack-cli] Compiler finished
asset extension.js 3.42 KiB [compared for emit] [minimized] (name: main) 1 related asset
./src/extension.ts 4.2 KiB [built] [code generated]
external "vscode" 42 bytes [built] [code generated]
webpack 5.99.9 compiled successfully in 675 ms
 DONE  Packaged: /<OMITTED>/mcp-101/vscode-extensions-mcp-101/mcp-101-0.0.1.vsix (7 files, 4.03KB)

install it,

code --install-extension ./mcp-101-0.0.1.vsix

Installing extensions...
Extension 'mcp-101-0.0.1.vsix' was successfully installed.

code --list-extensions | grep "101"          
mattduguid.mcp-101

uninstall it,

code --uninstall-extension mattduguid.mcp-101

Uninstalling mattduguid.mcp-101...
Extension 'mattduguid.mcp-101' was successfully uninstalled!

use it,

  • via command palette
    • (Cmd+Shift+P) → type "Matt Chat mcp-101: Open"
  • via keyboard shortcut
    • press Ctrl+Alt+M (Win/Linux) / Ctrl+Cmd+M (Mac) to launch the assistant.
  • via the status bar button
    • bottom left of the visual studio code window click "Matt Chat mcp-101"

visual studio code extension using custom MCP server

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About 101

How do I install 101?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is 101 safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is 101 still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.