ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 헤르메스 나만의 MCP 서버 붙여보자
    프로그래밍/개발메모 2026. 11. 15. 05:34
    728x90
    반응형

     

    헤르메스가 아예 내가 하는 일을 처리하게 만들려면 여러가지 설정과 말을 복잡하게 만들어서 시키느니

    그냥 typescript 로 mcp 서버를 만드는게 맞는거 같다.

     

    어떻게든 mcp 서버 안만들꺼라면
    구글독스에 관련 내용이 잔뜩 올라가면 되긴한다

    "구글독스에서 xxxx 읽어와"
    "처리해서 xxx 에 글 저장해" 말을 풀어 쓰면 해결할 수 있긴하다.

    이 경우 어떻게든 구글독스에 뭔가 입력해야하는 과정이 필요한데

    typescript 쓸줄 안다면 데이터가 들어올때 자동으로 처리해버리면된다.

    예를들어 웹페이지에 내게 요청하는 기능을 만들었다고 하면
    db 에 저장하는 웹페이지를 구현했을 것이다.

    아직까지는 헤르메스가 이걸 알 수는 없다. db 를 읽어서 판단해야하는데 연결이 안되어있으니

    그래서 mcp 서버에 함수를 만들어서 "내 도구 -> 대기중인 요청 가져오기" 같은걸 만들면

    헤르메스에게 "내 도구 에서 대기중인요청을 가져와서 알려줘"

    이러면 가져올 수 있게 된다. 

    보통은 "가져와서 처리한다음 답장을 써줘" 라고 필요한 도구들을 모두 생성하는 식이다.

    요청 가져오기 
    답장 저장하기 

    이런 식의 도구를 생성하면 되겠다.

    mcp 서버는 typescript 로 만들면 되는데 문제는

    mcp 서버의 이름과 설명이였다.

    이름과 설명이 AI 가 인식하는 방법이기 때문에 자세히 써야하고 이름도 통일해야한다.

    예를 들어 "내 도구" 를 "맥미니 서버" 라고 적으면 맥용 이상한 도구들을 사용하려다 실패하게 된다.
    그래서 특이한 이름을 지어야만했다.

    이름이 여러군데 적혀있으니 찾아서 통일 시켜주자

    먼저 서버 시작 부분

    const server = new McpServer({
      name: "sid-mcp-server",
      version: "1.0.0",
    });
     
    버전과 이름이 있는데
    예제코드를 처음 받을때 "단어-단어-단어" 이런식으로 되어있어서 그대로 썼다.
     
     
     
     

    이 그림은 기능함수 에대한 코드인데 장황하게 써야했다.

    처음엔 "내도구의 문서 불러오기" 라고 장황하게 썼는데 
    내도구가 너무 흔한 이름이고 인식이 될떄까지 이름을 여러번 고쳐야해서 

    나중엔 함수에 앱 이름은 언급하지 않았다.
    없으면 앱이름이 바껴도 든드릴 필요가 없으니 편한다.

    함수에 대한 설명만 자세히 적자.

     

    재미니에게 hermes 애이전트용 mcp 서버 코드 만들어 달라고 하면 만들어준다.
    약간 수정해서 문서 읽기와 불러오기 만 만들었다.

     

    헤르메스 설정파일에도 써야됨

    ~/.hermes/config.yaml

    을 열어서 mcp_server 를 검색한다.

    mcp_servers 를 설명하는 문서가 중간쯤에 있는데 
    거기 밑에다 적당히 붙여 넣어줬다.

    mcp_servers:
      sid_mcp_server:
        command: "/Users/gunil/.bun/bin/bun"
        args:
          - "/Users/gunil/pto/pi4server/index_mac_mcp.ts"
        enabled: true

    typescript 고 bun 으로 실행시키 때문에 bun 명령어의 정확한 주소를 적어야한다. bash 가 없기 때문에 bun 이라고만 적으면 못찾는다.

    bun 명령어 위치는 whereis bun 이라고 치면 알려준다.

     

    mcp_servers 의 하부 키값으로 sid_mcp_server 이걸 적었는데

    typescript 코드에 " sid-mcp-server" 동일하게 맞췄다.
    여기서는 단어가 밑줄(_) 로 구분되는게 특징인거 같다

    hermes 콘솔로 들어가서 기능을 사용해본다.

    도구이름이 인식이 잘 안되서 이름을 정확하게 써줬다.

    툴을 찾는다.

    호출에  성공했다.

     

    이제는 더 복잡한 기능을 구현하면 된다.

    예를 들어 

    홈페이지에 요청자 글을 가져와서
    분문의 내용을 보고 처리해주고 
    답장을 저장해

    처리할 수 없다면 답장은 저장하지말고 나에게 매신저로 알람을 보내

     

    이런식으로 말이다.

    에이전트들이 있는 방에 메세지를 쓰도록한다면 

    쓴 메시지를 다른 에이전트가 처리하는 것도 가능할 것이다.

     

    메시지들을 계속 연결하다보면 자동화가 되는 것이다.

     

     

     

     

     

     

     

     

    반응형
Designed by Tistory.